Skip to content

Remove bridgelessEnabled from DefaultNewArchitectureEntryPoint - #58415

Open
christophpurrer wants to merge 1 commit into
react:mainfrom
christophpurrer:export-D116317210
Open

Remove bridgelessEnabled from DefaultNewArchitectureEntryPoint#58415
christophpurrer wants to merge 1 commit into
react:mainfrom
christophpurrer:export-D116317210

Conversation

@christophpurrer

Copy link
Copy Markdown
Contributor

Summary:
Bridgeless is the only supported mode in the New Architecture, so the
bridgelessEnabled flag on DefaultNewArchitectureEntryPoint was dead
configuration: every load(...) path passed true, and isConfigurationValid
raised an error when it was false. The entry point advertised a toggle that
could only ever hold the one value that is already mandatory.

This removes that surface from ReactAndroid:

  • Removed the public bridgelessEnabled getter and its backing field.
  • Removed the deprecated three-argument
    load(turboModulesEnabled, fabricEnabled, bridgelessEnabled) overload. Its
    implementation body moved into the two-argument overload, since dropping the
    parameter alone would have collided with the existing
    load(Boolean, Boolean) signature.
  • Removed the bridgelessEnabled parameter from isConfigurationValid,
    reducing the guard to !turboModulesEnabled || !fabricEnabled and shortening
    the resulting error message.
  • loadWithFeatureFlags no longer reads enableBridgelessArchitecture().

Behavior note: loadWithFeatureFlags previously raised an error when a feature
flags provider returned enableBridgelessArchitecture() == false. That check is
gone. It was unreachable in practice because bridgeless is not optional, but it
is a removed validation rather than a pure no-op cleanup.

Bridgeless remains unconditionally enabled. Callers using the no-argument
load() are unaffected. The regenerated ReactAndroid.api drops exactly
getBridgelessEnabled ()Z, load (ZZZ)V, and
load$default (ZZZILjava/lang/Object;)V.

The equivalent iOS cleanup is intentionally left to a follow-up change.

Changelog:
[Android][Breaking] - Remove DefaultNewArchitectureEntryPoint.bridgelessEnabled and the deprecated three-argument load(turboModulesEnabled, fabricEnabled, bridgelessEnabled) overload; bridgeless is always enabled in the New Architecture

Differential Revision: D116317210

Summary:
Bridgeless is the only supported mode in the New Architecture, so the
`bridgelessEnabled` flag on `DefaultNewArchitectureEntryPoint` was dead
configuration: every `load(...)` path passed `true`, and `isConfigurationValid`
raised an error when it was `false`. The entry point advertised a toggle that
could only ever hold the one value that is already mandatory.

This removes that surface from `ReactAndroid`:

- Removed the public `bridgelessEnabled` getter and its backing field.
- Removed the deprecated three-argument
  `load(turboModulesEnabled, fabricEnabled, bridgelessEnabled)` overload. Its
  implementation body moved into the two-argument overload, since dropping the
  parameter alone would have collided with the existing
  `load(Boolean, Boolean)` signature.
- Removed the `bridgelessEnabled` parameter from `isConfigurationValid`,
  reducing the guard to `!turboModulesEnabled || !fabricEnabled` and shortening
  the resulting error message.
- `loadWithFeatureFlags` no longer reads `enableBridgelessArchitecture()`.

Behavior note: `loadWithFeatureFlags` previously raised an error when a feature
flags provider returned `enableBridgelessArchitecture() == false`. That check is
gone. It was unreachable in practice because bridgeless is not optional, but it
is a removed validation rather than a pure no-op cleanup.

Bridgeless remains unconditionally enabled. Callers using the no-argument
`load()` are unaffected. The regenerated `ReactAndroid.api` drops exactly
`getBridgelessEnabled ()Z`, `load (ZZZ)V`, and
`load$default (ZZZILjava/lang/Object;)V`.

The equivalent iOS cleanup is intentionally left to a follow-up change.

Changelog:
[Android][Breaking] - Remove `DefaultNewArchitectureEntryPoint.bridgelessEnabled` and the deprecated three-argument `load(turboModulesEnabled, fabricEnabled, bridgelessEnabled)` overload; bridgeless is always enabled in the New Architecture

Differential Revision: D116317210
@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 Sep 9, 2026
@meta-codesync

meta-codesync Bot commented Sep 9, 2026

Copy link
Copy Markdown

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

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. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant