Title: [140072] branches/chromium/1312
Revision
140072
Author
kar...@chromium.org
Date
2013-01-17 16:41:02 -0800 (Thu, 17 Jan 2013)

Log Message

Merge 139664
> REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
> https://bugs.webkit.org/show_bug.cgi?id=105861
> 
> Reviewed by David Hyatt.
> 
> Source/WebCore:
> 
> Test: fast/repaint/overhanging-float-detach-repaint.html
> 
> The issue comes from overhanging float not contributing to their containing block's
> overflow. This meant that repaint() would ignore them leading to an under-repaint.
> The fix is simple: force all the overhanging floats to repaint themselves.
> 
> * rendering/RenderObject.cpp:
> (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
> 
> LayoutTests:
> 
> * fast/repaint/overhanging-float-detach-repaint-expected.png: Added.
> * fast/repaint/overhanging-float-detach-repaint-expected.txt: Added.
> * fast/repaint/overhanging-float-detach-repaint.html: Added.
> 

TBR=jchaffr...@webkit.org

Modified Paths

Added Paths

Diff

Copied: branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png) (0 => 140072)


--- branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	                        (rev 0)
+++ branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	2013-01-18 00:41:02 UTC (rev 140072)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum991b2509651475980cf8bec8c6497b55\xB1\x80g\xD6
+\xC2IDATx\x9C\xEDر
+AA\x91\xE3^\x88&\xE0\xB58xU\xB9\xEB\x8C\xD9\xDAkft\x9E\xA7܍\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\x98\xC0\x88	,\x80\xD8\xEB\xD3a\xEF\xFD\xCDm\xADuz\xF0C|\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b\xD7̜\xDEp+>X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X\xB177\xE6	\xBB\xD6u\xFD`IEND\xAEB`\x82
\ No newline at end of file

Copied: branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt) (0 => 140072)


--- branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	                        (rev 0)
+++ branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	2013-01-18 00:41:02 UTC (rev 140072)
@@ -0,0 +1,4 @@
+Bug 105861: REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
+This test checks that overhanging floats are properly repainted when a renderer is detached.
+This test has PASSED if there is no RED below.
+

Copied: branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html) (0 => 140072)


--- branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	                        (rev 0)
+++ branches/chromium/1312/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	2013-01-18 00:41:02 UTC (rev 140072)
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <script src=""
+    <script>
+        if (window.testRunner)
+            testRunner.dumpAsText(true);
+
+    function repaintTest() {
+        var floatContainer = document.getElementById("floatContainer");
+        floatContainer.style.display = "none";
+    }
+
+    window.addEventListener("load", runRepaintTest);
+    </script>
+    <style>
+    .floatWithHeight {
+        float: left;
+        height: 400px;
+    }
+
+    .float {
+        float: left;
+        background-color: red;
+        height: 100px;
+        width: 100px;
+    }
+    </style>
+</head>
+<body>
+<div>
+    <div style="opacity: 0;">
+        <a href="" 105861</a>: REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org<br>
+        This test checks that overhanging floats are properly repainted when a renderer is detached.<br>
+        This test has PASSED if there is no RED below.
+    </div>
+    <div class="floatWithHeight"></div>
+    <div id="floatContainer">
+        <div class="float"></div>
+    </div>
+</div>	
+</body> 
+</html> 

Modified: branches/chromium/1312/Source/WebCore/rendering/RenderObject.cpp (140071 => 140072)


--- branches/chromium/1312/Source/WebCore/rendering/RenderObject.cpp	2013-01-18 00:39:21 UTC (rev 140071)
+++ branches/chromium/1312/Source/WebCore/rendering/RenderObject.cpp	2013-01-18 00:41:02 UTC (rev 140072)
@@ -2473,8 +2473,10 @@
     if (destroyRoot->everHadLayout()) {
         if (destroyRoot->isBody())
             destroyRoot->view()->repaint();
-        else
+        else {
             destroyRoot->repaint();
+            destroyRoot->repaintOverhangingFloats(true);
+        }
     }
 
     destroyRoot->destroy();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to