Title: [172572] branches/safari-600.1-branch
- Revision
- 172572
- Author
- [email protected]
- Date
- 2014-08-13 21:18:44 -0700 (Wed, 13 Aug 2014)
Log Message
Merged r172534. <rdar://problem/17942035>
Modified Paths
Added Paths
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