Index: Source/core/frame/FrameView.cpp |
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
index 73ffa854dab6d72fa68181f37a886b4eaa8ca77a..c3390d45b49ed7467b390fda9fa828c4e0c5a3ee 100644 |
--- a/Source/core/frame/FrameView.cpp |
+++ b/Source/core/frame/FrameView.cpp |
@@ -2780,8 +2780,15 @@ void FrameView::updateLayoutAndStyleForPainting() |
RefPtr<FrameView> protector(this); |
updateLayoutAndStyleIfNeededRecursive(); |
- if (RenderView* view = renderView()) |
+ if (RenderView* view = renderView()) { |
+ ASSERT(!view->needsLayout()); |
view->compositor()->updateCompositingLayers(); |
+ |
+ // FIXME: we should not have any dirty bits left at this point. Unfortunately, this is not yet the case because |
+ // the code in updateCompositingLayers sometimes creates new dirty bits when updating direct compositing reasons. |
+ // See crbug.com/354100. |
+ view->compositor()->scheduleAnimationIfNeeded(); |
+ } |
} |
void FrameView::updateLayoutAndStyleIfNeededRecursive() |