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

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

Issue 2488343002: Move clearPaintInvalidatinFlags after subtree walk (Closed)
Patch Set: Created 4 years, 1 month 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. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc.
7 * All rights reserved. 7 * All rights reserved.
8 * Copyright (C) 2009 Google Inc. All rights reserved. 8 * Copyright (C) 2009 Google Inc. All rights reserved.
9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. 9 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved.
10 * (http://www.torchmobile.com/) 10 * (http://www.torchmobile.com/)
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1142 ensureIsReadyForPaintInvalidation(); 1142 ensureIsReadyForPaintInvalidation();
1143 1143
1144 // If we didn't need paint invalidation then our children don't need as well. 1144 // If we didn't need paint invalidation then our children don't need as well.
1145 // Skip walking down the tree as everything should be fine below us. 1145 // Skip walking down the tree as everything should be fine below us.
1146 if (!shouldCheckForPaintInvalidation(paintInvalidationState)) 1146 if (!shouldCheckForPaintInvalidation(paintInvalidationState))
1147 return; 1147 return;
1148 1148
1149 PaintInvalidationState newPaintInvalidationState(paintInvalidationState, 1149 PaintInvalidationState newPaintInvalidationState(paintInvalidationState,
1150 *this); 1150 *this);
1151 1151
1152 if (mayNeedPaintInvalidationSubtree()) 1152 if (mayNeedPaintInvalidationSubtree()) {
1153 newPaintInvalidationState 1153 newPaintInvalidationState
1154 .setForceSubtreeInvalidationCheckingWithinContainer(); 1154 .setForceSubtreeInvalidationCheckingWithinContainer();
1155 }
1155 1156
1156 PaintInvalidationReason reason = 1157 PaintInvalidationReason reason =
1157 invalidatePaintIfNeeded(newPaintInvalidationState); 1158 invalidatePaintIfNeeded(newPaintInvalidationState);
1158 clearPaintInvalidationFlags();
1159
1160 newPaintInvalidationState.updateForChildren(reason); 1159 newPaintInvalidationState.updateForChildren(reason);
1161 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState); 1160 invalidatePaintOfSubtreesIfNeeded(newPaintInvalidationState);
1161
1162 clearPaintInvalidationFlags();
1162 } 1163 }
1163 1164
1164 DISABLE_CFI_PERF 1165 DISABLE_CFI_PERF
1165 void LayoutObject::invalidatePaintOfSubtreesIfNeeded( 1166 void LayoutObject::invalidatePaintOfSubtreesIfNeeded(
1166 const PaintInvalidationState& childPaintInvalidationState) { 1167 const PaintInvalidationState& childPaintInvalidationState) {
1167 DCHECK(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled()); 1168 DCHECK(!RuntimeEnabledFeatures::slimmingPaintInvalidationEnabled());
1168 1169
1169 for (LayoutObject* child = slowFirstChild(); child; 1170 for (LayoutObject* child = slowFirstChild(); child;
1170 child = child->nextSibling()) { 1171 child = child->nextSibling()) {
1171 // Column spanners are invalidated through their placeholders. See 1172 // Column spanners are invalidated through their placeholders. See
(...skipping 2374 matching lines...) Expand 10 before | Expand all | Expand 10 after
3546 const blink::LayoutObject* root = object1; 3547 const blink::LayoutObject* root = object1;
3547 while (root->parent()) 3548 while (root->parent())
3548 root = root->parent(); 3549 root = root->parent();
3549 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3550 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3550 } else { 3551 } else {
3551 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)"); 3552 WTFLogAlways("%s", "Cannot showLayoutTree. Root is (nil)");
3552 } 3553 }
3553 } 3554 }
3554 3555
3555 #endif 3556 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698