Skip to content

Upgrade react/renderer/dom visibility to "for frameworks" - #59032

Open
j-piasecki wants to merge 1 commit into
react:mainfrom
j-piasecki:export-D124966422
Open

j-piasecki wants to merge 1 commit into
react:mainfrom
j-piasecki:export-D124966422

Conversation

@j-piasecki

Copy link
Copy Markdown
Contributor

Summary:
Reclassifies react/renderer/dom from private to "for frameworks" under the C++ stable API three-tier visibility model.

Third-party frameworks rely on these shadow tree helpers; for example, react-native-reanimated calls dom::getParentNode to resolve a node's parent in the current revision. As a private header, DOM.h would hard-error for such consumers once they opt into RN_STRICT_API, with no escape hatch. As a "for frameworks" header it emits a suppressible warning that can be acknowledged with RN_ALLOW_FRAMEWORKS. Without RN_STRICT_API the guards are inert, so no existing build changes behaviour.

DOM.h only reaches RootShadowNode.h ("for frameworks") and ShadowNode.h (public), so the retier introduces no tier boundary breaks. react/nativemodule/dom (the NativeDOM TurboModule) stays private.

Changelog: [Internal]

Differential Revision: D124966422

Summary:
Reclassifies `react/renderer/dom` from private to "for frameworks" under the C++ stable API three-tier visibility model.

Third-party frameworks rely on these shadow tree helpers; for example, `react-native-reanimated` calls `dom::getParentNode` to resolve a node's parent in the current revision. As a private header, `DOM.h` would hard-error for such consumers once they opt into `RN_STRICT_API`, with no escape hatch. As a "for frameworks" header it emits a suppressible warning that can be acknowledged with `RN_ALLOW_FRAMEWORKS`. Without `RN_STRICT_API` the guards are inert, so no existing build changes behaviour.

`DOM.h` only reaches `RootShadowNode.h` ("for frameworks") and `ShadowNode.h` (public), so the retier introduces no tier boundary breaks. `react/nativemodule/dom` (the `NativeDOM` TurboModule) stays private.

Changelog: [Internal]

Differential Revision: D124966422
@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 13, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Oct 13, 2026

This branch has not been deployed

No deployments
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 p: Software Mansion Partner: Software Mansion Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant