Title: [138833] trunk
Revision
138833
Author
mikelawt...@chromium.org
Date
2013-01-04 12:32:35 -0800 (Fri, 04 Jan 2013)

Log Message

CSS3 calc: working with translate and scale transforms
https://bugs.webkit.org/show_bug.cgi?id=105985

Reviewed by Ojan Vafai.

Source/WebCore:

Allow convertTo[Float|Int]Length functions to process calculated values.

Tests: css3/calc/transforms-scale.html
       css3/calc/transforms-translate.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::convertToIntLength):
(WebCore::StyleResolver::convertToFloatLength):

LayoutTests:

* css3/calc/transforms-scale-expected.html: Added.
* css3/calc/transforms-scale.html: Added.
* css3/calc/transforms-translate-expected.html: Added.
* css3/calc/transforms-translate.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (138832 => 138833)


--- trunk/LayoutTests/ChangeLog	2013-01-04 20:30:06 UTC (rev 138832)
+++ trunk/LayoutTests/ChangeLog	2013-01-04 20:32:35 UTC (rev 138833)
@@ -1,3 +1,15 @@
+2013-01-04  Mike Lawther  <mikelawt...@chromium.org>
+
+        CSS3 calc: working with translate and scale transforms
+        https://bugs.webkit.org/show_bug.cgi?id=105985
+
+        Reviewed by Ojan Vafai.
+
+        * css3/calc/transforms-scale-expected.html: Added.
+        * css3/calc/transforms-scale.html: Added.
+        * css3/calc/transforms-translate-expected.html: Added.
+        * css3/calc/transforms-translate.html: Added.
+
 2013-01-04  Elliott Sprehn  <espr...@chromium.org>
 
         PseudoElement should never dispatch events

Added: trunk/LayoutTests/css3/calc/transforms-scale-expected.html (0 => 138833)


--- trunk/LayoutTests/css3/calc/transforms-scale-expected.html	                        (rev 0)
+++ trunk/LayoutTests/css3/calc/transforms-scale-expected.html	2013-01-04 20:32:35 UTC (rev 138833)
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<style>
+  div {
+    width:100px;
+    height:100px;
+    margin:50px;
+    background-color:green;  	
+  }
+
+  #scalex {
+    -webkit-transform: scalex(1.5);
+  }
+  #scaley {
+    -webkit-transform: scaley(0.75);
+  }
+</style>
+<div id="scalex">scale x</div>
+<div id="scaley">scale y</div>

Added: trunk/LayoutTests/css3/calc/transforms-scale.html (0 => 138833)


--- trunk/LayoutTests/css3/calc/transforms-scale.html	                        (rev 0)
+++ trunk/LayoutTests/css3/calc/transforms-scale.html	2013-01-04 20:32:35 UTC (rev 138833)
@@ -0,0 +1,18 @@
+<!DOCTYPE HTML>
+<style>
+  div {
+    width:100px;
+    height:100px;
+    margin:50px;
+    background-color:green;  	
+  }
+
+  #scalex {
+    -webkit-transform: scalex(-webkit-calc(3 / 2));
+  }
+  #scaley {
+    -webkit-transform: scaley(-webkit-calc(1 - 0.25));
+  }
+</style>
+<div id="scalex">scale x</div>
+<div id="scaley">scale y</div>

Added: trunk/LayoutTests/css3/calc/transforms-translate-expected.html (0 => 138833)


--- trunk/LayoutTests/css3/calc/transforms-translate-expected.html	                        (rev 0)
+++ trunk/LayoutTests/css3/calc/transforms-translate-expected.html	2013-01-04 20:32:35 UTC (rev 138833)
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<style>
+  div {
+    width:100px;
+    height:100px;
+    margin:50px;
+    background-color:green;  	
+  }
+
+  #translatex {
+    -webkit-transform: translatex(60px);
+  }
+  #translatey {
+    -webkit-transform: translatey(35px);
+  }
+  #translatez {
+    -webkit-transform: perspective(500px) translatez(100px);
+  }
+</style>
+<div id="translatex">translate x</div>
+<div id="translatey">translate y</div>
+<div id="translatez">translate z</div>

Added: trunk/LayoutTests/css3/calc/transforms-translate.html (0 => 138833)


--- trunk/LayoutTests/css3/calc/transforms-translate.html	                        (rev 0)
+++ trunk/LayoutTests/css3/calc/transforms-translate.html	2013-01-04 20:32:35 UTC (rev 138833)
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML>
+<style>
+  div {
+    width:100px;
+    height:100px;
+    margin:50px;
+    background-color:green;  	
+  }
+
+  #translatex {
+    -webkit-transform: translatex(-webkit-calc(50% + 10px));
+  }
+  #translatey {
+    -webkit-transform: translatey(-webkit-calc(40% - 5px));
+  }
+  #translatez {
+    -webkit-transform: perspective(-webkit-calc(100px * 5)) translatez(-webkit-calc(10px + 90px));
+  }
+</style>
+<div id="translatex">translate x</div>
+<div id="translatey">translate y</div>
+<div id="translatez">translate z</div>

Modified: trunk/Source/WebCore/ChangeLog (138832 => 138833)


--- trunk/Source/WebCore/ChangeLog	2013-01-04 20:30:06 UTC (rev 138832)
+++ trunk/Source/WebCore/ChangeLog	2013-01-04 20:32:35 UTC (rev 138833)
@@ -1,3 +1,19 @@
+2013-01-04  Mike Lawther  <mikelawt...@chromium.org>
+
+        CSS3 calc: working with translate and scale transforms
+        https://bugs.webkit.org/show_bug.cgi?id=105985
+
+        Reviewed by Ojan Vafai.
+
+        Allow convertTo[Float|Int]Length functions to process calculated values.
+
+        Tests: css3/calc/transforms-scale.html
+               css3/calc/transforms-translate.html
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::convertToIntLength):
+        (WebCore::StyleResolver::convertToFloatLength):
+
 2013-01-04  Elliott Sprehn  <espr...@chromium.org>
 
         PseudoElement should never dispatch events

Modified: trunk/Source/WebCore/css/StyleResolver.cpp (138832 => 138833)


--- trunk/Source/WebCore/css/StyleResolver.cpp	2013-01-04 20:30:06 UTC (rev 138832)
+++ trunk/Source/WebCore/css/StyleResolver.cpp	2013-01-04 20:32:35 UTC (rev 138833)
@@ -2291,12 +2291,12 @@
 
 Length StyleResolver::convertToIntLength(CSSPrimitiveValue* primitiveValue, RenderStyle* style, RenderStyle* rootStyle, double multiplier)
 {
-    return primitiveValue ? primitiveValue->convertToLength<FixedIntegerConversion | PercentConversion | FractionConversion | ViewportPercentageConversion>(style, rootStyle, multiplier) : Length(Undefined);
+    return primitiveValue ? primitiveValue->convertToLength<FixedIntegerConversion | PercentConversion | CalculatedConversion | FractionConversion | ViewportPercentageConversion>(style, rootStyle, multiplier) : Length(Undefined);
 }
 
 Length StyleResolver::convertToFloatLength(CSSPrimitiveValue* primitiveValue, RenderStyle* style, RenderStyle* rootStyle, double multiplier)
 {
-    return primitiveValue ? primitiveValue->convertToLength<FixedFloatConversion | PercentConversion | FractionConversion | ViewportPercentageConversion>(style, rootStyle, multiplier) : Length(Undefined);
+    return primitiveValue ? primitiveValue->convertToLength<FixedFloatConversion | PercentConversion | CalculatedConversion | FractionConversion | ViewportPercentageConversion>(style, rootStyle, multiplier) : Length(Undefined);
 }
 
 template <StyleResolver::StyleApplicationPass pass>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to