Index: third_party/WebKit/Source/core/layout/LayoutObject.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
index efec9b151170f19ac7d187b02e52ad6ee7cae7c5..e9879679cd23eae162290af5ac119cc29ba81074 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp |
@@ -2235,6 +2235,22 @@ FloatPoint LayoutObject::localToContainerPoint(const FloatPoint& localPoint, con |
return transformState.lastPlanarPoint(); |
} |
+void LayoutObject::localToContainerRects(Vector<LayoutRect>& rects, const LayoutBoxModelObject* paintInvalidationContainer, const LayoutPoint& preOffset, const LayoutPoint& postOffset) const |
+{ |
+ for (size_t i = 0; i < rects.size(); ++i) { |
+ LayoutRect& rect = rects[i]; |
+ rect.moveBy(preOffset); |
+ FloatQuad containerQuad = localToContainerQuad(FloatQuad(FloatRect(rect)), paintInvalidationContainer); |
+ LayoutRect containerRect = LayoutRect(containerQuad.boundingBox()); |
+ if (containerRect.isEmpty()) { |
+ rects.remove(i--); |
+ continue; |
+ } |
+ containerRect.moveBy(postOffset); |
+ rects[i] = containerRect; |
+ } |
+} |
+ |
FloatPoint LayoutObject::localToInvalidationBackingPoint(const LayoutPoint& localPoint, PaintLayer** backingLayer) |
{ |
const LayoutBoxModelObject& paintInvalidationContainer = containerForPaintInvalidationOnRootedTree(); |