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