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

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

Issue 2724083002: [SPv2] Decomposite otherwise-compositable animations that paint nothing. (Closed)
Patch Set: More include tweaks. Created 3 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 3084 matching lines...) Expand 10 before | Expand all | Expand 10 after
3095 // for slimming paint v2. 3095 // for slimming paint v2.
3096 if (targetState >= DocumentLifecycle::PrePaintClean) 3096 if (targetState >= DocumentLifecycle::PrePaintClean)
3097 prePaint(); 3097 prePaint();
3098 } 3098 }
3099 3099
3100 if (targetState == DocumentLifecycle::PaintClean) { 3100 if (targetState == DocumentLifecycle::PaintClean) {
3101 if (!m_frame->document()->printing() || 3101 if (!m_frame->document()->printing() ||
3102 RuntimeEnabledFeatures::printBrowserEnabled()) 3102 RuntimeEnabledFeatures::printBrowserEnabled())
3103 paintTree(); 3103 paintTree();
3104 3104
3105 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) 3105 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
3106 pushPaintArtifactToCompositor(); 3106 Optional<CompositorElementIdSet> compositedElementIds =
3107 CompositorElementIdSet();
3108 pushPaintArtifactToCompositor(compositedElementIds.value());
3109 DocumentAnimations::updateAnimations(layoutView()->document(),
3110 DocumentLifecycle::PaintClean,
3111 compositedElementIds);
3112 }
3107 3113
3108 DCHECK(!view.hasPendingSelection()); 3114 DCHECK(!view.hasPendingSelection());
3109 DCHECK((m_frame->document()->printing() && 3115 DCHECK((m_frame->document()->printing() &&
3110 lifecycle().state() == DocumentLifecycle::PrePaintClean) || 3116 lifecycle().state() == DocumentLifecycle::PrePaintClean) ||
3111 lifecycle().state() == DocumentLifecycle::PaintClean); 3117 lifecycle().state() == DocumentLifecycle::PaintClean);
3112
3113 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
3114 DocumentAnimations::updateAnimations(layoutView()->document(),
3115 DocumentLifecycle::PaintClean);
3116 }
3117 } 3118 }
3118 3119
3119 forAllNonThrottledFrameViews([](FrameView& frameView) { 3120 forAllNonThrottledFrameViews([](FrameView& frameView) {
3120 frameView.checkDoesNotNeedLayout(); 3121 frameView.checkDoesNotNeedLayout();
3121 frameView.m_allowsLayoutInvalidationAfterLayoutClean = true; 3122 frameView.m_allowsLayoutInvalidationAfterLayoutClean = true;
3122 }); 3123 });
3123 } 3124 }
3124 3125
3125 updateViewportIntersectionsForSubtree(targetState); 3126 updateViewportIntersectionsForSubtree(targetState);
3126 } 3127 }
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
3243 if (GraphicsLayer* maskLayer = graphicsLayer->maskLayer()) 3244 if (GraphicsLayer* maskLayer = graphicsLayer->maskLayer())
3244 paintGraphicsLayerRecursively(maskLayer); 3245 paintGraphicsLayerRecursively(maskLayer);
3245 if (GraphicsLayer* contentsClippingMaskLayer = 3246 if (GraphicsLayer* contentsClippingMaskLayer =
3246 graphicsLayer->contentsClippingMaskLayer()) 3247 graphicsLayer->contentsClippingMaskLayer())
3247 paintGraphicsLayerRecursively(contentsClippingMaskLayer); 3248 paintGraphicsLayerRecursively(contentsClippingMaskLayer);
3248 3249
3249 for (auto& child : graphicsLayer->children()) 3250 for (auto& child : graphicsLayer->children())
3250 paintGraphicsLayerRecursively(child); 3251 paintGraphicsLayerRecursively(child);
3251 } 3252 }
3252 3253
3253 void FrameView::pushPaintArtifactToCompositor() { 3254 void FrameView::pushPaintArtifactToCompositor(
3255 CompositorElementIdSet& compositedElementIds) {
3254 TRACE_EVENT0("blink", "FrameView::pushPaintArtifactToCompositor"); 3256 TRACE_EVENT0("blink", "FrameView::pushPaintArtifactToCompositor");
3255 3257
3256 DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled()); 3258 DCHECK(RuntimeEnabledFeatures::slimmingPaintV2Enabled());
3257 3259
3258 Page* page = frame().page(); 3260 Page* page = frame().page();
3259 if (!page) 3261 if (!page)
3260 return; 3262 return;
3261 3263
3262 if (!m_paintArtifactCompositor) { 3264 if (!m_paintArtifactCompositor) {
3263 m_paintArtifactCompositor = PaintArtifactCompositor::create(); 3265 m_paintArtifactCompositor = PaintArtifactCompositor::create();
3264 page->chromeClient().attachRootLayer( 3266 page->chromeClient().attachRootLayer(
3265 m_paintArtifactCompositor->getWebLayer(), &frame()); 3267 m_paintArtifactCompositor->getWebLayer(), &frame());
3266 } 3268 }
3267 3269
3268 SCOPED_BLINK_UMA_HISTOGRAM_TIMER("Blink.Compositing.UpdateTime"); 3270 SCOPED_BLINK_UMA_HISTOGRAM_TIMER("Blink.Compositing.UpdateTime");
3269 3271
3270 DCHECK(m_geometryMapper.get()); 3272 DCHECK(m_geometryMapper.get());
3271 m_paintArtifactCompositor->update( 3273 m_paintArtifactCompositor->update(
3272 m_paintController->paintArtifact(), 3274 m_paintController->paintArtifact(),
3273 m_paintController->paintChunksRasterInvalidationTrackingMap(), 3275 m_paintController->paintChunksRasterInvalidationTrackingMap(),
3274 m_isStoringCompositedLayerDebugInfo, *m_geometryMapper); 3276 m_isStoringCompositedLayerDebugInfo, *m_geometryMapper,
3277 compositedElementIds);
3275 } 3278 }
3276 3279
3277 std::unique_ptr<JSONObject> FrameView::compositedLayersAsJSON( 3280 std::unique_ptr<JSONObject> FrameView::compositedLayersAsJSON(
3278 LayerTreeFlags flags) { 3281 LayerTreeFlags flags) {
3279 return frame() 3282 return frame()
3280 .localFrameRoot() 3283 .localFrameRoot()
3281 ->view() 3284 ->view()
3282 ->m_paintArtifactCompositor->layersAsJSON(flags); 3285 ->m_paintArtifactCompositor->layersAsJSON(flags);
3283 } 3286 }
3284 3287
(...skipping 1976 matching lines...) Expand 10 before | Expand all | Expand 10 after
5261 void FrameView::setAnimationHost( 5264 void FrameView::setAnimationHost(
5262 std::unique_ptr<CompositorAnimationHost> host) { 5265 std::unique_ptr<CompositorAnimationHost> host) {
5263 m_animationHost = std::move(host); 5266 m_animationHost = std::move(host);
5264 } 5267 }
5265 5268
5266 LayoutUnit FrameView::caretWidth() const { 5269 LayoutUnit FrameView::caretWidth() const {
5267 return LayoutUnit(getHostWindow()->windowToViewportScalar(1)); 5270 return LayoutUnit(getHostWindow()->windowToViewportScalar(1));
5268 } 5271 }
5269 5272
5270 } // namespace blink 5273 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698