| 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);
|
|
|