Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2795263002: Add a new document lifecycle; CompositingInputsClean (Closed)
Patch Set: Rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
3 * 1999 Lars Knoll <knoll@kde.org> 3 * 1999 Lars Knoll <knoll@kde.org>
4 * 1999 Antti Koivisto <koivisto@kde.org> 4 * 1999 Antti Koivisto <koivisto@kde.org>
5 * 2000 Dirk Mueller <mueller@kde.org> 5 * 2000 Dirk Mueller <mueller@kde.org>
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * Copyright (C) 2009 Google Inc. All rights reserved. 9 * Copyright (C) 2009 Google Inc. All rights reserved.
10 * 10 *
(...skipping 2908 matching lines...) Expand 10 before | Expand all | Expand 10 after
2919 // TODO(chrishtr): add a scrolling update lifecycle phase. 2919 // TODO(chrishtr): add a scrolling update lifecycle phase.
2920 void FrameView::UpdateLifecycleToCompositingCleanPlusScrolling() { 2920 void FrameView::UpdateLifecycleToCompositingCleanPlusScrolling() {
2921 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 2921 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
2922 UpdateAllLifecyclePhasesExceptPaint(); 2922 UpdateAllLifecyclePhasesExceptPaint();
2923 } else { 2923 } else {
2924 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( 2924 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal(
2925 DocumentLifecycle::kCompositingClean); 2925 DocumentLifecycle::kCompositingClean);
2926 } 2926 }
2927 } 2927 }
2928 2928
2929 void FrameView::UpdateLifecycleToCompositingInputsClean() {
2930 // When SPv2 is enabled, the standard compositing lifecycle steps do not
2931 // exist; compositing is done after paint instead.
2932 DCHECK(!RuntimeEnabledFeatures::slimmingPaintV2Enabled());
2933 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal(
2934 DocumentLifecycle::kCompositingInputsClean);
2935 }
2936
2929 void FrameView::UpdateAllLifecyclePhasesExceptPaint() { 2937 void FrameView::UpdateAllLifecyclePhasesExceptPaint() {
2930 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( 2938 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal(
2931 DocumentLifecycle::kPrePaintClean); 2939 DocumentLifecycle::kPrePaintClean);
2932 } 2940 }
2933 2941
2934 void FrameView::UpdateLifecycleToLayoutClean() { 2942 void FrameView::UpdateLifecycleToLayoutClean() {
2935 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal( 2943 GetFrame().LocalFrameRoot()->View()->UpdateLifecyclePhasesInternal(
2936 DocumentLifecycle::kLayoutClean); 2944 DocumentLifecycle::kLayoutClean);
2937 } 2945 }
2938 2946
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
3023 NOTREACHED() << "FrameView::updateLifecyclePhasesInternal() reentrance"; 3031 NOTREACHED() << "FrameView::updateLifecyclePhasesInternal() reentrance";
3024 return; 3032 return;
3025 } 3033 }
3026 3034
3027 // This must be called from the root frame, since it recurses down, not up. 3035 // This must be called from the root frame, since it recurses down, not up.
3028 // Otherwise the lifecycles of the frames might be out of sync. 3036 // Otherwise the lifecycles of the frames might be out of sync.
3029 DCHECK(frame_->IsLocalRoot()); 3037 DCHECK(frame_->IsLocalRoot());
3030 3038
3031 // Only the following target states are supported. 3039 // Only the following target states are supported.
3032 DCHECK(target_state == DocumentLifecycle::kLayoutClean || 3040 DCHECK(target_state == DocumentLifecycle::kLayoutClean ||
3041 target_state == DocumentLifecycle::kCompositingInputsClean ||
3033 target_state == DocumentLifecycle::kCompositingClean || 3042 target_state == DocumentLifecycle::kCompositingClean ||
3034 target_state == DocumentLifecycle::kPrePaintClean || 3043 target_state == DocumentLifecycle::kPrePaintClean ||
3035 target_state == DocumentLifecycle::kPaintClean); 3044 target_state == DocumentLifecycle::kPaintClean);
3036 3045
3037 if (!frame_->GetDocument()->IsActive()) 3046 if (!frame_->GetDocument()->IsActive())
3038 return; 3047 return;
3039 3048
3040 AutoReset<DocumentLifecycle::LifecycleState> target_state_scope( 3049 AutoReset<DocumentLifecycle::LifecycleState> target_state_scope(
3041 &current_update_lifecycle_phases_target_state_, target_state); 3050 &current_update_lifecycle_phases_target_state_, target_state);
3042 3051
(...skipping 29 matching lines...) Expand all
3072 ForAllNonThrottledFrameViews([](FrameView& frame_view) { 3081 ForAllNonThrottledFrameViews([](FrameView& frame_view) {
3073 frame_view.CheckDoesNotNeedLayout(); 3082 frame_view.CheckDoesNotNeedLayout();
3074 frame_view.allows_layout_invalidation_after_layout_clean_ = false; 3083 frame_view.allows_layout_invalidation_after_layout_clean_ = false;
3075 }); 3084 });
3076 3085
3077 { 3086 {
3078 TRACE_EVENT1("devtools.timeline", "UpdateLayerTree", "data", 3087 TRACE_EVENT1("devtools.timeline", "UpdateLayerTree", "data",
3079 InspectorUpdateLayerTreeEvent::Data(frame_.Get())); 3088 InspectorUpdateLayerTreeEvent::Data(frame_.Get()));
3080 3089
3081 if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 3090 if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
3082 view.Compositor()->UpdateIfNeededRecursive(); 3091 view.Compositor()->UpdateIfNeededRecursive(target_state);
3083 } else { 3092 } else {
3084 ForAllNonThrottledFrameViews([](FrameView& frame_view) { 3093 ForAllNonThrottledFrameViews([](FrameView& frame_view) {
3085 frame_view.GetLayoutView()->Layer()->UpdateDescendantDependentFlags(); 3094 frame_view.GetLayoutView()->Layer()->UpdateDescendantDependentFlags();
3086 frame_view.GetLayoutView()->CommitPendingSelection(); 3095 frame_view.GetLayoutView()->CommitPendingSelection();
3087 }); 3096 });
3088 } 3097 }
3089 3098
3099 if (target_state == DocumentLifecycle::kCompositingInputsClean) {
3100 DCHECK_EQ(Lifecycle().GetState(),
3101 DocumentLifecycle::kCompositingInputsClean);
3102 return;
3103 }
3104
3090 ScrollContentsIfNeededRecursive(); 3105 ScrollContentsIfNeededRecursive();
3091 DCHECK(RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() || 3106 DCHECK(RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled() ||
3092 Lifecycle().GetState() >= DocumentLifecycle::kCompositingClean); 3107 Lifecycle().GetState() >= DocumentLifecycle::kCompositingClean);
3093 3108
3094 frame_->GetPage()->GlobalRootScrollerController().DidUpdateCompositing(); 3109 frame_->GetPage()->GlobalRootScrollerController().DidUpdateCompositing();
3095 3110
3096 if (target_state >= DocumentLifecycle::kPrePaintClean) { 3111 if (target_state >= DocumentLifecycle::kPrePaintClean) {
3097 if (!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled()) 3112 if (!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled())
3098 InvalidateTreeIfNeededRecursive(); 3113 InvalidateTreeIfNeededRecursive();
3099 3114
(...skipping 2231 matching lines...) Expand 10 before | Expand all | Expand 10 after
5331 void FrameView::SetAnimationHost( 5346 void FrameView::SetAnimationHost(
5332 std::unique_ptr<CompositorAnimationHost> host) { 5347 std::unique_ptr<CompositorAnimationHost> host) {
5333 animation_host_ = std::move(host); 5348 animation_host_ = std::move(host);
5334 } 5349 }
5335 5350
5336 LayoutUnit FrameView::CaretWidth() const { 5351 LayoutUnit FrameView::CaretWidth() const {
5337 return LayoutUnit(GetHostWindow()->WindowToViewportScalar(1)); 5352 return LayoutUnit(GetHostWindow()->WindowToViewportScalar(1));
5338 } 5353 }
5339 5354
5340 } // namespace blink 5355 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698