Title: [172572] branches/safari-600.1-branch

Diff

Modified: branches/safari-600.1-branch/LayoutTests/ChangeLog (172571 => 172572)


--- branches/safari-600.1-branch/LayoutTests/ChangeLog	2014-08-14 04:16:49 UTC (rev 172571)
+++ branches/safari-600.1-branch/LayoutTests/ChangeLog	2014-08-14 04:18:44 UTC (rev 172572)
@@ -1,3 +1,20 @@
+2014-08-13  Lucas Forschler  <[email protected]>
+
+        Merge r172534
+
+    2014-08-13  Simon Fraser  <[email protected]>
+
+            [WK1] A fixed-position <img> may not show on page load
+            https://bugs.webkit.org/show_bug.cgi?id=135893
+
+            Reviewed by Tim Horton.
+
+            Test with a position:fixed image. Note that the test has to force layout
+            early on to test the bug.
+
+            * compositing/fixed-image-loading-expected.txt: Added.
+            * compositing/fixed-image-loading.html: Added.
+
 2014-08-12  Lucas Forschler  <[email protected]>
 
         Merge r172425

Copied: branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading-expected.txt (from rev 172534, trunk/LayoutTests/compositing/fixed-image-loading-expected.txt) (0 => 172572)


--- branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading-expected.txt	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading-expected.txt	2014-08-14 04:18:44 UTC (rev 172572)
@@ -0,0 +1,18 @@
+
+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 800.00 600.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 800.00 600.00)
+      (contentsOpaque 1)
+      (children 1
+        (GraphicsLayer
+          (position 8.00 13.00)
+          (bounds 214.00 232.00)
+        )
+      )
+    )
+  )
+)
+

Copied: branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading.html (from rev 172534, trunk/LayoutTests/compositing/fixed-image-loading.html) (0 => 172572)


--- branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading.html	                        (rev 0)
+++ branches/safari-600.1-branch/LayoutTests/compositing/fixed-image-loading.html	2014-08-14 04:18:44 UTC (rev 172572)
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <script>
+        if (window.testRunner) {
+            testRunner.dumpAsText();
+            testRunner.waitUntilDone();
+        }
+
+        function imageLoaded()
+        {
+            if (window.internals)
+                document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
+            if (window.testRunner)
+                testRunner.notifyDone();
+        }
+    </script>
+</head>
+<body>
+<img id="image" src="" _onload_="imageLoaded()" style="position: fixed;"></img>
+<pre id="layers"></pre>
+<script>
+document.body.offsetWidth; // Force layout before the image loads.
+</script>
+</body>
+</html>

Modified: branches/safari-600.1-branch/Source/WebCore/ChangeLog (172571 => 172572)


--- branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-14 04:16:49 UTC (rev 172571)
+++ branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-14 04:18:44 UTC (rev 172572)
@@ -1,5 +1,31 @@
 2014-08-13  Lucas Forschler  <[email protected]>
 
+        Merge r172534
+
+    2014-08-13  Simon Fraser  <[email protected]>
+
+            [WK1] A fixed-position <img> may not show on page load
+            https://bugs.webkit.org/show_bug.cgi?id=135893
+
+            Reviewed by Tim Horton.
+
+            A position:fixed image could fail to display because we didn't make a
+            compositing layer for it under some circumstances. This can happen if
+            RenderLayerCompositor::requiresCompositingForPosition() runs before the
+            image is loaded, in which cause the layer is zero-sized, so does not get
+            composited.
+
+            When the image loads, there was no code path that ensured that compositing
+            would be re-evaluated (unlike size changes due to style updates). Fix by
+            having RenderLayer::contentChanged() also check for ImageChanged.
+
+            Test: compositing/fixed-image-loading.html
+
+            * rendering/RenderLayer.cpp:
+            (WebCore::RenderLayer::contentChanged):
+
+2014-08-13  Lucas Forschler  <[email protected]>
+
         Merge r172507
 
     2014-08-12  Jer Noble  <[email protected]>

Modified: branches/safari-600.1-branch/Source/WebCore/rendering/RenderLayer.cpp (172571 => 172572)


--- branches/safari-600.1-branch/Source/WebCore/rendering/RenderLayer.cpp	2014-08-14 04:16:49 UTC (rev 172571)
+++ branches/safari-600.1-branch/Source/WebCore/rendering/RenderLayer.cpp	2014-08-14 04:18:44 UTC (rev 172572)
@@ -298,8 +298,7 @@
 
 void RenderLayer::contentChanged(ContentChangeType changeType)
 {
-    // This can get called when video becomes accelerated, so the layers may change.
-    if ((changeType == CanvasChanged || changeType == VideoChanged || changeType == FullScreenChanged) && compositor().updateLayerCompositingState(*this))
+    if ((changeType == CanvasChanged || changeType == VideoChanged || changeType == FullScreenChanged || changeType == ImageChanged) && compositor().updateLayerCompositingState(*this))
         compositor().setCompositingLayersNeedRebuild();
 
     if (m_backing)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to