Title: [111958] releases/WebKitGTK/webkit-1.8
Diff
Modified: releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog (111957 => 111958)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog 2012-03-24 01:10:45 UTC (rev 111957)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/ChangeLog 2012-03-24 01:11:47 UTC (rev 111958)
@@ -1,3 +1,25 @@
+2012-03-23 Shawn Singh <[email protected]>
+
+ REGRESSION (r93614): scrolling div does not repaint
+ https://bugs.webkit.org/show_bug.cgi?id=80641
+
+ Reviewed by Simon Fraser.
+
+ * compositing/repaint/newly-composited-repaint-rect-expected.png: Added.
+ * compositing/repaint/newly-composited-repaint-rect-expected.txt: Added.
+ * compositing/repaint/newly-composited-repaint-rect.html: Added.
+
+2012-03-23 Shawn Singh <[email protected]>
+
+ REGRESSION (r93614): scrolling div does not repaint
+ https://bugs.webkit.org/show_bug.cgi?id=80641
+
+ Reviewed by Simon Fraser.
+
+ * compositing/repaint/newly-composited-repaint-rect-expected.png: Added.
+ * compositing/repaint/newly-composited-repaint-rect-expected.txt: Added.
+ * compositing/repaint/newly-composited-repaint-rect.html: Added.
+
2012-03-23 Gavin Barraclough <[email protected]>
REGRESSION: Date.parse("Tue Nov 23 20:40:05 2010 GMT") returns NaN
Added: releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect-expected.txt (0 => 111958)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect-expected.txt 2012-03-24 01:11:47 UTC (rev 111958)
@@ -0,0 +1 @@
+
Property changes on: releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect.html (0 => 111958)
--- releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect.html (rev 0)
+++ releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect.html 2012-03-24 01:11:47 UTC (rev 111958)
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <!-- This test case reproduces a bug that is hopefully solved by https://bugs.webkit.org/show_bug.cgi?id=80641
+
+ In the bug, a div element begins as non-composited, and the repaintRect had a
+ correct non-zero offset because it paints into an ancestor container. Later, the
+ layer becomes composited (in this case, because the layer is moved to overlap
+ another composited layer). Because the layer is now composited, the repaintRect
+ should have been recomputed - in particular, the offset of the repaintRect should
+ become zero because it is now its own repaint container.
+
+ Therefore, after the layer became composited, it was using the wrong repaint rect,
+ which caused things not to repaint properly.
+ -->
+
+ <style type="text/css">
+ .composited {
+ -webkit-transform: translatez(0);
+ border: 2px solid black;
+ }
+
+ .box {
+ width: 200px;
+ height: 200px;
+ }
+
+ #scrolldiv {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ left: 250px;
+ top: 50px;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ }
+
+ .shouldNotBeSeen {
+ background-color: red;
+ }
+
+ .shouldBeSeen {
+ background-color: green;
+ }
+ </style>
+
+</head>
+
+<script src=""
+
+<script>
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText(true);
+ layoutTestController.waitUntilDone();
+ }
+
+ function changeDivPosition() {
+ document.getElementById("scrolldiv").style.left="50px";
+ }
+
+ function repaintTest() {
+ // Changing the position will cause the scrolldiv to become composited becuase it overlaps another compostied element.
+ changeDivPosition();
+
+ // Force DumpRenderTree to do a layout and repaint here, this is where the repaintRect
+ // goes wrong because it does not get updated for a newly composited element.
+ if (window.layoutTestController)
+ layoutTestController.display();
+
+ window.setTimeout(function() {
+ // Scrolling a little will demonstrate whether the repaint rect is correct or not.
+ document.getElementById('scrolldiv').scrollTop = 500;
+ layoutTestController.notifyDone();
+ }, 0);
+ }
+
+</script>
+
+<body _onload_="runRepaintTest()">
+ <div class="composited box"></div>
+ <div id="scrolldiv">
+ <div class="shouldNotBeSeen box"></div>
+ <div class="shouldBeSeen box"></div>
+ </div>
+</body>
+
+</html>
Property changes on: releases/WebKitGTK/webkit-1.8/LayoutTests/compositing/repaint/newly-composited-repaint-rect.html
___________________________________________________________________
Added: svn:eol-style
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog (111957 => 111958)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog 2012-03-24 01:10:45 UTC (rev 111957)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/ChangeLog 2012-03-24 01:11:47 UTC (rev 111958)
@@ -1,3 +1,18 @@
+2012-03-23 Shawn Singh <[email protected]>
+
+ REGRESSION (r93614): scrolling div does not repaint
+ https://bugs.webkit.org/show_bug.cgi?id=80641
+
+ Reviewed by Simon Fraser.
+
+ Test: compositing/repaint/newly-composited-repaint-rect.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateBacking): When a layer
+ becomes newly composited and creates its backing, the repaintRect
+ may become invalid. This patch recomputes repaintRects in this
+ case.
+
2012-03-23 Andy Estes <[email protected]>
REGRESSION (r105396): Dragging an iWork document into icloud.com opens it in the Mac app instead of uploading it to icloud.com
Modified: releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderLayerCompositor.cpp (111957 => 111958)
--- releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-03-24 01:10:45 UTC (rev 111957)
+++ releases/WebKitGTK/webkit-1.8/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-03-24 01:11:47 UTC (rev 111958)
@@ -365,6 +365,11 @@
layer->ensureBacking();
+ // The RenderLayer's needs to update repaint rects here, because the target
+ // repaintContainer may have changed after becoming a composited layer.
+ // https://bugs.webkit.org/show_bug.cgi?id=80641
+ layer->computeRepaintRects();
+
#if PLATFORM(MAC) && USE(CA)
Settings* settings = m_renderView->document()->settings();
if (settings && settings->acceleratedDrawingEnabled())
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes