Remove unused bindings from the React private interface (#58455) - #58455
Closed
rubennorte wants to merge 7 commits into
Closed
Remove unused bindings from the React private interface (#58455)#58455rubennorte wants to merge 7 commits into
rubennorte wants to merge 7 commits into
Conversation
|
@rubennorte has exported this pull request. If you are a Meta employee, you can view the originating Diff in D119500025. |
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 13:59
604af16 to
78c1cb5
Compare
|
Warning JavaScript API change detected This PR commits an update to
This change was flagged as: |
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 14:13
78c1cb5 to
2841460
Compare
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 14:20
2841460 to
33938d9
Compare
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 14:26
33938d9 to
05625f4
Compare
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 14:33
05625f4 to
a590754
Compare
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 15:11
a590754 to
8ceb1b3
Compare
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 15:19
8ceb1b3 to
0f3b507
Compare
Differential Revision: D119490598
Summary: Remove the isOSS conditionals that were skipping Fantom renderer tests in OSS environments. Now that the React Native renderers have been upgraded and the code is compatible in OSS, these tests can run in both internal and OSS environments. Changes: - ResponderEventTarget-itest.js: Removed isOSS check that skipped the entire Responder System test suite - EventTargetDispatching-itest.js: Removed isOSS check that skipped the entire EventTarget-based Event Dispatching test suite - EventDispatching-benchmark-itest.js: Removed if (isOSS) block that provided a dummy test instead of the benchmark suite - EventDispatching-itest.js: Removed if (!isOSS) condition guarding three tests for native event timeStamp and global event dispatching Changelog: [Internal] Differential Revision: D107675643
Summary: The renderer can dispatch events either through the legacy plugin-based system or through the W3C EventTarget API (addEventListener/dispatchEvent), gated behind the enableNativeEventTargetEventDispatching feature flag. Enabling it by default was previously blocked on the renderer, which did not carry the necessary changes until React 19.3.0. That sync has now landed, so flip the flag's default value to true and drop the TODO that tracked the blocker. Fully removing the flag and the legacy dispatch path is left for a follow-up. Changelog: [General][Changed] - Dispatch events through the EventTarget API by default Differential Revision: D119495069
Differential Revision: D119166138
Summary: The `react-private-interface` and `setup-env` entry points now provide the private contract between React and React Native that `Libraries/ReactPrivate/` forwarded to, so the deprecated forwarding modules can be removed. **This diff** - Delete `Libraries/ReactPrivate/` — `ReactNativePrivateInterface`, `ReactNativePrivateInitializeCore`, and their `.flow`/`README` files. - Repoint internal `packages/react-native` imports directly at their source modules instead of the `react-private-interface` aggregator: `AnimatedProps` and two integration tests now import `getNodeFromPublicInstance` from `ReactFabricPublicInstance`, and `index.js.flow` re-exports `PublicRootInstance`/`PublicTextInstance` from there (adding a `PublicTextInstance` export to that module). - Repoint the remaining consumers at the `react-native/react-private-interface` entry point. - Drop the stale `Libraries/ReactPrivate/ReactNativePrivateInterface` entries from the eslint and Flow-codemod `publicAPIMapping`s and the `rn-arch` migration-list filters. Changelog: [Internal] Differential Revision: D114055938
Differential Revision: D119498576
rubennorte
added a commit
to rubennorte/react-native
that referenced
this pull request
Sep 10, 2026
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 15:45
0f3b507 to
38dcae4
Compare
Summary: Pull Request resolved: react#58455 `react-native/react-private-interface` still exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole of `Libraries/Renderer` (the Fabric bundles and the shims) shows that `ExceptionsManager`, `Platform`, `RCTEventEmitter`, `TextInputState`, `deepDiffer`, `flattenStyle`, `legacySendAccessibilityEvent` and `CustomEvent` have no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist. Remove those getters, along with the `import typeof` declarations that became unused (including the `DangerouslyImpreciseStyleProp` type that only `flattenStyle` needed) and the two `TODO` comments attached to `deepDiffer` and `flattenStyle`. The modules themselves are untouched and stay reachable through their normal entry points. `react-private-interface.js.flow` is updated to match. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D119500025
rubennorte
force-pushed
the
export-D119500025
branch
from
September 10, 2026 15:51
38dcae4 to
54a6818
Compare
|
This pull request has been merged in 7754512. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
react-native/react-private-interfacestill exposed a number of values that no version of the renderer reads anymore. Checking every binding against the whole ofLibraries/Renderer(the Fabric bundles and the shims) shows thatExceptionsManager,Platform,RCTEventEmitter,TextInputState,deepDiffer,flattenStyle,legacySendAccessibilityEventandCustomEventhave no reference left — most of them were only ever needed by the legacy renderer bundles, which no longer exist.Remove those getters, along with the
import typeofdeclarations that became unused (including theDangerouslyImpreciseStyleProptype that onlyflattenStyleneeded) and the twoTODOcomments attached todeepDifferandflattenStyle. The modules themselves are untouched and stay reachable through their normal entry points.react-private-interface.js.flowis updated to match.Changelog: [Internal]
Reviewed By: christophpurrer
Differential Revision: D119500025