Title: [127865] trunk
Revision
127865
Author
[email protected]
Date
2012-09-07 06:37:32 -0700 (Fri, 07 Sep 2012)

Log Message

[chromium] Dynamically removing preserve-3d from a layer has no effect
https://bugs.webkit.org/show_bug.cgi?id=95732

Patch by Sami Kyostila <[email protected]> on 2012-09-07
Reviewed by James Robinson.

Source/WebCore:

Fix removal of preserve-3d CSS attribute from a GraphicsLayerChromium.
It was broken by a refactor in http://trac.webkit.org/changeset/126378.

Test: platform/chromium/compositing/preserve-3d-toggle.html

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateLayerPreserves3D):

LayoutTests:

Add test to verify dynamic removal of preserve-3d CSS attribute.

* platform/chromium/compositing/preserve-3d-toggle-expected.png: Added.
* platform/chromium/compositing/preserve-3d-toggle-expected.txt: Added.
* platform/chromium/compositing/preserve-3d-toggle.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (127864 => 127865)


--- trunk/LayoutTests/ChangeLog	2012-09-07 13:24:43 UTC (rev 127864)
+++ trunk/LayoutTests/ChangeLog	2012-09-07 13:37:32 UTC (rev 127865)
@@ -1,3 +1,16 @@
+2012-09-07  Sami Kyostila  <[email protected]>
+
+        [chromium] Dynamically removing preserve-3d from a layer has no effect
+        https://bugs.webkit.org/show_bug.cgi?id=95732
+
+        Reviewed by James Robinson.
+
+        Add test to verify dynamic removal of preserve-3d CSS attribute.
+
+        * platform/chromium/compositing/preserve-3d-toggle-expected.png: Added.
+        * platform/chromium/compositing/preserve-3d-toggle-expected.txt: Added.
+        * platform/chromium/compositing/preserve-3d-toggle.html: Added.
+
 2012-09-03  Alexander Pavlov  <[email protected]>
 
         Web Inspector: Implement SCSS source highlighter

Added: trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.png (0 => 127865)


--- trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.png	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.png	2012-09-07 13:37:32 UTC (rev 127865)
@@ -0,0 +1,8 @@
+\x89PNG
+
+
+IHDR X')tEXtchecksum6b0ecc73552409651fdf34f695a73063\xFDh\xB1E
+\xC2IDATx\x9C\xED\xDC1\x83@A\x9F\xE5#^\xBE\x84D\xCEZ PUzɄ\xAD
+n\xCD\xCC\x80\xCE\xF7\xEEo#\xB0b &\xB0b &\xB0b \xF6\xFB\xF7\xB0\xF6u\xE5\x8EG\x9B\xCD_b\xC0\xC9 &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b &\xB0b \xB6f\xE6\xEE
+\xAF\xE2\x82X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81X1\x81;7\x83
+\xABۡ\xA1\xE6IEND\xAEB`\x82
\ No newline at end of file

Added: trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.txt (0 => 127865)


--- trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle-expected.txt	2012-09-07 13:37:32 UTC (rev 127865)
@@ -0,0 +1 @@
+

Added: trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle.html (0 => 127865)


--- trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle.html	                        (rev 0)
+++ trunk/LayoutTests/platform/chromium/compositing/preserve-3d-toggle.html	2012-09-07 13:37:32 UTC (rev 127865)
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+
+<!--
+Check that removing the preserve-3d attribute from a layer has the intended
+effect. See https://bugs.webkit.org/show_bug.cgi?id=95732.
+
+Passing criteria: green box shown without any visible red.
+-->
+
+<html>
+<head>
+  <style type="text/css" media="screen">
+    body {
+      -webkit-perspective: 400px;
+    }
+
+    .transformed-container {
+      -webkit-transform-style: preserve-3d;
+      -webkit-transform: rotateX(90deg);
+    }
+
+    .reverse-transformed-child {
+      -webkit-transform: rotateX(-90deg);
+    }
+
+    .box {
+      width: 100px;
+      height: 100px;
+    }
+
+    .indicator {
+      background: red;
+    }
+
+    .test {
+      position: absolute;
+      -webkit-transform: translateZ(0);
+      background: green;
+    }
+  </style>
+
+  <script type="text/_javascript_">
+    function doTest() {
+      if (window.testRunner) {
+          window.testRunner.dumpAsText(true);
+          window.testRunner.waitUntilDone();
+      }
+      window.setTimeout(function() {
+          document.getElementById('container').style.webkitTransformStyle = 'flat';
+          if (window.testRunner)
+              window.testRunner.notifyDone();
+      }, 0);
+    }
+    window.addEventListener('load', doTest);
+  </script>
+</head>
+
+<body>
+  <div class="test box"></div>
+  <div id="container" class="transformed-container box">
+    <div class="reverse-transformed-child indicator box"></div>
+  </div>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (127864 => 127865)


--- trunk/Source/WebCore/ChangeLog	2012-09-07 13:24:43 UTC (rev 127864)
+++ trunk/Source/WebCore/ChangeLog	2012-09-07 13:37:32 UTC (rev 127865)
@@ -1,3 +1,18 @@
+2012-09-07  Sami Kyostila  <[email protected]>
+
+        [chromium] Dynamically removing preserve-3d from a layer has no effect
+        https://bugs.webkit.org/show_bug.cgi?id=95732
+
+        Reviewed by James Robinson.
+
+        Fix removal of preserve-3d CSS attribute from a GraphicsLayerChromium.
+        It was broken by a refactor in http://trac.webkit.org/changeset/126378.
+
+        Test: platform/chromium/compositing/preserve-3d-toggle.html
+
+        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
+
 2012-09-06  Alexander Pavlov  <[email protected]>
 
         Web Inspector: Implement SCSS source highlighter

Modified: trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp (127864 => 127865)


--- trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp	2012-09-07 13:24:43 UTC (rev 127864)
+++ trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp	2012-09-07 13:37:32 UTC (rev 127865)
@@ -752,8 +752,8 @@
         m_transformLayer->addChild(m_layer->layer());
 
         updateChildList();
-    } else if (m_preserves3D && !m_transformLayer) {
-        // Relace the transformLayer in the parent with this layer.
+    } else if (!m_preserves3D && m_transformLayer) {
+        // Replace the transformLayer in the parent with this layer.
         m_layer->layer()->removeFromParent();
         if (parent())
             parent()->platformLayer()->replaceChild(m_transformLayer.get(), m_layer->layer());
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to