Title: [177258] trunk
Revision
177258
Author
[email protected]
Date
2014-12-13 22:44:28 -0800 (Sat, 13 Dec 2014)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=139597
rdar://problem/19237334
Fixed positioned pseudo content does not get composited.

Reviewed by Simon Fraser.

This patch ensures that adjustRenderStyle() can access to settings even when Element* is null.

Source/WebCore:

Test: compositing/fixed-positioned-pseudo-content-no-compositing.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):

LayoutTests:

* compositing/fixed-positioned-pseudo-content-no-compositing-expected.txt: Added.
* compositing/fixed-positioned-pseudo-content-no-compositing.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (177257 => 177258)


--- trunk/LayoutTests/ChangeLog	2014-12-14 01:33:35 UTC (rev 177257)
+++ trunk/LayoutTests/ChangeLog	2014-12-14 06:44:28 UTC (rev 177258)
@@ -1,3 +1,16 @@
+2014-12-13  Zalan Bujtas  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=139597
+        rdar://problem/19237334
+        Fixed positioned pseudo content does not get composited.
+
+        Reviewed by Simon Fraser.
+
+        This patch ensures that adjustRenderStyle() can access to settings even when Element* is null. 
+
+        * compositing/fixed-positioned-pseudo-content-no-compositing-expected.txt: Added.
+        * compositing/fixed-positioned-pseudo-content-no-compositing.html: Added.
+
 2014-12-12  Alexey Proskuryakov  <[email protected]>
 
         [WebGL] Texture size tests failures

Added: trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing-expected.txt (0 => 177258)


--- trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing-expected.txt	2014-12-14 06:44:28 UTC (rev 177258)
@@ -0,0 +1,24 @@
+(GraphicsLayer
+  (anchor 0.00 0.00)
+  (bounds 800.00 600.00)
+  (children 1
+    (GraphicsLayer
+      (bounds 800.00 600.00)
+      (contentsOpaque 1)
+      (children 2
+        (GraphicsLayer
+          (bounds 135.00 18.00)
+          (contentsOpaque 1)
+          (drawsContent 1)
+        )
+        (GraphicsLayer
+          (position 0.00 100.00)
+          (bounds 123.00 18.00)
+          (contentsOpaque 1)
+          (drawsContent 1)
+        )
+      )
+    )
+  )
+)
+

Added: trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing.html (0 => 177258)


--- trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing.html	                        (rev 0)
+++ trunk/LayoutTests/compositing/fixed-positioned-pseudo-content-no-compositing.html	2014-12-14 06:44:28 UTC (rev 177258)
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>This tests that fixed positioned pseudo content gets composited.</title>
+<style>
+  .pseudo_content:before {
+    background: blue;
+    content: "foobar before content";
+    display: block;
+    position: fixed;
+    top: 0px;
+    left: 0px;
+  }
+
+  .pseudo_content:after {
+    background: green;
+    content: "foobar after content";
+    display: block;
+    position: fixed;
+    top: 100px;
+    left: 0px;
+  }
+</style>
+<script>
+  if (window.internals)
+    window.internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true);
+
+  if (window.testRunner)
+    testRunner.dumpAsText();
+
+  if (window.internals) {
+    window.addEventListener("load", function() {
+      document.getElementById("layerTree").innerText = window.internals.layerTreeAsText(document);
+    }, false);
+  }    
+</script>
+</head>
+<body>
+  <div class=pseudo_content></div>
+  <pre id=layerTree></pre>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (177257 => 177258)


--- trunk/Source/WebCore/ChangeLog	2014-12-14 01:33:35 UTC (rev 177257)
+++ trunk/Source/WebCore/ChangeLog	2014-12-14 06:44:28 UTC (rev 177258)
@@ -1,3 +1,18 @@
+2014-12-13  Zalan Bujtas  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=139597
+        rdar://problem/19237334
+        Fixed positioned pseudo content does not get composited.
+
+        Reviewed by Simon Fraser.
+
+        This patch ensures that adjustRenderStyle() can access to settings even when Element* is null. 
+
+        Test: compositing/fixed-positioned-pseudo-content-no-compositing.html
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle):
+
 2014-12-12  Mark Rowe  <[email protected]>
 
         [Mac] Work around a bug in dsymutil on older OS versions

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (177257 => 177258)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2014-12-14 01:33:35 UTC (rev 177257)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2014-12-14 06:44:28 UTC (rev 177258)
@@ -1323,7 +1323,7 @@
         || style.hasBlendMode()
         || style.hasIsolation()
         || style.position() == StickyPosition
-        || (style.position() == FixedPosition && e && e->document().page() && e->document().page()->settings().fixedPositionCreatesStackingContext())
+        || (style.position() == FixedPosition && documentSettings() && documentSettings()->fixedPositionCreatesStackingContext())
         || style.hasFlowFrom()
         ))
         style.setZIndex(0);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to