Modified: trunk/LayoutTests/ChangeLog (120660 => 120661)
--- trunk/LayoutTests/ChangeLog 2012-06-19 02:54:19 UTC (rev 120660)
+++ trunk/LayoutTests/ChangeLog 2012-06-19 03:04:50 UTC (rev 120661)
@@ -1,3 +1,16 @@
+2012-06-18 Adrienne Walker <e...@google.com>
+
+ RenderLayerBacking sometimes doesn't attach scrollbars to graphics layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=89402
+
+ Reviewed by James Robinson.
+
+ Add a test where an image load creates overflow.
+
+ * compositing/overflow/image-load-overflow-scrollbars-expected.png: Added.
+ * compositing/overflow/image-load-overflow-scrollbars-expected.txt: Added.
+ * compositing/overflow/image-load-overflow-scrollbars.html: Added.
+
2012-06-18 Ami Fischman <fisch...@chromium.org>
Make serve-video.php serve 206 responses
Added: trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.png (0 => 120661)
--- trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.png (rev 0)
+++ trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.png 2012-06-19 03:04:50 UTC (rev 120661)
@@ -0,0 +1,6 @@
+\x89PNG
+
+
+IHDR X ' )tEXtchecksum 4651dca6186c4ba7186140fdc72f97d3j\x8A\x8B\xC7
+\xD9IDATx\x9C\xEDر
+\x83@EAۢ\xAF\xA3t\xA8\xEC܂\x83g\xA0\x99x\x83>\xED{\xCE\xF9 \xA0\xF3Y= \xE0i @L` \xC4 @L` \xC4 @L` Ķ\xD5\xB8\xBD\xF3<?c\xFCo \\x84 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @l[=\x80\xDB;\x8E\xE3\xF7\xE31\xC6߆ \xC0U\xF8` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @l[=\x80\xDB\xDB\xF7}\xF5 \xB8, \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\x98\xC0 \x88 , \x80\x98\xC0 \x88 , \x80\x98\xC0 \x88 , \x80\x98\xC0 \x88 , \x80\x98\xC0 \x88 , \x80\x98\xC0 \x88\xBD眫7 <\x8A @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @L` \xC4 @\xEC\xE2l\x98\xE8 IEND\xAEB`\x82
\ No newline at end of file
Added: trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.txt (0 => 120661)
--- trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.txt (rev 0)
+++ trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars-expected.txt 2012-06-19 03:04:50 UTC (rev 120661)
@@ -0,0 +1 @@
+
Added: trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars.html (0 => 120661)
--- trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars.html (rev 0)
+++ trunk/LayoutTests/compositing/overflow/image-load-overflow-scrollbars.html 2012-06-19 03:04:50 UTC (rev 120661)
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style type='text/css'>
+ #overflow {
+ overflow:auto;
+ width:200px;
+ height:200px;
+ -webkit-transform:translateZ(0);
+ }
+</style>
+<script type='text/_javascript_'>
+ function doTest() {
+ var canvas = document.createElement('canvas');
+ canvas.width = 1;
+ canvas.height = 400;
+ var content = document.getElementById("content");
+ content._onload_ = function() {
+ var overflow = document.getElementById("overflow");
+ overflow.scrollTop = 50;
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+ content.src = ""
+ }
+ window.addEventListener('load', doTest, false);
+
+ if (window.layoutTestController) {
+ layoutTestController.waitUntilDone();
+ layoutTestController.dumpAsText(true);
+ }
+</script>
+</head>
+<body>
+ <!-- This test passes if a partially scrolled scrollbar appears -->
+ <div id="overflow">
+ <img id="content">
+ </div>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (120660 => 120661)
--- trunk/Source/WebCore/ChangeLog 2012-06-19 02:54:19 UTC (rev 120660)
+++ trunk/Source/WebCore/ChangeLog 2012-06-19 03:04:50 UTC (rev 120661)
@@ -1,3 +1,21 @@
+2012-06-18 Adrienne Walker <e...@google.com>
+
+ RenderLayerBacking sometimes doesn't attach scrollbars to graphics layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=89402
+
+ Reviewed by James Robinson.
+
+ RenderLayerBacking only attaches scrollbar layers to the graphics
+ layer tree if there's a clip layer. This is wrong, because these
+ scrollbars become orphans and other code expects them to handle
+ repainting the scrollbars (which now become invisible). Fix by always
+ attaching scrollbar layers.
+
+ Test: compositing/overflow/image-load-overflow-scrollbars.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateInternalHierarchy):
+
2012-06-18 Amy Ousterhout <aoust...@chromium.org>
[Chromium] DeviceOrientation Cleanup
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (120660 => 120661)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-06-19 02:54:19 UTC (rev 120660)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2012-06-19 03:04:50 UTC (rev 120661)
@@ -610,23 +610,23 @@
if (m_clippingLayer) {
m_clippingLayer->removeFromParent();
m_graphicsLayer->addChild(m_clippingLayer.get());
+ }
- // The clip for child layers does not include space for overflow controls, so they exist as
- // siblings of the clipping layer if we have one. Normal children of this layer are set as
- // children of the clipping layer.
- if (m_layerForHorizontalScrollbar) {
- m_layerForHorizontalScrollbar->removeFromParent();
- m_graphicsLayer->addChild(m_layerForHorizontalScrollbar.get());
- }
- if (m_layerForVerticalScrollbar) {
- m_layerForVerticalScrollbar->removeFromParent();
- m_graphicsLayer->addChild(m_layerForVerticalScrollbar.get());
- }
- if (m_layerForScrollCorner) {
- m_layerForScrollCorner->removeFromParent();
- m_graphicsLayer->addChild(m_layerForScrollCorner.get());
- }
+ // The clip for child layers does not include space for overflow controls, so they exist as
+ // siblings of the clipping layer if we have one. Normal children of this layer are set as
+ // children of the clipping layer.
+ if (m_layerForHorizontalScrollbar) {
+ m_layerForHorizontalScrollbar->removeFromParent();
+ m_graphicsLayer->addChild(m_layerForHorizontalScrollbar.get());
}
+ if (m_layerForVerticalScrollbar) {
+ m_layerForVerticalScrollbar->removeFromParent();
+ m_graphicsLayer->addChild(m_layerForVerticalScrollbar.get());
+ }
+ if (m_layerForScrollCorner) {
+ m_layerForScrollCorner->removeFromParent();
+ m_graphicsLayer->addChild(m_layerForScrollCorner.get());
+ }
}
void RenderLayerBacking::updateDrawsContent()