DescriptionDon't schedule an animation during compositing dirty-bit setting unless needed.
In particular, don't do it if the dirty bits are going to be cleaned up during synchronous
Blink execution anyway. To achieve this, this CL adds an m_updatingLayoutAndStyleForPainting state bit
in PageAnimator to indicate that code is in progress which is guaranteed to call
RenderLayerCompositor::updateCompositingLayers() at its end, and therefore any compositing dirty
bits set before that call do not require a call to scheduleAnimation().
Unfortunately, in a small number of cases RenderLayerCompositor::updateCompositingLayers will set
*new* dirty bits when updating direct compositing reasons. So put in code to check each
RenderLayerCompositor instance in the frame tree for dirty bits after
RenderLayerCompositor::updateCompositingLayers has run and call scheduleAnimation() if so. In the
future we can remove this once the compositing code is fixed to not leave around dirty bits.
BUG=340679
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169672
Patch Set 1 #Patch Set 2 : Cleanup. #Patch Set 3 : Cleanup. #
Total comments: 4
Patch Set 4 : Addressed comments from abarth@. #
Total comments: 2
Patch Set 5 : Added bug link. #Patch Set 6 : Add null check. #
Messages
Total messages: 23 (0 generated)
|