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..e2e86bfcd2324959f1455d367aa0d10718987026 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() { |
+ // TODO(smcgruer): DCHECK !RuntimeEnabledFeatures::slimmingPaintV2Enabled() ? |
flackr
2017/04/11 20:46:28
This is never called with slimming paint V2? Are t
smcgruer
2017/04/12 15:33:04
This should never be called with spv2, as the enti
flackr
2017/04/12 15:50:15
Acknowledged.
|
+ if (!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); |