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

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

Issue 1791543005: InPrePaint document state and PrePaintTreeWalk class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 #include "core/loader/FrameLoader.h" 74 #include "core/loader/FrameLoader.h"
75 #include "core/loader/FrameLoaderClient.h" 75 #include "core/loader/FrameLoaderClient.h"
76 #include "core/page/AutoscrollController.h" 76 #include "core/page/AutoscrollController.h"
77 #include "core/page/ChromeClient.h" 77 #include "core/page/ChromeClient.h"
78 #include "core/page/FocusController.h" 78 #include "core/page/FocusController.h"
79 #include "core/page/FrameTree.h" 79 #include "core/page/FrameTree.h"
80 #include "core/page/Page.h" 80 #include "core/page/Page.h"
81 #include "core/page/scrolling/ScrollingCoordinator.h" 81 #include "core/page/scrolling/ScrollingCoordinator.h"
82 #include "core/paint/FramePainter.h" 82 #include "core/paint/FramePainter.h"
83 #include "core/paint/PaintLayer.h" 83 #include "core/paint/PaintLayer.h"
84 #include "core/paint/PaintPropertyTreeBuilder.h" 84 #include "core/paint/PrePaintTreeWalk.h"
85 #include "core/plugins/PluginView.h" 85 #include "core/plugins/PluginView.h"
86 #include "core/style/ComputedStyle.h" 86 #include "core/style/ComputedStyle.h"
87 #include "core/svg/SVGDocumentExtensions.h" 87 #include "core/svg/SVGDocumentExtensions.h"
88 #include "core/svg/SVGSVGElement.h" 88 #include "core/svg/SVGSVGElement.h"
89 #include "platform/HostWindow.h" 89 #include "platform/HostWindow.h"
90 #include "platform/RuntimeEnabledFeatures.h" 90 #include "platform/RuntimeEnabledFeatures.h"
91 #include "platform/ScriptForbiddenScope.h" 91 #include "platform/ScriptForbiddenScope.h"
92 #include "platform/TraceEvent.h" 92 #include "platform/TraceEvent.h"
93 #include "platform/TracedValue.h" 93 #include "platform/TracedValue.h"
94 #include "platform/fonts/FontCache.h" 94 #include "platform/fonts/FontCache.h"
(...skipping 2294 matching lines...) Expand 10 before | Expand all | Expand 10 after
2389 } 2389 }
2390 2390
2391 void FrameView::updateLifecycleToLayoutClean() 2391 void FrameView::updateLifecycleToLayoutClean()
2392 { 2392 {
2393 frame().localFrameRoot()->view()->updateLifecyclePhasesInternal(OnlyUpToLayo utClean); 2393 frame().localFrameRoot()->view()->updateLifecyclePhasesInternal(OnlyUpToLayo utClean);
2394 } 2394 }
2395 2395
2396 void FrameView::scheduleVisualUpdateForPaintInvalidationIfNeeded() 2396 void FrameView::scheduleVisualUpdateForPaintInvalidationIfNeeded()
2397 { 2397 {
2398 LocalFrame* localFrameRoot = frame().localFrameRoot(); 2398 LocalFrame* localFrameRoot = frame().localFrameRoot();
2399 if (!localFrameRoot->view()->m_isUpdatingAllLifecyclePhases || lifecycle().s tate() >= DocumentLifecycle::PaintInvalidationClean) { 2399 if (!localFrameRoot->view()->m_isUpdatingAllLifecyclePhases || lifecycle().s tate() >= DocumentLifecycle::PrePaintTreeWalkClean) {
2400 // Schedule visual update to process the paint invalidation in the next cycle. 2400 // Schedule visual update to process the paint invalidation in the next cycle.
2401 localFrameRoot->scheduleVisualUpdateUnlessThrottled(); 2401 localFrameRoot->scheduleVisualUpdateUnlessThrottled();
2402 } 2402 }
2403 // Otherwise the paint invalidation will be handled in paint invalidation ph ase of this cycle. 2403 // Otherwise the paint invalidation will be handled in paint invalidation ph ase of this cycle.
2404 } 2404 }
2405 2405
2406 // TODO(leviw): We don't assert lifecycle information from documents in child Pl uginViews. 2406 // TODO(leviw): We don't assert lifecycle information from documents in child Pl uginViews.
2407 void FrameView::updateLifecyclePhasesInternal(LifeCycleUpdateOption phases) 2407 void FrameView::updateLifecyclePhasesInternal(LifeCycleUpdateOption phases)
2408 { 2408 {
2409 Optional<TemporaryChange<bool>> isUpdatingAllLifecyclePhasesScope; 2409 Optional<TemporaryChange<bool>> isUpdatingAllLifecyclePhasesScope;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2472 2472
2473 updateViewportIntersectionsForSubtree(phases); 2473 updateViewportIntersectionsForSubtree(phases);
2474 } 2474 }
2475 2475
2476 void FrameView::updatePaintProperties() 2476 void FrameView::updatePaintProperties()
2477 { 2477 {
2478 TRACE_EVENT0("blink", "FrameView::updatePaintProperties"); 2478 TRACE_EVENT0("blink", "FrameView::updatePaintProperties");
2479 2479
2480 ASSERT(RuntimeEnabledFeatures::slimmingPaintV2Enabled()); 2480 ASSERT(RuntimeEnabledFeatures::slimmingPaintV2Enabled());
2481 2481
2482 forAllNonThrottledFrameViews([](FrameView& frameView) { frameView.lifecycle( ).advanceTo(DocumentLifecycle::InUpdatePaintProperties); }); 2482 forAllNonThrottledFrameViews([](FrameView& frameView) { frameView.lifecycle( ).advanceTo(DocumentLifecycle::InPrePaintTreeWalk); });
2483 PaintPropertyTreeBuilder().buildPropertyTrees(*this); 2483 PrePaintTreeWalk().buildPropertyTrees(*this);
2484 forAllNonThrottledFrameViews([](FrameView& frameView) { frameView.lifecycle( ).advanceTo(DocumentLifecycle::UpdatePaintPropertiesClean); }); 2484 forAllNonThrottledFrameViews([](FrameView& frameView) { frameView.lifecycle( ).advanceTo(DocumentLifecycle::PrePaintTreeWalkClean); });
2485 } 2485 }
2486 2486
2487 void FrameView::synchronizedPaint() 2487 void FrameView::synchronizedPaint()
2488 { 2488 {
2489 TRACE_EVENT0("blink", "FrameView::synchronizedPaint"); 2489 TRACE_EVENT0("blink", "FrameView::synchronizedPaint");
2490 2490
2491 ASSERT(frame() == page()->mainFrame() || (!frame().tree().parent()->isLocalF rame())); 2491 ASSERT(frame() == page()->mainFrame() || (!frame().tree().parent()->isLocalF rame()));
2492 2492
2493 LayoutView* view = layoutView(); 2493 LayoutView* view = layoutView();
2494 ASSERT(view); 2494 ASSERT(view);
(...skipping 1615 matching lines...) Expand 10 before | Expand all | Expand 10 after
4110 return m_hiddenForThrottling && m_crossOriginForThrottling; 4110 return m_hiddenForThrottling && m_crossOriginForThrottling;
4111 } 4111 }
4112 4112
4113 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const 4113 LayoutBox& FrameView::boxForScrollControlPaintInvalidation() const
4114 { 4114 {
4115 ASSERT(layoutView()); 4115 ASSERT(layoutView());
4116 return *layoutView(); 4116 return *layoutView();
4117 } 4117 }
4118 4118
4119 } // namespace blink 4119 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698