Skip to content

Remove write-only bridge from sample legacy modules (#59261) - #59261

Closed
christophpurrer wants to merge 11 commits into
react:mainfrom
christophpurrer:export-D126575656
Closed

christophpurrer wants to merge 11 commits into
react:mainfrom
christophpurrer:export-D126575656

Conversation

@christophpurrer

@christophpurrer christophpurrer commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary:

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656

Summary:
RCTDevMenu, RCTLogBox, RCTRedBox, and RCTBlobManager synthesized the
deprecated bridge property but never read it. They use moduleRegistry,
bundleManager, and callableJSModules instead.

Changelog:
[Internal]

Differential Revision: D126545276
Summary:
Seven implementation files imported the bridge header without
referencing any symbol it provides. Nine public headers either
imported it redundantly or narrowed it to the module protocol
header they actually need.

Changelog:
[Internal]

Differential Revision: D126549484
Summary: RCTEventDispatcher routes via _dispatchToJSThread; RCTImageLoader and RCTNetworking require their registry-backed providers; RCTTestModule uses the injected viewRegistry_DEPRECATED; RCTViewManager drops a no-op registry write. Legacy RCTBridge is a stub, so these reads only reached RCTBridgeProxy shims.

Differential Revision: D126558187
Summary:
Extend RCTBridgeModule with optional launchOptions and performanceLogger properties, injected through RCTBridgeModuleDecorator from RCTInstance. This lets TurboModules read launch configuration and perf events without touching the deprecated bridge property.

Changelog:
[iOS][Added] - Add injectable launchOptions and performanceLogger module APIs

Differential Revision: D126567157
Summary:
Synthesize the injected launchOptions property and read getInitialURL state from it instead of self.bridge. Drops the last bridge read in this module along with its direct bridge header import.

Changelog:
[Internal]

Differential Revision: D126567470
Summary:
Route JS-thread dispatch through the injected dispatchToJSThread block and read the injected performanceLogger. Delete the Views counter, which can only show zero since RCTViewRegistry exposes no enumeration, and reflow the HUD bar.

Changelog:
[iOS][Removed] - Remove the non-functional Views counter from the PerfMonitor HUD

Differential Revision: D126567926
Summary:
RCTBridge is never instantiated, so its nine per-module category implementations never execute. Delete them and keep the proxy implementations plus all interface declarations, which callers still compile against.

Changelog:
[Internal]

Differential Revision: D126574379
@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 Oct 21, 2026
@meta-codesync

meta-codesync Bot commented Oct 21, 2026

Copy link
Copy Markdown

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

Summary:
Delete the always-false _isBridgeMode helper and fold its call sites to the bridgeless paths. Remove the no-op profiling bridge calls with their synchronize cascade, and simplify setExecutorClass to persist locally plus reload.

Changelog:
[Internal]

Differential Revision: D126574662
Summary:
RCTComponentData always runs bridgeless, so delete the always-false isBridgeMode helper, merge the manager properties into one strong reference, and use the injected event dispatcher directly.

Changelog:
[Internal]

Differential Revision: D126575276
Summary:
The interop layer only ever receives a bridge proxy, so delete the unused bridge ivar, init parameter, and bridge-only command paths. Keep the bridgeless flows and the proxy injection that legacy managers rely on.

Changelog:
[Internal]

Differential Revision: D126575534
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
@meta-codesync meta-codesync Bot changed the title Remove write-only bridge from sample legacy modules Remove write-only bridge from sample legacy modules (#59261) Oct 21, 2026
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Reviewed By: shwanton

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 21, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 22, 2026
Summary:

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Reviewed By: shwanton

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 22, 2026
Summary:

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Reviewed By: shwanton

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 22, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
christophpurrer added a commit to christophpurrer/react-native-macos that referenced this pull request Oct 22, 2026
Summary:
Pull Request resolved: react#59261

RCTSampleLegacyModule on iOS and macOS stored a bridge that nothing reads. Delete the ivar and setter from both sample files.

Changelog:
[Internal]

Differential Revision: D126575656
@meta-codesync meta-codesync Bot closed this in 2f6c4a4 Oct 23, 2026
@react-native-bot

Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @christophpurrer in 2f6c4a4

When will my fix make it into a release? | How to file a pick request?

@react-native-bot react-native-bot added the Merged This PR has been merged. label Oct 23, 2026
@meta-codesync

meta-codesync Bot commented Oct 23, 2026

Copy link
Copy Markdown

This pull request has been merged in 2f6c4a4.

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. Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants