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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutObject.cpp

Issue 1364063007: Throttle rendering pipeline for invisible frames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IntersectionObserverification Created 5 years, 2 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 3231 matching lines...) Expand 10 before | Expand all | Expand 10 after
3242 bool isUpgradingDelayedFullToFull = m_bitfields.fullPaintInvalidationReason( ) == PaintInvalidationDelayedFull && reason != PaintInvalidationDelayedFull; 3242 bool isUpgradingDelayedFullToFull = m_bitfields.fullPaintInvalidationReason( ) == PaintInvalidationDelayedFull && reason != PaintInvalidationDelayedFull;
3243 3243
3244 if (m_bitfields.fullPaintInvalidationReason() == PaintInvalidationNone || is UpgradingDelayedFullToFull) { 3244 if (m_bitfields.fullPaintInvalidationReason() == PaintInvalidationNone || is UpgradingDelayedFullToFull) {
3245 if (reason == PaintInvalidationFull) 3245 if (reason == PaintInvalidationFull)
3246 reason = documentLifecycleBasedPaintInvalidationReason(document().li fecycle()); 3246 reason = documentLifecycleBasedPaintInvalidationReason(document().li fecycle());
3247 m_bitfields.setFullPaintInvalidationReason(reason); 3247 m_bitfields.setFullPaintInvalidationReason(reason);
3248 } 3248 }
3249 3249
3250 if (!isUpgradingDelayedFullToFull) { 3250 if (!isUpgradingDelayedFullToFull) {
3251 ASSERT(document().lifecycle().state() != DocumentLifecycle::InPaintInval idation); 3251 ASSERT(document().lifecycle().state() != DocumentLifecycle::InPaintInval idation);
3252 frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called outside of FrameView::updateLayoutAndStyleForPainting(). 3252 if (!frameView() || !frameView()->shouldThrottleRenderingPipeline())
3253 frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called outside of FrameView::updateLayoutAndStyleForPainting().
3253 markContainerChainForPaintInvalidation(); 3254 markContainerChainForPaintInvalidation();
3254 } 3255 }
3255 } 3256 }
3256 3257
3257 void LayoutObject::setMayNeedPaintInvalidation() 3258 void LayoutObject::setMayNeedPaintInvalidation()
3258 { 3259 {
3259 if (mayNeedPaintInvalidation()) 3260 if (mayNeedPaintInvalidation())
3260 return; 3261 return;
3261 m_bitfields.setMayNeedPaintInvalidation(true); 3262 m_bitfields.setMayNeedPaintInvalidation(true);
3262 markContainerChainForPaintInvalidation(); 3263 markContainerChainForPaintInvalidation();
3263 frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called outside of FrameView::updateLayoutAndStyleForPainting(). 3264 if (!frameView() || !frameView()->shouldThrottleRenderingPipeline())
3265 frame()->page()->animator().scheduleVisualUpdate(); // In case that this is called outside of FrameView::updateLayoutAndStyleForPainting().
3264 } 3266 }
3265 3267
3266 void LayoutObject::clearPaintInvalidationState(const PaintInvalidationState& pai ntInvalidationState) 3268 void LayoutObject::clearPaintInvalidationState(const PaintInvalidationState& pai ntInvalidationState)
3267 { 3269 {
3268 // paintInvalidationStateIsDirty should be kept in sync with the 3270 // paintInvalidationStateIsDirty should be kept in sync with the
3269 // booleans that are cleared below. 3271 // booleans that are cleared below.
3270 ASSERT(paintInvalidationState.forcedSubtreeInvalidationWithinContainer() || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinContainer() || p aintInvalidationStateIsDirty()); 3272 ASSERT(paintInvalidationState.forcedSubtreeInvalidationWithinContainer() || paintInvalidationState.forcedSubtreeInvalidationRectUpdateWithinContainer() || p aintInvalidationStateIsDirty());
3271 clearShouldDoFullPaintInvalidation(); 3273 clearShouldDoFullPaintInvalidation();
3272 m_bitfields.setChildShouldCheckForPaintInvalidation(false); 3274 m_bitfields.setChildShouldCheckForPaintInvalidation(false);
3273 m_bitfields.setNeededLayoutBecauseOfChildren(false); 3275 m_bitfields.setNeededLayoutBecauseOfChildren(false);
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
3471 const blink::LayoutObject* root = object1; 3473 const blink::LayoutObject* root = object1;
3472 while (root->parent()) 3474 while (root->parent())
3473 root = root->parent(); 3475 root = root->parent();
3474 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3476 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3475 } else { 3477 } else {
3476 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3478 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3477 } 3479 }
3478 } 3480 }
3479 3481
3480 #endif 3482 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698