Title: [139664] trunk
Revision
139664
Author
[email protected]
Date
2013-01-14 14:23:06 -0800 (Mon, 14 Jan 2013)

Log Message

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.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139663 => 139664)


--- trunk/LayoutTests/ChangeLog	2013-01-14 22:21:00 UTC (rev 139663)
+++ trunk/LayoutTests/ChangeLog	2013-01-14 22:23:06 UTC (rev 139664)
@@ -1,3 +1,14 @@
+2013-01-14  Julien Chaffraix  <[email protected]>
+
+        REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
+        https://bugs.webkit.org/show_bug.cgi?id=105861
+
+        Reviewed by David Hyatt.
+
+        * 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.
+
 2013-01-14  Dominic Mazzoni  <[email protected]>
 
         AX: Need to implement ColorWellRole

Added: trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png (0 => 139664)


--- trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.png	2013-01-14 22:23:06 UTC (rev 139664)
@@ -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

Added: trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt (0 => 139664)


--- trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint-expected.txt	2013-01-14 22:23:06 UTC (rev 139664)
@@ -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.
+

Added: trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html (0 => 139664)


--- trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	                        (rev 0)
+++ trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html	2013-01-14 22:23:06 UTC (rev 139664)
@@ -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> 
Property changes on: trunk/LayoutTests/fast/repaint/overhanging-float-detach-repaint.html
___________________________________________________________________

Added: svn:executable

Modified: trunk/Source/WebCore/ChangeLog (139663 => 139664)


--- trunk/Source/WebCore/ChangeLog	2013-01-14 22:21:00 UTC (rev 139663)
+++ trunk/Source/WebCore/ChangeLog	2013-01-14 22:23:06 UTC (rev 139664)
@@ -1,3 +1,19 @@
+2013-01-14  Julien Chaffraix  <[email protected]>
+
+        REGRESSION (r132591): Underpainting @ uofmchildrenshospital.org
+        https://bugs.webkit.org/show_bug.cgi?id=105861
+
+        Reviewed by David Hyatt.
+
+        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):
+
 2013-01-14  Dominic Mazzoni  <[email protected]>
 
         AX: Need to implement ColorWellRole

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (139663 => 139664)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2013-01-14 22:21:00 UTC (rev 139663)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2013-01-14 22:23:06 UTC (rev 139664)
@@ -2528,8 +2528,10 @@
     if (destroyRoot->everHadLayout()) {
         if (destroyRoot->isBody())
             destroyRoot->view()->repaint();
-        else
+        else {
             destroyRoot->repaint();
+            destroyRoot->repaintOverhangingFloats(true);
+        }
     }
 
     destroyRoot->destroy();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to