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

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

Issue 1110063006: Revert "Correct fixed-position recording for Slimming Paint" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/LayoutObject.h ('k') | Source/core/paint/DeprecatedPaintLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1208 1208
1209 // Not using enclosingCompositedContainer() directly because this object may be in an orphaned subtree. 1209 // Not using enclosingCompositedContainer() directly because this object may be in an orphaned subtree.
1210 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) { 1210 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) {
1211 // This is valid because we want to invalidate the client in the display item list of the current backing. 1211 // This is valid because we want to invalidate the client in the display item list of the current backing.
1212 DisableCompositingQueryAsserts disabler; 1212 DisableCompositingQueryAsserts disabler;
1213 if (const DeprecatedPaintLayer* paintInvalidationLayer = enclosingLayer- >enclosingLayerForPaintInvalidationCrossingFrameBoundaries()) 1213 if (const DeprecatedPaintLayer* paintInvalidationLayer = enclosingLayer- >enclosingLayerForPaintInvalidationCrossingFrameBoundaries())
1214 paintInvalidationLayer->layoutObject()->invalidateDisplayItemClientO nBacking(displayItemClient); 1214 paintInvalidationLayer->layoutObject()->invalidateDisplayItemClientO nBacking(displayItemClient);
1215 } 1215 }
1216 } 1216 }
1217 1217
1218 static void invalidateDisplayItemClientForNonCompositingDescendantsRecursive(con st LayoutBoxModelObject& paintInvalidationContainer, const LayoutObject& layoutO bject)
1219 {
1220 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(layoutObject );
1221 for (LayoutObject* child = layoutObject.slowFirstChild(); child; child = chi ld->nextSibling()) {
1222 if (!child->isPaintInvalidationContainer())
1223 invalidateDisplayItemClientForNonCompositingDescendantsRecursive(pai ntInvalidationContainer, *child);
1224 }
1225 }
1226
1227 void LayoutObject::invalidateDisplayItemClientForNonCompositingDescendants() con st
1228 {
1229 ASSERT(RuntimeEnabledFeatures::slimmingPaintEnabled());
1230
1231 // Not using enclosingCompositedContainer() directly because this object may be in an orphaned subtree.
1232 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) {
1233 // This is valid because we want to invalidate the client in the display item list of the current backing.
1234 DisableCompositingQueryAsserts disabler;
1235 if (const DeprecatedPaintLayer* paintInvalidationLayer = enclosingLayer- >enclosingLayerForPaintInvalidationCrossingFrameBoundaries())
1236 invalidateDisplayItemClientForNonCompositingDescendantsRecursive(*pa intInvalidationLayer->layoutObject(), *this);
1237 }
1238 }
1239
1240 void LayoutObject::invalidateDisplayItemClients(const LayoutBoxModelObject& pain tInvalidationContainer) const 1218 void LayoutObject::invalidateDisplayItemClients(const LayoutBoxModelObject& pain tInvalidationContainer) const
1241 { 1219 {
1242 ASSERT(RuntimeEnabledFeatures::slimmingPaintEnabled()); 1220 ASSERT(RuntimeEnabledFeatures::slimmingPaintEnabled());
1243 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this); 1221 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*this);
1244 } 1222 }
1245 1223
1246 LayoutRect LayoutObject::boundsRectForPaintInvalidation(const LayoutBoxModelObje ct* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationS tate) const 1224 LayoutRect LayoutObject::boundsRectForPaintInvalidation(const LayoutBoxModelObje ct* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationS tate) const
1247 { 1225 {
1248 if (!paintInvalidationContainer) 1226 if (!paintInvalidationContainer)
1249 return computePaintInvalidationRect(paintInvalidationContainer, paintInv alidationState); 1227 return computePaintInvalidationRect(paintInvalidationContainer, paintInv alidationState);
(...skipping 2082 matching lines...) Expand 10 before | Expand all | Expand 10 after
3332 { 3310 {
3333 if (object1) { 3311 if (object1) {
3334 const blink::LayoutObject* root = object1; 3312 const blink::LayoutObject* root = object1;
3335 while (root->parent()) 3313 while (root->parent())
3336 root = root->parent(); 3314 root = root->parent();
3337 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3315 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3338 } 3316 }
3339 } 3317 }
3340 3318
3341 #endif 3319 #endif
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutObject.h ('k') | Source/core/paint/DeprecatedPaintLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698