Title: [107959] trunk
Revision
107959
Author
commit-qu...@webkit.org
Date
2012-02-16 11:15:40 -0800 (Thu, 16 Feb 2012)

Log Message

[CSS Regions] Repaint issues when changing innerHTML of content
https://bugs.webkit.org/show_bug.cgi?id=78787

Patch by Raul Hudea <rhu...@adobe.com> on 2012-02-16
Reviewed by David Hyatt.

Source/WebCore:

The calculation of the clipping rectangle is based on the repaint rectangle,
so it needs to be clipped to the current region, because it might spread over multiple ones.

Test: fast/repaint/region-painting-invalidation.html

* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::repaintRectangleInRegions):

LayoutTests:

* fast/repaint/region-painting-invalidation.html: Added.
* platform/chromium/test_expectations.txt: Needs baseline
* platform/mac/fast/repaint/region-painting-invalidation-expected.png: Added.
* platform/mac/fast/repaint/region-painting-invalidation-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (107958 => 107959)


--- trunk/LayoutTests/ChangeLog	2012-02-16 19:12:32 UTC (rev 107958)
+++ trunk/LayoutTests/ChangeLog	2012-02-16 19:15:40 UTC (rev 107959)
@@ -1,3 +1,15 @@
+2012-02-16  Raul Hudea  <rhu...@adobe.com>
+
+        [CSS Regions] Repaint issues when changing innerHTML of content
+        https://bugs.webkit.org/show_bug.cgi?id=78787
+
+        Reviewed by David Hyatt.
+
+        * fast/repaint/region-painting-invalidation.html: Added.
+        * platform/chromium/test_expectations.txt: Needs baseline
+        * platform/mac/fast/repaint/region-painting-invalidation-expected.png: Added.
+        * platform/mac/fast/repaint/region-painting-invalidation-expected.txt: Added.
+
 2012-02-16  James Robinson <jam...@chromium.org>
 
         [chromium] Unreviewed chromium gardening

Added: trunk/LayoutTests/fast/repaint/region-painting-invalidation.html (0 => 107959)


--- trunk/LayoutTests/fast/repaint/region-painting-invalidation.html	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/region-painting-invalidation.html	2012-02-16 19:15:40 UTC (rev 107959)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<title>Test for https://bugs.webkit.org/show_bug.cgi?id=78787</title>
+<style type="text/css">
+#content {
+    -webkit-flow-into: flow1;
+}
+
+#target { height: 100px; background-color: red }
+
+#region1, #region2 {
+    -webkit-flow-from: flow1;
+}
+
+#region1 {
+    width: 300px;
+    height: 150px;
+    border:1px solid black;
+    background-color:red;
+}
+
+#region2 {
+    width: 300px;
+    height: 200px;
+    border:1px solid black;
+    background-color:red;
+}
+
+</style>
+<script src="" type="text/_javascript_"></script>
+<script>
+function repaintTest()
+{
+    document.getElementById('target').style.height = '350px';
+    document.getElementById('target').style.backgroundColor = 'green';
+}
+</script>
+</head>
+<body _onload_="runRepaintTest();">
+    <div id="content">
+        <div id="target"></div>
+    </div>
+
+    <div id="region1"></div><br/>
+    <div id="region2"></div>
+</body>
+</html>

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (107958 => 107959)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-02-16 19:12:32 UTC (rev 107958)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2012-02-16 19:15:40 UTC (rev 107959)
@@ -3049,6 +3049,9 @@
 BUGWK78761 DEBUG : fast/regions/element-region-overflow-state.html = PASS TEXT
 BUGWK78761 DEBUG : fast/regions/element-region-overflow-state-vertical-rl.html = PASS TEXT
 
+// New test added from https://bugs.webkit.org/show_bug.cgi?id=78787, needs baselines.
+BUGWK78787 : fast/repaint/region-painting-invalidation.html = IMAGE+TEXT
+
 // CSS custom() filters are not currently supported
 BUGWK71392 : css3/filters/missing-custom-filter-shader.html = FAIL
 BUGWK71392 : css3/filters/custom-filter-property-computed-style.html = FAIL

Added: trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.png (0 => 107959)


--- trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.png	2012-02-16 19:15:40 UTC (rev 107959)
@@ -0,0 +1,10 @@
+\x89PNG
+
+
+IHDR X\x9Av\x82p)tEXtchecksum01905a30d6f68ba7bc600c58c6dce880*\xF6\xFC IDATx\xED\xDDAjdWDQ\xDBh\x8F;\xB5\xAD\xD26=\xD1L\x90\xC4\xE9\x91@\xA9\x97\xC5!'
+\xFA\xEF\xE7y\xFE\xFD\xCB? @\x80\xFE)찂 @\x80\x88C @\x80 @\xA0& @j\xD4 @\x80  @\xDC @\x805R\xA3\xB6\x88 @\x80\xE2 @\x80\xA8	\x90\xB5E @\x80|\xBD#\xF8\xFE\xFE~7\xE2\xF7\xF8(\x81\xFF\xFF\xA3\x8F\xFA<> \xF0#\xF06@\xFE\x8C\xBE~\xFE\xC0O\xF8h\x81\xD7G:\x8E\xCC\xF8
+\xD6\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O\xE0+Z\xF5\x8A\xA6 @\x80 @\xE0W\x81\xB7\xF2<ϯ\xF8% @\x80R_\xC1J\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80gr&\xF4 @\x80\xA9\x80I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80gr&\xF4 @\x80\xA9\x80I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80gr&\xF4 @\x80\xA9\x80I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80gr&\xF4 @\x80\xA9\x80I\xA5\xCC @\x80 p\xF8z\xF7\xC2\xF7\xF7\xF7\xBB\xBF'@\x80\xC0G	<\xCF\xF3Q\x9FLJ!@\x80~\xDEȟ\xD1\xD7\xCF\xF8\x89-\xF0\xFA\xE8O\xE7\xC3 @\x80\x81y_\xC1\x9A? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0 =k\x9B @\x80\xCC\x90\xF9@\x80 @\xA0' @z\xD66 @\x80\x98 \xF3'\x80 @\x80@O@\x80\xF4\xACm"@\x80 0/ @\xE6O @\x80\x81\x9E\x80\xE9Y\xDBD\x80 @`^@\x80̟ @\x80=ҳ\xB6\x89 @\x80\xC0\xBC\x80\x99? @\x80z\xA4gm @\x80\x81y2 @\x80\xF4H\xCF\xDA& @\x80\xF3d\xFE @\x80\xE8	\x90\x9E\xB5M @\x80\xE6\xC8\xFC	 @\x80 \xD0\xF8\x8AV\xBD\xA2)C @\x80\xF8U\xE0m\x80<\xCF\xF3\xEB~I\x80 @\x80\x81T\xC0W\xB0R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@4\xA3	IDAT* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y@\x80\x9C	=@\x80 @\x80@* @R)s @\x80\x9Cș\xD0 @\x80\xA4$\x952G\x80 @\x80\xC0Y\xE0?z\xB3\xCE\xCE\xD4gbIEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.txt (0 => 107959)


--- trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/repaint/region-painting-invalidation-expected.txt	2012-02-16 19:15:40 UTC (rev 107959)
@@ -0,0 +1,18 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderRegion {DIV} at (0,0) size 302x152 [bgcolor=#FF0000] [border: (1px solid #000000)]
+      RenderBlock (anonymous) at (0,152) size 784x18
+        RenderBR {BR} at (0,0) size 0x18
+      RenderRegion {DIV} at (0,170) size 302x202 [bgcolor=#FF0000] [border: (1px solid #000000)]
+Flow Threads
+  Thread with flow-name 'flow1'
+    layer at (0,0) size 300x350
+      RenderFlowThread at (0,0) size 300x350
+        RenderBlock {DIV} at (0,0) size 300x350
+          RenderBlock {DIV} at (0,0) size 300x350 [bgcolor=#008000]
+  Regions for flow 'flow1'
+    RenderRegion {DIV} #region1
+    RenderRegion {DIV} #region2

Modified: trunk/Source/WebCore/ChangeLog (107958 => 107959)


--- trunk/Source/WebCore/ChangeLog	2012-02-16 19:12:32 UTC (rev 107958)
+++ trunk/Source/WebCore/ChangeLog	2012-02-16 19:15:40 UTC (rev 107959)
@@ -1,3 +1,18 @@
+2012-02-16  Raul Hudea  <rhu...@adobe.com>
+
+        [CSS Regions] Repaint issues when changing innerHTML of content
+        https://bugs.webkit.org/show_bug.cgi?id=78787
+
+        Reviewed by David Hyatt.
+
+        The calculation of the clipping rectangle is based on the repaint rectangle,
+        so it needs to be clipped to the current region, because it might spread over multiple ones.
+
+        Test: fast/repaint/region-painting-invalidation.html
+
+        * rendering/RenderFlowThread.cpp:
+        (WebCore::RenderFlowThread::repaintRectangleInRegions):
+
 2012-02-16  Adam Roben  <aro...@apple.com>
 
         Roll out r107887

Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (107958 => 107959)


--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2012-02-16 19:12:32 UTC (rev 107958)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp	2012-02-16 19:15:40 UTC (rev 107959)
@@ -540,14 +540,14 @@
         flipForWritingMode(flippedRegionRect); // Put the region rects into physical coordinates.
         flipForWritingMode(flippedRegionOverflowRect);
 
-        LayoutRect clippedRect(flippedRegionOverflowRect);
-        clippedRect.intersect(repaintRect);
+        LayoutRect clippedRect(repaintRect);
+        clippedRect.intersect(flippedRegionOverflowRect);
         if (clippedRect.isEmpty())
             continue;
-        
+
         // Put the region rect into the region's physical coordinate space.
-        clippedRect.setLocation(region->contentBoxRect().location() + (repaintRect.location() - flippedRegionRect.location()));
-        
+        clippedRect.setLocation(region->contentBoxRect().location() + (clippedRect.location() - flippedRegionRect.location()));
+
         // Now switch to the region's writing mode coordinate space and let it repaint itself.
         region->flipForWritingMode(clippedRect);
         LayoutStateDisabler layoutStateDisabler(view()); // We can't use layout state to repaint, since the region is somewhere else.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to