DescriptionUpdate scroll layers' bounds_delta earlier during tree activation.
When a tree activation occurs, we must update the property trees' bounds deltas
so that they get propagated across the trees. This was previously done in
LayerTreeHostImpl::ActivateSyncTree() and needs to happen before
updateViewportContainerSizes() is called, otherwise it will clamp scroll offsets
incorrectly becaues the bounds_deltas haven't been propagated yet.
However, this bug occurs because earlier in ActivateSyncTree(), in
LayerTreeImpl::PushPropertiesTo, we may change the top controls values when
PushTopControls is called and causes a change. This indirectly causes
UpdateViewportContainerSizes to be called which we must do after updating the
bounds deltas.
This CL moves the update to happen inside LayerTreeImpl::PushPropertiesTo near
the beginning. I've rewritten the ViewportBoundsDeltaOnTreeActivation test to
catch this. It was written to catch basically the same issue but with
UpdateViewportContainerSizes being called later than in this bug so checking for
this case should catch both.
BUG=627911
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Committed: https://crrev.com/fe9e63ecc3b6d320006ba0d22b7000eb0af30239
Cr-Commit-Position: refs/heads/master@{#406341}
Patch Set 1 #Patch Set 2 : Rebase #Patch Set 3 : Rebase #
Messages
Total messages: 23 (13 generated)
|