Title: [152212] trunk/Source/WebCore
- Revision
- 152212
- Author
- [email protected]
- Date
- 2013-06-29 13:19:43 -0700 (Sat, 29 Jun 2013)
Log Message
Avoid doing work in RenderBox::outlineBoundsForRepaint() when the repaintContainer is this
https://bugs.webkit.org/show_bug.cgi?id=118215
Reviewed by Tim Horton.
When the RenderGeometryMap code path was added, RenderBox::outlineBoundsForRepaint()
actually got slower if no coordinate mapping was needed. So avoid doing work when
we can, including avoiding the FloatQuad construction.
Speeds up scrolling overflow:scroll areas with large numbers of layer children.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::outlineBoundsForRepaint):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (152211 => 152212)
--- trunk/Source/WebCore/ChangeLog 2013-06-29 15:49:55 UTC (rev 152211)
+++ trunk/Source/WebCore/ChangeLog 2013-06-29 20:19:43 UTC (rev 152212)
@@ -1,3 +1,19 @@
+2013-06-29 Simon Fraser <[email protected]>
+
+ Avoid doing work in RenderBox::outlineBoundsForRepaint() when the repaintContainer is this
+ https://bugs.webkit.org/show_bug.cgi?id=118215
+
+ Reviewed by Tim Horton.
+
+ When the RenderGeometryMap code path was added, RenderBox::outlineBoundsForRepaint()
+ actually got slower if no coordinate mapping was needed. So avoid doing work when
+ we can, including avoiding the FloatQuad construction.
+
+ Speeds up scrolling overflow:scroll areas with large numbers of layer children.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::outlineBoundsForRepaint):
+
2013-06-29 Kangil Han <[email protected]>
Adopt is/toHTMLOptGroupElement for code cleanup
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (152211 => 152212)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2013-06-29 15:49:55 UTC (rev 152211)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2013-06-29 20:19:43 UTC (rev 152212)
@@ -537,14 +537,16 @@
LayoutRect box = borderBoundingBox();
adjustRectForOutlineAndShadow(box);
- FloatQuad containerRelativeQuad;
- if (geometryMap)
- containerRelativeQuad = geometryMap->mapToContainer(box, repaintContainer);
- else
- containerRelativeQuad = localToContainerQuad(FloatRect(box), repaintContainer);
+ if (repaintContainer != this) {
+ FloatQuad containerRelativeQuad;
+ if (geometryMap)
+ containerRelativeQuad = geometryMap->mapToContainer(box, repaintContainer);
+ else
+ containerRelativeQuad = localToContainerQuad(FloatRect(box), repaintContainer);
- box = containerRelativeQuad.enclosingBoundingBox();
-
+ box = containerRelativeQuad.enclosingBoundingBox();
+ }
+
// FIXME: layoutDelta needs to be applied in parts before/after transforms and
// repaint containers. https://bugs.webkit.org/show_bug.cgi?id=23308
box.move(view()->layoutDelta());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes