Skip to content

Comments

Stub UIViewOperationQueue and remove its usages#55658

Closed
mdvacca wants to merge 2 commits intofacebook:mainfrom
mdvacca:export-D93069524
Closed

Stub UIViewOperationQueue and remove its usages#55658
mdvacca wants to merge 2 commits intofacebook:mainfrom
mdvacca:export-D93069524

Conversation

@mdvacca
Copy link
Contributor

@mdvacca mdvacca commented Feb 20, 2026

Summary:
UIViewOperationQueue is part of the Legacy Architecture and is no longer needed. This change stubs out all methods in the class (making them no-ops) and removes all call sites that invoked those methods across the codebase.

Specifically:

  • UIViewOperationQueue: All method bodies replaced with empty stubs, all inner classes removed, all fields removed. The public API signatures are preserved for backward compatibility.
  • UIImplementation: All calls to mOperationsQueue.enqueue*, dispatchViewUpdates, resumeFrameCallback, pauseFrameCallback, etc. removed. Layout update listener is now called directly instead of through the queue.
  • UIManagerModule: resolveView() now returns null instead of chaining through the operation queue.
  • ReactShadowNodeImpl: dispatchUpdates() no longer calls enqueueUpdateLayout on the operation queue.
  • ARTSurfaceViewShadowNode: Deleted the onCollectExtraUpdates override that called enqueueUpdateExtraData.

Reviewed By: NickGerleman

Differential Revision: D93069524

Summary:
Remove the NativeViewHierarchyOptimizer class and all its usages. This class was part of the Legacy Architecture and had already been largely gutted (most logic removed due to NativeKind removal). Its remaining responsibilities have been inlined into the call sites: UIImplementation now directly enqueues view operations on UIViewOperationQueue, and ReactShadowNodeImpl.dispatchUpdates now directly calls enqueueUpdateLayout. The NativeViewHierarchyOptimizer parameter has been removed from the ReactShadowNode.onBeforeLayout() and dispatchUpdates() interfaces.

changelog: [internal] internal

Reviewed By: NickGerleman

Differential Revision: D93037023
Summary:
UIViewOperationQueue is part of the Legacy Architecture and is no longer needed. This change stubs out all methods in the class (making them no-ops) and removes all call sites that invoked those methods across the codebase.

Specifically:
- UIViewOperationQueue: All method bodies replaced with empty stubs, all inner classes removed, all fields removed. The public API signatures are preserved for backward compatibility.
- UIImplementation: All calls to mOperationsQueue.enqueue*, dispatchViewUpdates, resumeFrameCallback, pauseFrameCallback, etc. removed. Layout update listener is now called directly instead of through the queue.
- UIManagerModule: resolveView() now returns null instead of chaining through the operation queue.
- ReactShadowNodeImpl: dispatchUpdates() no longer calls enqueueUpdateLayout on the operation queue.
- ARTSurfaceViewShadowNode: Deleted the onCollectExtraUpdates override that called enqueueUpdateExtraData.

Reviewed By: NickGerleman

Differential Revision: D93069524
@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 Feb 20, 2026
@meta-codesync
Copy link

meta-codesync bot commented Feb 20, 2026

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

@meta-codesync
Copy link

meta-codesync bot commented Feb 20, 2026

This pull request has been merged in 7de3dbe.

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. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants