Bug 1360659 - stylo: Use computed Angle in computed value of filter property draft
authorNazım Can Altınova <canaltinova@gmail.com>
Fri, 28 Apr 2017 21:15:51 +0300
changeset 570315 988b45cf8b62a89dfbb31863f706513b2e30c1fe
parent 570184 1c6fa11d1fed893b00d94b6a899c307262674613
child 570316 354f30f24aa814e7f0377d5abe9f6025365cf52f
child 570657 c90f055202194f375172b0d4d940304a3d46ace4
child 570658 d800b80d9943117ea8188dddbbd154f0da75196c
child 570671 130663b059917997d9f2a7d296f29adc421a6895
push id56457
push userbmo:canaltinova@gmail.com
push dateFri, 28 Apr 2017 18:46:47 +0000
bugs1360659
milestone55.0a1
Bug 1360659 - stylo: Use computed Angle in computed value of filter property Using specified Angle was wrong because it can keep calc value and serialize with calc(). Also that will allow us to pass angle unit later. MozReview-Commit-ID: 9v3cVMOmHGA
servo/components/style/properties/longhand/effects.mako.rs
--- a/servo/components/style/properties/longhand/effects.mako.rs
+++ b/servo/components/style/properties/longhand/effects.mako.rs
@@ -134,17 +134,17 @@
         Url(SpecifiedUrl),
         % endif
     }
 
     pub mod computed_value {
         use app_units::Au;
         use values::CSSFloat;
         use values::computed::{CSSColor, Shadow};
-        use values::specified::Angle;
+        use values::computed::Angle;
         use values::specified::url::SpecifiedUrl;
 
         #[derive(Clone, PartialEq, Debug)]
         #[cfg_attr(feature = "servo", derive(HeapSizeOf, Deserialize, Serialize))]
         pub enum Filter {
             Blur(Au),
             Brightness(CSSFloat),
             Contrast(CSSFloat),
@@ -377,17 +377,19 @@
         fn to_computed_value(&self, context: &Context) -> computed_value::T {
             computed_value::T{ filters: self.0.iter().map(|value| {
                 match *value {
                     SpecifiedFilter::Blur(ref factor) =>
                         computed_value::Filter::Blur(factor.to_computed_value(context)),
                     SpecifiedFilter::Brightness(factor) => computed_value::Filter::Brightness(factor),
                     SpecifiedFilter::Contrast(factor) => computed_value::Filter::Contrast(factor),
                     SpecifiedFilter::Grayscale(factor) => computed_value::Filter::Grayscale(factor),
-                    SpecifiedFilter::HueRotate(factor) => computed_value::Filter::HueRotate(factor),
+                    SpecifiedFilter::HueRotate(ref factor) => {
+                        computed_value::Filter::HueRotate(factor.to_computed_value(context))
+                    },
                     SpecifiedFilter::Invert(factor) => computed_value::Filter::Invert(factor),
                     SpecifiedFilter::Opacity(factor) => computed_value::Filter::Opacity(factor),
                     SpecifiedFilter::Saturate(factor) => computed_value::Filter::Saturate(factor),
                     SpecifiedFilter::Sepia(factor) => computed_value::Filter::Sepia(factor),
                     % if product == "gecko":
                     SpecifiedFilter::DropShadow(ref shadow) => {
                         computed_value::Filter::DropShadow(shadow.to_computed_value(context))
                     },
@@ -402,17 +404,19 @@
         fn from_computed_value(computed: &computed_value::T) -> Self {
             SpecifiedValue(computed.filters.iter().map(|value| {
                 match *value {
                     computed_value::Filter::Blur(factor) =>
                         SpecifiedFilter::Blur(ToComputedValue::from_computed_value(&factor)),
                     computed_value::Filter::Brightness(factor) => SpecifiedFilter::Brightness(factor),
                     computed_value::Filter::Contrast(factor) => SpecifiedFilter::Contrast(factor),
                     computed_value::Filter::Grayscale(factor) => SpecifiedFilter::Grayscale(factor),
-                    computed_value::Filter::HueRotate(factor) => SpecifiedFilter::HueRotate(factor),
+                    computed_value::Filter::HueRotate(ref factor) => {
+                        SpecifiedFilter::HueRotate(ToComputedValue::from_computed_value(factor))
+                    },
                     computed_value::Filter::Invert(factor) => SpecifiedFilter::Invert(factor),
                     computed_value::Filter::Opacity(factor) => SpecifiedFilter::Opacity(factor),
                     computed_value::Filter::Saturate(factor) => SpecifiedFilter::Saturate(factor),
                     computed_value::Filter::Sepia(factor) => SpecifiedFilter::Sepia(factor),
                     % if product == "gecko":
                     computed_value::Filter::DropShadow(ref shadow) => {
                         SpecifiedFilter::DropShadow(
                             ToComputedValue::from_computed_value(shadow),