Title: [140180] branches/chromium/1364
Revision
140180
Author
jchaffr...@webkit.org
Date
2013-01-18 10:44:24 -0800 (Fri, 18 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/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png) (0 => 140180)


--- branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	                        (rev 0)
+++ branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	2013-01-18 18:44:24 UTC (rev 140180)
@@ -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/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt) (0 => 140180)


--- branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	                        (rev 0)
+++ branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	2013-01-18 18:44:24 UTC (rev 140180)
@@ -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/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html (from rev 139664, trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html) (0 => 140180)


--- branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	                        (rev 0)
+++ branches/chromium/1364/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	2013-01-18 18:44:24 UTC (rev 140180)
@@ -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/1364/Source/WebCore/rendering/RenderObject.cpp (140179 => 140180)


--- branches/chromium/1364/Source/WebCore/rendering/RenderObject.cpp	2013-01-18 18:34:47 UTC (rev 140179)
+++ branches/chromium/1364/Source/WebCore/rendering/RenderObject.cpp	2013-01-18 18:44:24 UTC (rev 140180)
@@ -2530,8 +2530,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