Skip to content

Extract RCTRedBoxController from RCTRedBox.mm#56509

Open
motiz88 wants to merge 3 commits intofacebook:mainfrom
motiz88:export-D101484586
Open

Extract RCTRedBoxController from RCTRedBox.mm#56509
motiz88 wants to merge 3 commits intofacebook:mainfrom
motiz88:export-D101484586

Conversation

@motiz88
Copy link
Copy Markdown
Contributor

@motiz88 motiz88 commented Apr 20, 2026

Summary:
Moves the RCTRedBoxController class, previously inlined in RCTRedBox.mm, into its own implementation and header files (RCTRedBoxController.mm, RCTRedBoxController+Internal.h). An upcoming diff will fork these files for the experimental RedBox 2.0.

Changelog: [Internal]

Differential Revision: D101484586

motiz88 and others added 3 commits April 20, 2026 05:47
Summary:
Here, we add a mechanism to override React Native feature flag default values via a Buck command line argument, without modifying source files.

A `genrule` in the featureflags BUCK target always interposes on `ReactNativeFeatureFlagsDefaults.h` before compilation. When `react_native.feature_flag_defaults` is set to a JSON object via `--config`, a Python script rewrites the return values in the matching method bodies. When unset, the header passes through unmodified.

The Python script matches each override against the full method signature shape (`<returnType> <flagName>() override { ... return <value>; }`) with lenient whitespace, and fails the build if any requested flag name is not found in the header.

Usage:
```
buck2 build --config 'react_native.feature_flag_defaults={"enableViewCulling":true}' //target
buck2 build --config 'react_native.feature_flag_defaults={"enableViewCulling":true,"preparedTextCacheSize":500}' //target
```

This modifies defaults only — app-level providers still take priority.

Changelog: [Internal]

Differential Revision: D101484355
Summary:
Add `redBoxV2IOS` and `redBoxV2Android` common feature flags (default false), gating RedBox 2.0 independently on each platform.

Changelog: [Internal]

Differential Revision: D98115369
Summary:
Moves the `RCTRedBoxController` class, previously inlined in `RCTRedBox.mm`, into its own implementation and header files (`RCTRedBoxController.mm`, `RCTRedBoxController+Internal.h`). An upcoming diff will fork these files for the experimental RedBox 2.0.

Changelog: [Internal]

Differential Revision: D101484586
@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 20, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync bot commented Apr 20, 2026

@motiz88 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D101484586.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant