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

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

Issue 1161913002: Remove outdated FIXME (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « Source/core/layout/LayoutObject.h ('k') | Source/core/layout/LayoutObjectChildList.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 1122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1133 addJsonObjectForRect(value.get(), "rect", rect); 1133 addJsonObjectForRect(value.get(), "rect", rect);
1134 value->setString("invalidation_reason", invalidationReason); 1134 value->setString("invalidation_reason", invalidationReason);
1135 return value; 1135 return value;
1136 } 1136 }
1137 1137
1138 LayoutRect LayoutObject::computePaintInvalidationRect(const LayoutBoxModelObject * paintInvalidationContainer, const PaintInvalidationState* paintInvalidationSta te) const 1138 LayoutRect LayoutObject::computePaintInvalidationRect(const LayoutBoxModelObject * paintInvalidationContainer, const PaintInvalidationState* paintInvalidationSta te) const
1139 { 1139 {
1140 return clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, p aintInvalidationState); 1140 return clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, p aintInvalidationState);
1141 } 1141 }
1142 1142
1143 void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject* pai ntInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidati onReason) const 1143 void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject& pai ntInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidati onReason) const
1144 { 1144 {
1145 ASSERT(gDisablePaintInvalidationStateAsserts || document().lifecycle().state () == DocumentLifecycle::InPaintInvalidation); 1145 ASSERT(gDisablePaintInvalidationStateAsserts || document().lifecycle().state () == DocumentLifecycle::InPaintInvalidation);
1146 1146
1147 if (r.isEmpty()) 1147 if (r.isEmpty())
1148 return; 1148 return;
1149 1149
1150 RELEASE_ASSERT(isRooted()); 1150 RELEASE_ASSERT(isRooted());
1151 1151
1152 // FIXME: Unify "devtools.timeline.invalidationTracking" and "blink.invalida tion". crbug.com/413527. 1152 // FIXME: Unify "devtools.timeline.invalidationTracking" and "blink.invalida tion". crbug.com/413527.
1153 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidati onTracking"), 1153 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidati onTracking"),
1154 "PaintInvalidationTracking", 1154 "PaintInvalidationTracking",
1155 TRACE_EVENT_SCOPE_THREAD, 1155 TRACE_EVENT_SCOPE_THREAD,
1156 "data", InspectorPaintInvalidationTrackingEvent::data(this, paintInvalid ationContainer)); 1156 "data", InspectorPaintInvalidationTrackingEvent::data(this, &paintInvali dationContainer));
Julien - ping for review 2015/05/29 18:19:12 It seems like we should change this function to us
huayong.xu 2015/06/01 02:42:39 Done.
1157 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "LayoutObject: :invalidatePaintUsingContainer()", 1157 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "LayoutObject: :invalidatePaintUsingContainer()",
1158 "object", this->debugName().ascii(), 1158 "object", this->debugName().ascii(),
1159 "info", jsonObjectForPaintInvalidationInfo(r, paintInvalidationReasonToS tring(invalidationReason))); 1159 "info", jsonObjectForPaintInvalidationInfo(r, paintInvalidationReasonToS tring(invalidationReason)));
1160 1160
1161 if (paintInvalidationContainer->isLayoutView()) { 1161 if (paintInvalidationContainer.isLayoutView()) {
1162 toLayoutView(paintInvalidationContainer)->invalidatePaintForRectangle(r, invalidationReason); 1162 toLayoutView(&paintInvalidationContainer)->invalidatePaintForRectangle(r , invalidationReason);
1163 return; 1163 return;
1164 } 1164 }
1165 1165
1166 if (paintInvalidationContainer->view()->usesCompositing()) { 1166 if (paintInvalidationContainer.view()->usesCompositing()) {
1167 ASSERT(paintInvalidationContainer->isPaintInvalidationContainer()); 1167 ASSERT(paintInvalidationContainer.isPaintInvalidationContainer());
1168 paintInvalidationContainer->setBackingNeedsPaintInvalidationInRect(r, in validationReason); 1168 paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(r, inv alidationReason);
1169 } 1169 }
1170 } 1170 }
1171 1171
1172 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClientWrapper& d isplayItemClient) const 1172 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClientWrapper& d isplayItemClient) const
1173 { 1173 {
1174 if (!RuntimeEnabledFeatures::slimmingPaintEnabled()) 1174 if (!RuntimeEnabledFeatures::slimmingPaintEnabled())
1175 return; 1175 return;
1176 1176
1177 // Not using enclosingCompositedContainer() directly because this object may be in an orphaned subtree. 1177 // Not using enclosingCompositedContainer() directly because this object may be in an orphaned subtree.
1178 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) { 1178 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1223 RELEASE_ASSERT(isRooted()); 1223 RELEASE_ASSERT(isRooted());
1224 1224
1225 if (r.isEmpty()) 1225 if (r.isEmpty())
1226 return nullptr; 1226 return nullptr;
1227 1227
1228 if (view()->document().printing()) 1228 if (view()->document().printing())
1229 return nullptr; // Don't invalidate paints if we're printing. 1229 return nullptr; // Don't invalidate paints if we're printing.
1230 1230
1231 LayoutRect dirtyRect(r); 1231 LayoutRect dirtyRect(r);
1232 1232
1233 const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintIn validation(); 1233 const LayoutBoxModelObject& paintInvalidationContainer = *containerForPaintI nvalidation();
Julien - ping for review 2015/05/29 18:19:12 I think we should still check that the returned po
huayong.xu 2015/06/01 02:42:39 Done.
1234 DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, paintInvalidat ionContainer, dirtyRect); 1234 DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, &paintInvalida tionContainer, dirtyRect);
1235 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, PaintIn validationRectangle); 1235 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, PaintIn validationRectangle);
1236 return paintInvalidationContainer; 1236 return &paintInvalidationContainer;
1237 } 1237 }
1238 1238
1239 void LayoutObject::invalidatePaintRectangle(const LayoutRect& r) const 1239 void LayoutObject::invalidatePaintRectangle(const LayoutRect& r) const
1240 { 1240 {
1241 if (const LayoutBoxModelObject* paintInvalidationContainer = invalidatePaint RectangleInternal(r)) { 1241 if (const LayoutBoxModelObject* paintInvalidationContainer = invalidatePaint RectangleInternal(r)) {
1242 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) 1242 if (RuntimeEnabledFeatures::slimmingPaintEnabled())
1243 invalidateDisplayItemClients(*paintInvalidationContainer); 1243 invalidateDisplayItemClients(*paintInvalidationContainer);
1244 } 1244 }
1245 } 1245 }
1246 1246
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1422 1422
1423 return PaintInvalidationIncremental; 1423 return PaintInvalidationIncremental;
1424 } 1424 }
1425 1425
1426 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationBacking) 1426 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationBacking)
1427 { 1427 {
1428 ASSERT(oldBounds.location() == newBounds.location()); 1428 ASSERT(oldBounds.location() == newBounds.location());
1429 1429
1430 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX(); 1430 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX();
1431 if (deltaRight > 0) 1431 if (deltaRight > 0)
1432 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ol dBounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidatio nIncremental); 1432 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(old Bounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidation Incremental);
1433 else if (deltaRight < 0) 1433 else if (deltaRight < 0)
1434 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ne wBounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidati onIncremental); 1434 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(new Bounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidatio nIncremental);
1435 1435
1436 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY(); 1436 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY();
1437 if (deltaBottom > 0) 1437 if (deltaBottom > 0)
1438 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ne wBounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidatio nIncremental); 1438 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(new Bounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidation Incremental);
1439 else if (deltaBottom < 0) 1439 else if (deltaBottom < 0)
1440 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ol dBounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidati onIncremental); 1440 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(old Bounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidatio nIncremental);
1441 } 1441 }
1442 1442
1443 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol dBounds, const LayoutRect& newBounds) 1443 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol dBounds, const LayoutRect& newBounds)
1444 { 1444 {
1445 // Otherwise do full paint invalidation. 1445 // Otherwise do full paint invalidation.
1446 invalidatePaintUsingContainer(&paintInvalidationContainer, oldBounds, invali dationReason); 1446 invalidatePaintUsingContainer(paintInvalidationContainer, oldBounds, invalid ationReason);
1447 if (newBounds != oldBounds) 1447 if (newBounds != oldBounds)
1448 invalidatePaintUsingContainer(&paintInvalidationContainer, newBounds, in validationReason); 1448 invalidatePaintUsingContainer(paintInvalidationContainer, newBounds, inv alidationReason);
1449 } 1449 }
1450 1450
1451 void LayoutObject::invalidatePaintForOverflow() 1451 void LayoutObject::invalidatePaintForOverflow()
1452 { 1452 {
1453 } 1453 }
1454 1454
1455 void LayoutObject::invalidatePaintForOverflowIfNeeded() 1455 void LayoutObject::invalidatePaintForOverflowIfNeeded()
1456 { 1456 {
1457 if (shouldInvalidateOverflowForPaint()) 1457 if (shouldInvalidateOverflowForPaint())
1458 invalidatePaintForOverflow(); 1458 invalidatePaintForOverflow();
(...skipping 1787 matching lines...) Expand 10 before | Expand all | Expand 10 after
3246 } 3246 }
3247 3247
3248 DisablePaintInvalidationStateAsserts::DisablePaintInvalidationStateAsserts() 3248 DisablePaintInvalidationStateAsserts::DisablePaintInvalidationStateAsserts()
3249 : m_disabler(gDisablePaintInvalidationStateAsserts, true) 3249 : m_disabler(gDisablePaintInvalidationStateAsserts, true)
3250 { 3250 {
3251 } 3251 }
3252 3252
3253 // Since we're only painting non-composited layers, we know that they all share the same paintInvalidationContainer. 3253 // Since we're only painting non-composited layers, we know that they all share the same paintInvalidationContainer.
3254 void LayoutObject::invalidatePaintIncludingNonCompositingDescendants() 3254 void LayoutObject::invalidatePaintIncludingNonCompositingDescendants()
3255 { 3255 {
3256 invalidatePaintIncludingNonCompositingDescendantsInternal(containerForPaintI nvalidation()); 3256 invalidatePaintIncludingNonCompositingDescendantsInternal(*containerForPaint Invalidation());
3257 } 3257 }
3258 3258
3259 void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(con st LayoutBoxModelObject* paintInvalidationContainer) 3259 void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(con st LayoutBoxModelObject& paintInvalidationContainer)
3260 { 3260 {
3261 invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInval idationRect(), PaintInvalidationLayer); 3261 invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInval idationRect(), PaintInvalidationLayer);
3262 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) 3262 if (RuntimeEnabledFeatures::slimmingPaintEnabled())
3263 invalidateDisplayItemClients(*paintInvalidationContainer); 3263 invalidateDisplayItemClients(paintInvalidationContainer);
3264 3264
3265 for (LayoutObject* child = slowFirstChild(); child; child = child->nextSibli ng()) { 3265 for (LayoutObject* child = slowFirstChild(); child; child = child->nextSibli ng()) {
3266 if (!child->isPaintInvalidationContainer()) 3266 if (!child->isPaintInvalidationContainer())
3267 child->invalidatePaintIncludingNonCompositingDescendantsInternal(pai ntInvalidationContainer); 3267 child->invalidatePaintIncludingNonCompositingDescendantsInternal(pai ntInvalidationContainer);
3268 } 3268 }
3269 } 3269 }
3270 3270
3271 3271
3272 } // namespace blink 3272 } // namespace blink
3273 3273
(...skipping 26 matching lines...) Expand all
3300 const blink::LayoutObject* root = object1; 3300 const blink::LayoutObject* root = object1;
3301 while (root->parent()) 3301 while (root->parent())
3302 root = root->parent(); 3302 root = root->parent();
3303 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3303 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3304 } else { 3304 } else {
3305 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3305 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3306 } 3306 }
3307 } 3307 }
3308 3308
3309 #endif 3309 #endif
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutObject.h ('k') | Source/core/layout/LayoutObjectChildList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698