Skip to content

Add feature flag for clone reference updates only on layout#44771

Closed
lenaic wants to merge 4 commits into
facebook:mainfrom
lenaic:export-D58000072
Closed

Add feature flag for clone reference updates only on layout#44771
lenaic wants to merge 4 commits into
facebook:mainfrom
lenaic:export-D58000072

Conversation

@lenaic
Copy link
Copy Markdown

@lenaic lenaic commented Jun 3, 2024

Summary:
Changelog: [Internal]

Adding a feature flag for enabling runtime shadow node reference updates only for clones happening within YogaLayoutableShadowNode to support layout data changes.

Reviewed By: sammy-SC

Differential Revision: D58000072

Nick Lefever added 3 commits June 1, 2024 18:49
Summary:
Adding a feature flag to conditionally enable shadow node reference updates when cloning nodes within react native.

The feature flag will be used to run an experiment with this feature.

Differential Revision: D57860868
Summary:
React native clones shadow nodes internally without providing the new instances to the React renderer (current fiber tree). To support updating the shadow node references held by the JS side, this diff wraps the returned shadow nodes and adds a link to the runtime reference on the shadow node instance.

This will allow for updating the shadow node references held within the JS runtime from the native side.

Differential Revision: https://www.internalfb.com/diff/D57860869?entry_point=27
Summary:
Any shadow node cloning happening outside the execution of the UIManagerBinding cloneNode call should guarantee that the references held to the shadow node are updated to the latest revision.

This guarantees that the React renderer's current fiber tree holds references to the ShadowNode instances that acually were layed out and committed for rendering on the native side. Maintaining these references up to date on the JS current fiber tree allows to maximize layout caches on subsequent commits.

Differential Revision: https://www.internalfb.com/diff/D57860867?entry_point=27
@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Jun 3, 2024
@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D58000072

…#44771)

Summary:
Pull Request resolved: facebook#44771

Changelog: [Internal]

Adding a feature flag for enabling runtime shadow node reference updates only for clones happening within `YogaLayoutableShadowNode` to support layout data changes.

Reviewed By: sammy-SC

Differential Revision: D58000072
@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D58000072

@lenaic lenaic force-pushed the export-D58000072 branch from 0b1fc6d to 25a4972 Compare June 3, 2024 18:07
@analysis-bot
Copy link
Copy Markdown

Platform Engine Arch Size (bytes) Diff
android hermes arm64-v8a 19,593,100 +16,497
android hermes armeabi-v7a n/a --
android hermes x86 n/a --
android hermes x86_64 n/a --
android jsc arm64-v8a 22,962,592 +16,441
android jsc armeabi-v7a n/a --
android jsc x86 n/a --
android jsc x86_64 n/a --

Base commit: a6a7cdf
Branch: main

@facebook-github-bot
Copy link
Copy Markdown
Contributor

This pull request has been merged in 4806077.

@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Jun 4, 2024
kosmydel pushed a commit to kosmydel/react-native that referenced this pull request Jun 11, 2024
…#44771)

Summary:
Pull Request resolved: facebook#44771

Changelog: [Internal]

Adding a feature flag for enabling runtime shadow node reference updates only for clones happening within `YogaLayoutableShadowNode` to support layout data changes.

Reviewed By: sammy-SC

Differential Revision: D58000072

fbshipit-source-id: 204c0488edb992511a4b33d098b9df1b04001b9d
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 Merged This PR has been merged. p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants