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

Unified Diff: Source/core/layout/LayoutObject.cpp

Issue 1161913002: Remove outdated FIXME (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: add comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/layout/LayoutObject.h ('k') | Source/core/layout/LayoutObjectChildList.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/layout/LayoutObject.cpp
diff --git a/Source/core/layout/LayoutObject.cpp b/Source/core/layout/LayoutObject.cpp
index f668620b095015648d489dd76352b72f812f59c8..5df40d550fb84e656069cae0ef3a2dcd395b25e3 100644
--- a/Source/core/layout/LayoutObject.cpp
+++ b/Source/core/layout/LayoutObject.cpp
@@ -1045,6 +1045,16 @@ const LayoutBoxModelObject* LayoutObject::containerForPaintInvalidation() const
return adjustCompositedContainerForSpecialAncestors(enclosingCompositedContainer());
}
+const LayoutBoxModelObject& LayoutObject::containerForPaintInvalidationOnRootedTree() const
+{
+ RELEASE_ASSERT(isRooted());
+
+ const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintInvalidation();
+ ASSERT(paintInvalidationContainer);
+
+ return *paintInvalidationContainer;
+}
+
const LayoutBoxModelObject* LayoutObject::enclosingCompositedContainer() const
{
LayoutBoxModelObject* container = 0;
@@ -1140,7 +1150,7 @@ LayoutRect LayoutObject::computePaintInvalidationRect(const LayoutBoxModelObject
return clippedOverflowRectForPaintInvalidation(paintInvalidationContainer, paintInvalidationState);
}
-void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject* paintInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidationReason) const
+void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject& paintInvalidationContainer, const LayoutRect& r, PaintInvalidationReason invalidationReason) const
{
ASSERT(gDisablePaintInvalidationStateAsserts || document().lifecycle().state() == DocumentLifecycle::InPaintInvalidation);
@@ -1158,14 +1168,14 @@ void LayoutObject::invalidatePaintUsingContainer(const LayoutBoxModelObject* pai
"object", this->debugName().ascii(),
"info", jsonObjectForPaintInvalidationInfo(r, paintInvalidationReasonToString(invalidationReason)));
- if (paintInvalidationContainer->isLayoutView()) {
- toLayoutView(paintInvalidationContainer)->invalidatePaintForRectangle(r, invalidationReason);
+ if (paintInvalidationContainer.isLayoutView()) {
+ toLayoutView(&paintInvalidationContainer)->invalidatePaintForRectangle(r, invalidationReason);
return;
}
- if (paintInvalidationContainer->view()->usesCompositing()) {
- ASSERT(paintInvalidationContainer->isPaintInvalidationContainer());
- paintInvalidationContainer->setBackingNeedsPaintInvalidationInRect(r, invalidationReason);
+ if (paintInvalidationContainer.view()->usesCompositing()) {
+ ASSERT(paintInvalidationContainer.isPaintInvalidationContainer());
+ paintInvalidationContainer.setBackingNeedsPaintInvalidationInRect(r, invalidationReason);
}
}
@@ -1230,10 +1240,10 @@ const LayoutBoxModelObject* LayoutObject::invalidatePaintRectangleInternal(const
LayoutRect dirtyRect(r);
- const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintInvalidation();
- DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, paintInvalidationContainer, dirtyRect);
+ const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintInvalidationOnRootedTree();
+ DeprecatedPaintLayer::mapRectToPaintInvalidationBacking(this, &paintInvalidationContainer, dirtyRect);
invalidatePaintUsingContainer(paintInvalidationContainer, dirtyRect, PaintInvalidationRectangle);
- return paintInvalidationContainer;
+ return &paintInvalidationContainer;
}
void LayoutObject::invalidatePaintRectangle(const LayoutRect& r) const
@@ -1429,23 +1439,23 @@ void LayoutObject::incrementallyInvalidatePaint(const LayoutBoxModelObject& pain
LayoutUnit deltaRight = newBounds.maxX() - oldBounds.maxX();
if (deltaRight > 0)
- invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(oldBounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidationIncremental);
+ invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(oldBounds.maxX(), newBounds.y(), deltaRight, newBounds.height()), PaintInvalidationIncremental);
else if (deltaRight < 0)
- invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(newBounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidationIncremental);
+ invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(newBounds.maxX(), oldBounds.y(), -deltaRight, oldBounds.height()), PaintInvalidationIncremental);
LayoutUnit deltaBottom = newBounds.maxY() - oldBounds.maxY();
if (deltaBottom > 0)
- invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(newBounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidationIncremental);
+ invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(newBounds.x(), oldBounds.maxY(), newBounds.width(), deltaBottom), PaintInvalidationIncremental);
else if (deltaBottom < 0)
- invalidatePaintUsingContainer(&paintInvalidationContainer, LayoutRect(oldBounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidationIncremental);
+ invalidatePaintUsingContainer(paintInvalidationContainer, LayoutRect(oldBounds.x(), newBounds.maxY(), oldBounds.width(), -deltaBottom), PaintInvalidationIncremental);
}
void LayoutObject::fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalidationContainer, PaintInvalidationReason invalidationReason, const LayoutRect& oldBounds, const LayoutRect& newBounds)
{
// Otherwise do full paint invalidation.
- invalidatePaintUsingContainer(&paintInvalidationContainer, oldBounds, invalidationReason);
+ invalidatePaintUsingContainer(paintInvalidationContainer, oldBounds, invalidationReason);
if (newBounds != oldBounds)
- invalidatePaintUsingContainer(&paintInvalidationContainer, newBounds, invalidationReason);
+ invalidatePaintUsingContainer(paintInvalidationContainer, newBounds, invalidationReason);
}
void LayoutObject::invalidatePaintForOverflow()
@@ -2155,20 +2165,19 @@ FloatPoint LayoutObject::localToContainerPoint(const FloatPoint& localPoint, con
FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& localPoint, DeprecatedPaintLayer** backingLayer)
{
- const LayoutBoxModelObject* paintInvalidationContainer = containerForPaintInvalidation();
- ASSERT(paintInvalidationContainer);
- ASSERT(paintInvalidationContainer->layer());
+ const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintInvalidationOnRootedTree();
+ ASSERT(paintInvalidationContainer.layer());
if (backingLayer)
- *backingLayer = paintInvalidationContainer->layer();
- FloatPoint containerPoint = localToContainerPoint(FloatPoint(localPoint), paintInvalidationContainer, TraverseDocumentBoundaries);
+ *backingLayer = paintInvalidationContainer.layer();
+ FloatPoint containerPoint = localToContainerPoint(FloatPoint(localPoint), &paintInvalidationContainer, TraverseDocumentBoundaries);
// A layoutObject can have no invalidation backing if it is from a detached frame,
// or when forced compositing is disabled.
- if (paintInvalidationContainer->layer()->compositingState() == NotComposited)
+ if (paintInvalidationContainer.layer()->compositingState() == NotComposited)
return containerPoint;
- DeprecatedPaintLayer::mapPointToPaintBackingCoordinates(paintInvalidationContainer, containerPoint);
+ DeprecatedPaintLayer::mapPointToPaintBackingCoordinates(&paintInvalidationContainer, containerPoint);
return containerPoint;
}
@@ -3253,14 +3262,14 @@ DisablePaintInvalidationStateAsserts::DisablePaintInvalidationStateAsserts()
// Since we're only painting non-composited layers, we know that they all share the same paintInvalidationContainer.
void LayoutObject::invalidatePaintIncludingNonCompositingDescendants()
{
- invalidatePaintIncludingNonCompositingDescendantsInternal(containerForPaintInvalidation());
+ invalidatePaintIncludingNonCompositingDescendantsInternal(containerForPaintInvalidationOnRootedTree());
}
-void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutBoxModelObject* paintInvalidationContainer)
+void LayoutObject::invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutBoxModelObject& paintInvalidationContainer)
{
invalidatePaintUsingContainer(paintInvalidationContainer, previousPaintInvalidationRect(), PaintInvalidationLayer);
if (RuntimeEnabledFeatures::slimmingPaintEnabled())
- invalidateDisplayItemClients(*paintInvalidationContainer);
+ invalidateDisplayItemClients(paintInvalidationContainer);
for (LayoutObject* child = slowFirstChild(); child; child = child->nextSibling()) {
if (!child->isPaintInvalidationContainer())
« 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