- 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 )tEXtchecksum 01905a30d6f68ba7bc600c58c6dce880*\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 @\x80 5R\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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% @\x80 R_\xC1J\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80 gr&\xF4 @\x80 \xA9\x80 I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80 gr&\xF4 @\x80 \xA9\x80 I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80 gr&\xF4 @\x80 \xA9\x80 I\xA5\xCC @\x80 p gB @\x80 \x90
+\x90T\xCA @\x80 gr&\xF4 @\x80 \xA9\x80 I\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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? @\x80 z\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\xD4gb IEND\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.