Index: third_party/WebKit/Source/core/frame/FrameView.cpp |
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp |
index a7254f82cf1954e4841113cd7d203798305245b5..0081396a4154ba51c197e6c6275e6084e4561964 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp |
@@ -2920,6 +2920,14 @@ void FrameView::UpdateLifecycleToCompositingCleanPlusScrolling() { |
} |
} |
+void FrameView::UpdateLifecycleToCompositingInputsClean() { |
+ // When SPv2 is enabled, the standard compositing lifecycle steps do not |
+ // exist; compositing is done after paint instead. |
+ DCHECK(!RuntimeEnabledFeatures::slimmingPaintV2Enabled()); |
+ GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
+ DocumentLifecycle::kCompositingInputsClean); |
+} |
+ |
void FrameView::UpdateAllLifecyclePhasesExceptPaint() { |
GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( |
DocumentLifecycle::kPrePaintClean); |
@@ -3021,6 +3029,7 @@ void FrameView::UpdateLifecyclePhasesInternal( |
// Only the following target states are supported. |
DCHECK(target_state == DocumentLifecycle::kLayoutClean || |
+ target_state == DocumentLifecycle::kCompositingInputsClean || |
target_state == DocumentLifecycle::kCompositingClean || |
target_state == DocumentLifecycle::kPrePaintClean || |
target_state == DocumentLifecycle::kPaintClean); |
@@ -3070,7 +3079,7 @@ void FrameView::UpdateLifecyclePhasesInternal( |
InspectorUpdateLayerTreeEvent::Data(frame_.Get())); |
if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
- view.Compositor()->UpdateIfNeededRecursive(); |
+ view.Compositor()->UpdateIfNeededRecursive(target_state); |
} else { |
ForAllNonThrottledFrameViews([](FrameView& frame_view) { |
frame_view.GetLayoutView()->Layer()->UpdateDescendantDependentFlags(); |
@@ -3078,6 +3087,12 @@ void FrameView::UpdateLifecyclePhasesInternal( |
}); |
} |
+ if (target_state == DocumentLifecycle::kCompositingInputsClean) { |
+ DCHECK_EQ(Lifecycle().GetState(), |
+ DocumentLifecycle::kCompositingInputsClean); |
+ return; |
+ } |
+ |
ScrollContentsIfNeededRecursive(); |
DCHECK(RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() || |
Lifecycle().GetState() >= DocumentLifecycle::kCompositingClean); |