Rebuild parent frame GraphicsLayers if a subframe has dirty root layer attachment
When a frame rebuilds its GraphicsLayer tree, we mark its root layer attachment dirty. Previously when we updated GraphicsLayer tree of the parent frame and saw a subframe had the flag, we forced rebuild of the parent frame's GraphicsLayerTree. However, if the parent frame didn't have any compositing update flag set, we wouldn't do GraphicsLayer tree update, and the subframe's root layer would be left detached. Now check child frame's root layer attachment dirty flag when we walk the frame tree, which is unconditional, and set the parent layer needing rebuild GraphicsLayer tree if any child frame has the flag set. Haven't created a simple test case for the bug. It happens as the following: 1. Some change in a subframe happens, requiring paint property update, but not compositing input update. 2. During paint property update, we mark the subframe's compositor needing compositing update. 3. During compositing update for the subframe, we rebuild the GraphicsLayer subtree and set the root layer attachment dirty. 4. Previously, as the parent frame didn't have any compositing flag set, the subframe's GraphicsLayer was left unattached. Now we force the parent frame to rebuild GraphicsLayer tree. Bug: 1142725 Change-Id: I11bd1839cf410aec4dd1e4ae87e9df32de9d210b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522877Reviewed-by:Stefan Zager <szager@chromium.org> Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#825046}
Showing
Please register or sign in to comment