Title: [164640] trunk
Revision
164640
Author
[email protected]
Date
2014-02-25 02:16:04 -0800 (Tue, 25 Feb 2014)

Log Message

[CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
https://bugs.webkit.org/show_bug.cgi?id=126158

Patch by Mihai Tica <[email protected]> on 2014-02-25
Reviewed by Mihnea Ovidenie.

Source/WebCore:

As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
should force transform-style: flat.

Test: css3/compositing/blend-mode-transform-style.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.

LayoutTests:

For an element with -webkit-mix-blend-mode, test that the value of -webkit-transform-style computes to flat.

* css3/compositing/blend-mode-transform-style-expected.txt: Added.
* css3/compositing/blend-mode-transform-style.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (164639 => 164640)


--- trunk/LayoutTests/ChangeLog	2014-02-25 10:05:38 UTC (rev 164639)
+++ trunk/LayoutTests/ChangeLog	2014-02-25 10:16:04 UTC (rev 164640)
@@ -1,3 +1,15 @@
+2014-02-25  Mihai Tica  <[email protected]>
+
+        [CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
+        https://bugs.webkit.org/show_bug.cgi?id=126158
+
+        Reviewed by Mihnea Ovidenie.
+
+        For an element with -webkit-mix-blend-mode, test that the value of -webkit-transform-style computes to flat.
+
+        * css3/compositing/blend-mode-transform-style-expected.txt: Added.
+        * css3/compositing/blend-mode-transform-style.html: Added.
+
 2014-02-24  Chris Fleizach  <[email protected]>
 
         AX: Support abbr, acronym

Added: trunk/LayoutTests/css3/compositing/blend-mode-transform-style-expected.txt (0 => 164640)


--- trunk/LayoutTests/css3/compositing/blend-mode-transform-style-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-transform-style-expected.txt	2014-02-25 10:16:04 UTC (rev 164640)
@@ -0,0 +1,9 @@
+PASS getTransformStyle("blend-mode-normal-with-transform-style-preserve-3d") is "preserve-3d"
+PASS getTransformStyle("blending-with-transform-style-preserve-3d") is "flat"
+PASS getTransformStyle("blending-with-transform-style-flat") is "flat"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Test that an element with -webkit-mix-blend-mode other than normal forces the computed value of transform-style to flat.
+
+

Added: trunk/LayoutTests/css3/compositing/blend-mode-transform-style.html (0 => 164640)


--- trunk/LayoutTests/css3/compositing/blend-mode-transform-style.html	                        (rev 0)
+++ trunk/LayoutTests/css3/compositing/blend-mode-transform-style.html	2014-02-25 10:16:04 UTC (rev 164640)
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML>
+<style>
+    div {
+        width: 100px;
+        height: 100px;
+    }
+    .noblender {
+        -webkit-mix-blend-mode: normal;
+    }
+    .blender {
+        -webkit-mix-blend-mode: difference;
+    }
+</style>
+<p>Test that an element with -webkit-mix-blend-mode other than normal forces the computed value of transform-style to flat.</p>
+<div id="blend-mode-normal-with-transform-style-preserve-3d" class="noblender" style="-webkit-transform-style: preserve-3d;"></div>
+<div id="blending-with-transform-style-preserve-3d" class="blender" style="-webkit-transform-style: preserve-3d;"></div>
+<div id="blending-with-transform-style-flat" class="blender" style="-webkit-transform-style: flat;"></div>
+<script src=""
+<script>
+    function getTransformStyle(elementID) {
+        return getComputedStyle(document.getElementById(elementID)).webkitTransformStyle;
+    }
+
+    function test(id, expected) {
+        shouldBeEqualToString('getTransformStyle("' + id + '")', expected);
+    }
+
+    test("blend-mode-normal-with-transform-style-preserve-3d", "preserve-3d");
+    test("blending-with-transform-style-preserve-3d", "flat");
+    test("blending-with-transform-style-flat", "flat");
+</script>

Modified: trunk/Source/WebCore/ChangeLog (164639 => 164640)


--- trunk/Source/WebCore/ChangeLog	2014-02-25 10:05:38 UTC (rev 164639)
+++ trunk/Source/WebCore/ChangeLog	2014-02-25 10:16:04 UTC (rev 164640)
@@ -1,3 +1,18 @@
+2014-02-25  Mihai Tica  <[email protected]>
+
+        [CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
+        https://bugs.webkit.org/show_bug.cgi?id=126158
+
+        Reviewed by Mihnea Ovidenie.
+
+        As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
+        should force transform-style: flat.
+
+        Test: css3/compositing/blend-mode-transform-style.html
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.
+
 2014-02-25  Zan Dobersek  <[email protected]>
 
         Move to using std::unique_ptr for Element, Node and related classes

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (164639 => 164640)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2014-02-25 10:05:38 UTC (rev 164639)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2014-02-25 10:16:04 UTC (rev 164640)
@@ -1328,7 +1328,8 @@
     // FIXME: when dropping the -webkit prefix on transform-style, we should also have opacity < 1 cause flattening.
     if (style.preserves3D() && (style.overflowX() != OVISIBLE
         || style.overflowY() != OVISIBLE
-        || style.hasFilter()))
+        || style.hasFilter()
+        || style.hasBlendMode()))
         style.setTransformStyle3D(TransformStyle3DFlat);
 
     adjustGridItemPosition(style, parentStyle);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to