Skip to content

Unify bridge and bridgeless ReactMarker implementations (#57040)#57040

Open
javache wants to merge 1 commit into
facebook:mainfrom
javache:export-D88068665
Open

Unify bridge and bridgeless ReactMarker implementations (#57040)#57040
javache wants to merge 1 commit into
facebook:mainfrom
javache:export-D88068665

Conversation

@javache
Copy link
Copy Markdown
Member

@javache javache commented Jun 2, 2026

Summary:

The split between logTaggedMarkerImpl and logTaggedMarkerBridgelessImpl no longer earns its keep — bridgeless callers always pass the same instance key, and the bridge mode is on its way out. Collapse the two paths into a single hook so platform code only has to wire up one slot.

LogTaggedMarkerBridgeless becomes a type alias for LogTaggedMarker. The free logMarkerBridgeless / logTaggedMarkerBridgeless functions stay around as [[deprecated]] shims that forward to the unified path, but the logTaggedMarkerBridgelessImpl registration slot is removed entirely — external writers should assign to logTaggedMarkerImpl instead. Call-sites in ReactInstance switch to the unified logMarker / logTaggedMarker. On the Android side, logPerfMarkerBridgeless and the logPerfMarkerWithInstanceKey indirection go away — there's only one instance key now.

logTaggedMarkerImpl is also reshaped into a small AtomicLogTaggedMarker wrapper so reads and writes synchronize internally and callers no longer need to lock around it; the standalone logTaggedMarkerImplMutex goes away.

Changelog:
[General][Breaking] - Remove logTaggedMarkerBridgelessImpl; assign callbacks to logTaggedMarkerImpl instead
[General][Deprecated] - Deprecate logMarkerBridgeless and logTaggedMarkerBridgeless in favor of logMarker and logTaggedMarker

Reviewed By: mdvacca

Differential Revision: D88068665

@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 Jun 2, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Jun 2, 2026

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

@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Jun 2, 2026
@meta-codesync meta-codesync Bot changed the title Unify bridge and bridgeless ReactMarker implementations Unify bridge and bridgeless ReactMarker implementations (#57040) Jun 2, 2026
javache added a commit to javache/react-native that referenced this pull request Jun 2, 2026
Summary:

The split between `logTaggedMarkerImpl` and `logTaggedMarkerBridgelessImpl` no longer earns its keep — bridgeless callers always pass the same instance key, and the bridge mode is on its way out. Collapse the two paths into a single hook so platform code only has to wire up one slot.

`LogTaggedMarkerBridgeless` becomes a type alias for `LogTaggedMarker`. The free `logMarkerBridgeless` / `logTaggedMarkerBridgeless` functions and the `logTaggedMarkerBridgelessImpl` slot stay around as `[[deprecated]]` shims. Call-sites in `ReactInstance` switch to the unified `logMarker` / `logTaggedMarker`. On the Android side, `logPerfMarkerBridgeless` and the `logPerfMarkerWithInstanceKey` indirection go away — there's only one instance key now.

Changelog:
[General][Deprecated] - Deprecate `logMarkerBridgeless`, `logTaggedMarkerBridgeless`, and `logTaggedMarkerBridgelessImpl` in favor of the non-bridgeless variants

Differential Revision: D88068665
@javache javache force-pushed the export-D88068665 branch from 5485f8a to 1fe14a5 Compare June 2, 2026 11:51
javache added a commit to javache/react-native that referenced this pull request Jun 3, 2026
Summary:

The split between `logTaggedMarkerImpl` and `logTaggedMarkerBridgelessImpl` no longer earns its keep — bridgeless callers always pass the same instance key, and the bridge mode is on its way out. Collapse the two paths into a single hook so platform code only has to wire up one slot.

`LogTaggedMarkerBridgeless` becomes a type alias for `LogTaggedMarker`. The free `logMarkerBridgeless` / `logTaggedMarkerBridgeless` functions and the `logTaggedMarkerBridgelessImpl` slot stay around as `[[deprecated]]` shims. Call-sites in `ReactInstance` switch to the unified `logMarker` / `logTaggedMarker`. On the Android side, `logPerfMarkerBridgeless` and the `logPerfMarkerWithInstanceKey` indirection go away — there's only one instance key now.

Changelog:
[General][Deprecated] - Deprecate `logMarkerBridgeless`, `logTaggedMarkerBridgeless`, and `logTaggedMarkerBridgelessImpl` in favor of the non-bridgeless variants

Reviewed By: mdvacca

Differential Revision: D88068665
@javache javache force-pushed the export-D88068665 branch from 1fe14a5 to 927ea81 Compare June 3, 2026 17:59
Summary:

The split between `logTaggedMarkerImpl` and `logTaggedMarkerBridgelessImpl` no longer earns its keep — bridgeless callers always pass the same instance key, and the bridge mode is on its way out. Collapse the two paths into a single hook so platform code only has to wire up one slot.

`LogTaggedMarkerBridgeless` becomes a type alias for `LogTaggedMarker`. The free `logMarkerBridgeless` / `logTaggedMarkerBridgeless` functions stay around as `[[deprecated]]` shims that forward to the unified path, but the `logTaggedMarkerBridgelessImpl` registration slot is removed entirely — external writers should assign to `logTaggedMarkerImpl` instead. Call-sites in `ReactInstance` switch to the unified `logMarker` / `logTaggedMarker`. On the Android side, `logPerfMarkerBridgeless` and the `logPerfMarkerWithInstanceKey` indirection go away — there's only one instance key now.

`logTaggedMarkerImpl` is also reshaped into a small `AtomicLogTaggedMarker` wrapper so reads and writes synchronize internally and callers no longer need to lock around it; the standalone `logTaggedMarkerImplMutex` goes away.

Changelog:
[General][Breaking] - Remove `logTaggedMarkerBridgelessImpl`; assign callbacks to `logTaggedMarkerImpl` instead
[General][Deprecated] - Deprecate `logMarkerBridgeless` and `logTaggedMarkerBridgeless` in favor of `logMarker` and `logTaggedMarker`

Reviewed By: mdvacca

Differential Revision: D88068665
@javache javache force-pushed the export-D88068665 branch from 927ea81 to 4796fc6 Compare June 4, 2026 09:26
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