| OLD | NEW |
| 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 1027 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1038 void LayoutObject::paint(const PaintInfo&, const LayoutPoint&) | 1038 void LayoutObject::paint(const PaintInfo&, const LayoutPoint&) |
| 1039 { | 1039 { |
| 1040 } | 1040 } |
| 1041 | 1041 |
| 1042 const LayoutBoxModelObject* LayoutObject::containerForPaintInvalidation() const | 1042 const LayoutBoxModelObject* LayoutObject::containerForPaintInvalidation() const |
| 1043 { | 1043 { |
| 1044 RELEASE_ASSERT(isRooted()); | 1044 RELEASE_ASSERT(isRooted()); |
| 1045 return adjustCompositedContainerForSpecialAncestors(enclosingCompositedConta
iner()); | 1045 return adjustCompositedContainerForSpecialAncestors(enclosingCompositedConta
iner()); |
| 1046 } | 1046 } |
| 1047 | 1047 |
| 1048 const LayoutBoxModelObject& LayoutObject::containerForPaintInvalidationOnRootedT
ree() const |
| 1049 { |
| 1050 RELEASE_ASSERT(isRooted()); |
| 1051 |
| 1052 const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintIn
validation(); |
| 1053 ASSERT(paintInvalidationContainer); |
| 1054 |
| 1055 return *paintInvalidationContainer; |
| 1056 } |
| 1057 |
| 1048 const LayoutBoxModelObject* LayoutObject::enclosingCompositedContainer() const | 1058 const LayoutBoxModelObject* LayoutObject::enclosingCompositedContainer() const |
| 1049 { | 1059 { |
| 1050 LayoutBoxModelObject* container = 0; | 1060 LayoutBoxModelObject* container = 0; |
| 1051 // FIXME: CompositingState is not necessarily up to date for many callers of
this function. | 1061 // FIXME: CompositingState is not necessarily up to date for many callers of
this function. |
| 1052 DisableCompositingQueryAsserts disabler; | 1062 DisableCompositingQueryAsserts disabler; |
| 1053 | 1063 |
| 1054 if (DeprecatedPaintLayer* compositingLayer = enclosingLayer()->enclosingLaye
rForPaintInvalidationCrossingFrameBoundaries()) | 1064 if (DeprecatedPaintLayer* compositingLayer = enclosingLayer()->enclosingLaye
rForPaintInvalidationCrossingFrameBoundaries()) |
| 1055 container = compositingLayer->layoutObject(); | 1065 container = compositingLayer->layoutObject(); |
| 1056 return container; | 1066 return container; |
| 1057 } | 1067 } |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1133 addJsonObjectForRect(value.get(), "rect", rect); | 1143 addJsonObjectForRect(value.get(), "rect", rect); |
| 1134 value->setString("invalidation_reason", invalidationReason); | 1144 value->setString("invalidation_reason", invalidationReason); |
| 1135 return value; | 1145 return value; |
| 1136 } | 1146 } |
| 1137 | 1147 |
| 1138 LayoutRect LayoutObject::computePaintInvalidationRect(const LayoutBoxModelObject
* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationSta
te) const | 1148 LayoutRect LayoutObject::computePaintInvalidationRect(const LayoutBoxModelObject
* paintInvalidationContainer, const PaintInvalidationState* paintInvalidationSta
te) const |
| 1139 { | 1149 { |
| 1140 return clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, p
aintInvalidationState); | 1150 return clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, p
aintInvalidationState); |
| 1141 } | 1151 } |
| 1142 | 1152 |
| 1143 void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject* pai
ntInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidati
onReason) const | 1153 void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject& pai
ntInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidati
onReason) const |
| 1144 { | 1154 { |
| 1145 ASSERT(gDisablePaintInvalidationStateAsserts || document().lifecycle().state
() == DocumentLifecycle::InPaintInvalidation); | 1155 ASSERT(gDisablePaintInvalidationStateAsserts || document().lifecycle().state
() == DocumentLifecycle::InPaintInvalidation); |
| 1146 | 1156 |
| 1147 if (r.isEmpty()) | 1157 if (r.isEmpty()) |
| 1148 return; | 1158 return; |
| 1149 | 1159 |
| 1150 RELEASE_ASSERT(isRooted()); | 1160 RELEASE_ASSERT(isRooted()); |
| 1151 | 1161 |
| 1152 // FIXME: Unify "devtools.timeline.invalidationTracking" and "blink.invalida
tion". crbug.com/413527. | 1162 // FIXME: Unify "devtools.timeline.invalidationTracking" and "blink.invalida
tion". crbug.com/413527. |
| 1153 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidati
onTracking"), | 1163 TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline.invalidati
onTracking"), |
| 1154 "PaintInvalidationTracking", | 1164 "PaintInvalidationTracking", |
| 1155 TRACE_EVENT_SCOPE_THREAD, | 1165 TRACE_EVENT_SCOPE_THREAD, |
| 1156 "data", InspectorPaintInvalidationTrackingEvent::data(this, paintInvalid
ationContainer)); | 1166 "data", InspectorPaintInvalidationTrackingEvent::data(this, paintInvalid
ationContainer)); |
| 1157 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "LayoutObject:
:invalidatePaintUsingContainer()", | 1167 TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("blink.invalidation"), "LayoutObject:
:invalidatePaintUsingContainer()", |
| 1158 "object", this->debugName().ascii(), | 1168 "object", this->debugName().ascii(), |
| 1159 "info", jsonObjectForPaintInvalidationInfo(r, paintInvalidationReasonToS
tring(invalidationReason))); | 1169 "info", jsonObjectForPaintInvalidationInfo(r, paintInvalidationReasonToS
tring(invalidationReason))); |
| 1160 | 1170 |
| 1161 if (paintInvalidationContainer->isLayoutView()) { | 1171 if (paintInvalidationContainer.isLayoutView()) { |
| 1162 toLayoutView(paintInvalidationContainer)->invalidatePaintForRectangle(r,
invalidationReason); | 1172 toLayoutView(&paintInvalidationContainer)->invalidatePaintForRectangle(r
, invalidationReason); |
| 1163 return; | 1173 return; |
| 1164 } | 1174 } |
| 1165 | 1175 |
| 1166 if (paintInvalidationContainer->view()->usesCompositing()) { | 1176 if (paintInvalidationContainer.view()->usesCompositing()) { |
| 1167 ASSERT(paintInvalidationContainer->isPaintInvalidationContainer()); | 1177 ASSERT(paintInvalidationContainer.isPaintInvalidationContainer()); |
| 1168 paintInvalidationContainer->setBackingNeedsPaintInvalidationInRect(r, in
validationReason); | 1178 paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(r, inv
alidationReason); |
| 1169 } | 1179 } |
| 1170 } | 1180 } |
| 1171 | 1181 |
| 1172 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClientWrapper& d
isplayItemClient) const | 1182 void LayoutObject::invalidateDisplayItemClient(const DisplayItemClientWrapper& d
isplayItemClient) const |
| 1173 { | 1183 { |
| 1174 if (!RuntimeEnabledFeatures::slimmingPaintEnabled()) | 1184 if (!RuntimeEnabledFeatures::slimmingPaintEnabled()) |
| 1175 return; | 1185 return; |
| 1176 | 1186 |
| 1177 // Not using enclosingCompositedContainer() directly because this object may
be in an orphaned subtree. | 1187 // Not using enclosingCompositedContainer() directly because this object may
be in an orphaned subtree. |
| 1178 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) { | 1188 if (const DeprecatedPaintLayer* enclosingLayer = this->enclosingLayer()) { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 RELEASE_ASSERT(isRooted()); | 1233 RELEASE_ASSERT(isRooted()); |
| 1224 | 1234 |
| 1225 if (r.isEmpty()) | 1235 if (r.isEmpty()) |
| 1226 return nullptr; | 1236 return nullptr; |
| 1227 | 1237 |
| 1228 if (view()->document().printing()) | 1238 if (view()->document().printing()) |
| 1229 return nullptr; // Don't invalidate paints if we're printing. | 1239 return nullptr; // Don't invalidate paints if we're printing. |
| 1230 | 1240 |
| 1231 LayoutRect dirtyRect(r); | 1241 LayoutRect dirtyRect(r); |
| 1232 | 1242 |
| 1233 const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintIn
validation(); | 1243 const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintIn
validationOnRootedTree(); |
| 1234 DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, paintInvalidat
ionContainer, dirtyRect); | 1244 DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, &paintInvalida
tionContainer, dirtyRect); |
| 1235 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, PaintIn
validationRectangle); | 1245 invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, PaintIn
validationRectangle); |
| 1236 return paintInvalidationContainer; | 1246 return &paintInvalidationContainer; |
| 1237 } | 1247 } |
| 1238 | 1248 |
| 1239 void LayoutObject::invalidatePaintRectangle(const LayoutRect& r) const | 1249 void LayoutObject::invalidatePaintRectangle(const LayoutRect& r) const |
| 1240 { | 1250 { |
| 1241 if (const LayoutBoxModelObject* paintInvalidationContainer = invalidatePaint
RectangleInternal(r)) { | 1251 if (const LayoutBoxModelObject* paintInvalidationContainer = invalidatePaint
RectangleInternal(r)) { |
| 1242 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) | 1252 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) |
| 1243 invalidateDisplayItemClients(*paintInvalidationContainer); | 1253 invalidateDisplayItemClients(*paintInvalidationContainer); |
| 1244 } | 1254 } |
| 1245 } | 1255 } |
| 1246 | 1256 |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1422 | 1432 |
| 1423 return PaintInvalidationIncremental; | 1433 return PaintInvalidationIncremental; |
| 1424 } | 1434 } |
| 1425 | 1435 |
| 1426 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain
tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds
, const LayoutPoint& positionFromPaintInvalidationBacking) | 1436 void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain
tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds
, const LayoutPoint& positionFromPaintInvalidationBacking) |
| 1427 { | 1437 { |
| 1428 ASSERT(oldBounds.location() == newBounds.location()); | 1438 ASSERT(oldBounds.location() == newBounds.location()); |
| 1429 | 1439 |
| 1430 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX(); | 1440 LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX(); |
| 1431 if (deltaRight > 0) | 1441 if (deltaRight > 0) |
| 1432 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ol
dBounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidatio
nIncremental); | 1442 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(old
Bounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidation
Incremental); |
| 1433 else if (deltaRight < 0) | 1443 else if (deltaRight < 0) |
| 1434 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ne
wBounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidati
onIncremental); | 1444 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(new
Bounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidatio
nIncremental); |
| 1435 | 1445 |
| 1436 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY(); | 1446 LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY(); |
| 1437 if (deltaBottom > 0) | 1447 if (deltaBottom > 0) |
| 1438 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ne
wBounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidatio
nIncremental); | 1448 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(new
Bounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidation
Incremental); |
| 1439 else if (deltaBottom < 0) | 1449 else if (deltaBottom < 0) |
| 1440 invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(ol
dBounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidati
onIncremental); | 1450 invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(old
Bounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidatio
nIncremental); |
| 1441 } | 1451 } |
| 1442 | 1452 |
| 1443 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid
ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol
dBounds, const LayoutRect& newBounds) | 1453 void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalid
ationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& ol
dBounds, const LayoutRect& newBounds) |
| 1444 { | 1454 { |
| 1445 // Otherwise do full paint invalidation. | 1455 // Otherwise do full paint invalidation. |
| 1446 invalidatePaintUsingContainer(&paintInvalidationContainer, oldBounds, invali
dationReason); | 1456 invalidatePaintUsingContainer(paintInvalidationContainer, oldBounds, invalid
ationReason); |
| 1447 if (newBounds != oldBounds) | 1457 if (newBounds != oldBounds) |
| 1448 invalidatePaintUsingContainer(&paintInvalidationContainer, newBounds, in
validationReason); | 1458 invalidatePaintUsingContainer(paintInvalidationContainer, newBounds, inv
alidationReason); |
| 1449 } | 1459 } |
| 1450 | 1460 |
| 1451 void LayoutObject::invalidatePaintForOverflow() | 1461 void LayoutObject::invalidatePaintForOverflow() |
| 1452 { | 1462 { |
| 1453 } | 1463 } |
| 1454 | 1464 |
| 1455 void LayoutObject::invalidatePaintForOverflowIfNeeded() | 1465 void LayoutObject::invalidatePaintForOverflowIfNeeded() |
| 1456 { | 1466 { |
| 1457 if (shouldInvalidateOverflowForPaint()) | 1467 if (shouldInvalidateOverflowForPaint()) |
| 1458 invalidatePaintForOverflow(); | 1468 invalidatePaintForOverflow(); |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2148 { | 2158 { |
| 2149 TransformState transformState(TransformState::ApplyTransformDirection, local
Point); | 2159 TransformState transformState(TransformState::ApplyTransformDirection, local
Point); |
| 2150 mapLocalToContainer(paintInvalidationContainer, transformState, mode | Apply
ContainerFlip | UseTransforms, wasFixed, paintInvalidationState); | 2160 mapLocalToContainer(paintInvalidationContainer, transformState, mode | Apply
ContainerFlip | UseTransforms, wasFixed, paintInvalidationState); |
| 2151 transformState.flatten(); | 2161 transformState.flatten(); |
| 2152 | 2162 |
| 2153 return transformState.lastPlanarPoint(); | 2163 return transformState.lastPlanarPoint(); |
| 2154 } | 2164 } |
| 2155 | 2165 |
| 2156 FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& loca
lPoint, DeprecatedPaintLayer** backingLayer) | 2166 FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& loca
lPoint, DeprecatedPaintLayer** backingLayer) |
| 2157 { | 2167 { |
| 2158 const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintIn
validation(); | 2168 const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintIn
validationOnRootedTree(); |
| 2159 ASSERT(paintInvalidationContainer); | 2169 ASSERT(paintInvalidationContainer.layer()); |
| 2160 ASSERT(paintInvalidationContainer->layer()); | |
| 2161 | 2170 |
| 2162 if (backingLayer) | 2171 if (backingLayer) |
| 2163 *backingLayer = paintInvalidationContainer->layer(); | 2172 *backingLayer = paintInvalidationContainer.layer(); |
| 2164 FloatPoint containerPoint = localToContainerPoint(FloatPoint(localPoint), pa
intInvalidationContainer, TraverseDocumentBoundaries); | 2173 FloatPoint containerPoint = localToContainerPoint(FloatPoint(localPoint), &p
aintInvalidationContainer, TraverseDocumentBoundaries); |
| 2165 | 2174 |
| 2166 // A layoutObject can have no invalidation backing if it is from a detached
frame, | 2175 // A layoutObject can have no invalidation backing if it is from a detached
frame, |
| 2167 // or when forced compositing is disabled. | 2176 // or when forced compositing is disabled. |
| 2168 if (paintInvalidationContainer->layer()->compositingState() == NotComposited
) | 2177 if (paintInvalidationContainer.layer()->compositingState() == NotComposited) |
| 2169 return containerPoint; | 2178 return containerPoint; |
| 2170 | 2179 |
| 2171 DeprecatedPaintLayer::mapPointToPaintBackingCoordinates(paintInvalidationCon
tainer, containerPoint); | 2180 DeprecatedPaintLayer::mapPointToPaintBackingCoordinates(&paintInvalidationCo
ntainer, containerPoint); |
| 2172 return containerPoint; | 2181 return containerPoint; |
| 2173 } | 2182 } |
| 2174 | 2183 |
| 2175 LayoutSize LayoutObject::offsetFromContainer(const LayoutObject* o, const Layout
Point& point, bool* offsetDependsOnPoint) const | 2184 LayoutSize LayoutObject::offsetFromContainer(const LayoutObject* o, const Layout
Point& point, bool* offsetDependsOnPoint) const |
| 2176 { | 2185 { |
| 2177 ASSERT(o == container()); | 2186 ASSERT(o == container()); |
| 2178 | 2187 |
| 2179 LayoutSize offset = o->columnOffset(point); | 2188 LayoutSize offset = o->columnOffset(point); |
| 2180 | 2189 |
| 2181 if (o->hasOverflowClip()) | 2190 if (o->hasOverflowClip()) |
| (...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3246 } | 3255 } |
| 3247 | 3256 |
| 3248 DisablePaintInvalidationStateAsserts::DisablePaintInvalidationStateAsserts() | 3257 DisablePaintInvalidationStateAsserts::DisablePaintInvalidationStateAsserts() |
| 3249 : m_disabler(gDisablePaintInvalidationStateAsserts, true) | 3258 : m_disabler(gDisablePaintInvalidationStateAsserts, true) |
| 3250 { | 3259 { |
| 3251 } | 3260 } |
| 3252 | 3261 |
| 3253 // Since we're only painting non-composited layers, we know that they all share
the same paintInvalidationContainer. | 3262 // Since we're only painting non-composited layers, we know that they all share
the same paintInvalidationContainer. |
| 3254 void LayoutObject::invalidatePaintIncludingNonCompositingDescendants() | 3263 void LayoutObject::invalidatePaintIncludingNonCompositingDescendants() |
| 3255 { | 3264 { |
| 3256 invalidatePaintIncludingNonCompositingDescendantsInternal(containerForPaintI
nvalidation()); | 3265 invalidatePaintIncludingNonCompositingDescendantsInternal(containerForPaintI
nvalidationOnRootedTree()); |
| 3257 } | 3266 } |
| 3258 | 3267 |
| 3259 void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(con
st LayoutBoxModelObject* paintInvalidationContainer) | 3268 void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(con
st LayoutBoxModelObject& paintInvalidationContainer) |
| 3260 { | 3269 { |
| 3261 invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInval
idationRect(), PaintInvalidationLayer); | 3270 invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInval
idationRect(), PaintInvalidationLayer); |
| 3262 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) | 3271 if (RuntimeEnabledFeatures::slimmingPaintEnabled()) |
| 3263 invalidateDisplayItemClients(*paintInvalidationContainer); | 3272 invalidateDisplayItemClients(paintInvalidationContainer); |
| 3264 | 3273 |
| 3265 for (LayoutObject* child = slowFirstChild(); child; child = child->nextSibli
ng()) { | 3274 for (LayoutObject* child = slowFirstChild(); child; child = child->nextSibli
ng()) { |
| 3266 if (!child->isPaintInvalidationContainer()) | 3275 if (!child->isPaintInvalidationContainer()) |
| 3267 child->invalidatePaintIncludingNonCompositingDescendantsInternal(pai
ntInvalidationContainer); | 3276 child->invalidatePaintIncludingNonCompositingDescendantsInternal(pai
ntInvalidationContainer); |
| 3268 } | 3277 } |
| 3269 } | 3278 } |
| 3270 | 3279 |
| 3271 | 3280 |
| 3272 } // namespace blink | 3281 } // namespace blink |
| 3273 | 3282 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 3300 const blink::LayoutObject* root = object1; | 3309 const blink::LayoutObject* root = object1; |
| 3301 while (root->parent()) | 3310 while (root->parent()) |
| 3302 root = root->parent(); | 3311 root = root->parent(); |
| 3303 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3312 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
| 3304 } else { | 3313 } else { |
| 3305 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); | 3314 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); |
| 3306 } | 3315 } |
| 3307 } | 3316 } |
| 3308 | 3317 |
| 3309 #endif | 3318 #endif |
| OLD | NEW |