From ccf08bceadc30a4eda812fa5ecfb567d654cd4e6 Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Tue, 13 Jun 2017 10:37:38 +0900 Subject: [PATCH 1/5] Preserve the unit when interpolating/adding angles with matching units. If the units of two angles being interpolated/added matches, we should preserve the original unit; otherwise, we fall back to radians. This matches the behavior of Gecko. --- .../helpers/animated_properties.mako.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs index 6422149fb1d..def7bcb9ffe 100644 --- a/components/style/properties/helpers/animated_properties.mako.rs +++ b/components/style/properties/helpers/animated_properties.mako.rs @@ -936,9 +936,20 @@ impl Animatable for i32 { impl Animatable for Angle { #[inline] fn add_weighted(&self, other: &Angle, self_portion: f64, other_portion: f64) -> Result { - self.radians() - .add_weighted(&other.radians(), self_portion, other_portion) - .map(Angle::from_radians) + match (*self, *other) { + % for angle_type in [ 'Degree', 'Gradian', 'Turn' ]: + (Angle::${angle_type}(val1), Angle::${angle_type}(val2)) => { + Ok(Angle::${angle_type}( + try!(val1.add_weighted(&val2, self_portion, other_portion)) + )) + } + % endfor + _ => { + self.radians() + .add_weighted(&other.radians(), self_portion, other_portion) + .map(Angle::from_radians) + } + } } } From 0ca9a01be4b92ee8f9cdf6c650691008b42bedeb Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Tue, 13 Jun 2017 10:42:14 +0900 Subject: [PATCH 2/5] Add function which convert from URLValueData to SpecifiedUrl. We will need to convert from URLValueData to SpecifiedUrl when cloning the stylo's data from gecko's data. Because the filter structure on gecko has url as URLValue type. We will use this convert function when interpolating as discrete also(Bug 1368610). --- components/style/gecko/url.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs index 192d43ef5a1..bafab1c31d9 100644 --- a/components/style/gecko/url.rs +++ b/components/style/gecko/url.rs @@ -5,6 +5,7 @@ //! Common handling for the specified value CSS url() values. use gecko_bindings::structs::{ServoBundledURI, URLExtraData}; +use gecko_bindings::structs::mozilla::css::URLValueData; use gecko_bindings::structs::root::mozilla::css::ImageValue; use gecko_bindings::sugar::refptr::RefPtr; use parser::ParserContext; @@ -51,6 +52,16 @@ impl SpecifiedUrl { false } + /// Convert from URLValueData to SpecifiedUrl. + pub unsafe fn from_url_value_data(url: &URLValueData) + -> Result { + Ok(SpecifiedUrl { + serialization: Arc::new(url.mString.to_string()), + extra_data: url.mExtraData.to_safe(), + image_value: None, + }) + } + /// Returns true if this URL looks like a fragment. /// See https://drafts.csswg.org/css-values/#local-urls pub fn is_fragment(&self) -> bool { From 87e580a33d91947553fd071cb989be55f39a870f Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Tue, 13 Jun 2017 10:42:57 +0900 Subject: [PATCH 3/5] Make filter property animatable. --- components/style/properties/gecko.mako.rs | 106 +++++++--- .../helpers/animated_properties.mako.rs | 198 +++++++++++++++++- .../style/properties/longhand/effects.mako.rs | 3 +- 3 files changed, 274 insertions(+), 33 deletions(-) diff --git a/components/style/properties/gecko.mako.rs b/components/style/properties/gecko.mako.rs index b0953f9a1d9..acd43354b06 100644 --- a/components/style/properties/gecko.mako.rs +++ b/components/style/properties/gecko.mako.rs @@ -3434,6 +3434,15 @@ fn static_assert() { } } + <% + # This array is several filter function which has percentage or + # number value for function of clone / set. + # The setting / cloning process of other function(e.g. Blur / HueRotate) is + # different from these function. So this array don't include such function. + FILTER_FUNCTIONS = [ 'Brightness', 'Contrast', 'Grayscale', 'Invert', + 'Opacity', 'Saturate', 'Sepia' ] + %> + pub fn set_filter(&mut self, v: longhands::filter::computed_value::T) { use properties::longhands::filter::computed_value::Filter::*; use gecko_bindings::structs::nsCSSShadowArray; @@ -3460,35 +3469,20 @@ fn static_assert() { debug_assert!(v.filters.len() == self.gecko.mFilters.len()); for (servo, gecko_filter) in v.filters.into_iter().zip(self.gecko.mFilters.iter_mut()) { - //TODO: URL, drop-shadow match servo { - Blur(len) => fill_filter(NS_STYLE_FILTER_BLUR, - CoordDataValue::Coord(len.0), - gecko_filter), - Brightness(factor) => fill_filter(NS_STYLE_FILTER_BRIGHTNESS, - CoordDataValue::Factor(factor), - gecko_filter), - Contrast(factor) => fill_filter(NS_STYLE_FILTER_CONTRAST, - CoordDataValue::Factor(factor), - gecko_filter), - Grayscale(factor) => fill_filter(NS_STYLE_FILTER_GRAYSCALE, - CoordDataValue::Factor(factor), - gecko_filter), - HueRotate(angle) => fill_filter(NS_STYLE_FILTER_HUE_ROTATE, - CoordDataValue::from(angle), - gecko_filter), - Invert(factor) => fill_filter(NS_STYLE_FILTER_INVERT, - CoordDataValue::Factor(factor), - gecko_filter), - Opacity(factor) => fill_filter(NS_STYLE_FILTER_OPACITY, - CoordDataValue::Factor(factor), - gecko_filter), - Saturate(factor) => fill_filter(NS_STYLE_FILTER_SATURATE, - CoordDataValue::Factor(factor), - gecko_filter), - Sepia(factor) => fill_filter(NS_STYLE_FILTER_SEPIA, - CoordDataValue::Factor(factor), - gecko_filter), + % for func in FILTER_FUNCTIONS: + ${func}(factor) => fill_filter(NS_STYLE_FILTER_${func.upper()}, + CoordDataValue::Factor(factor), + gecko_filter), + % endfor + Blur(length) => fill_filter(NS_STYLE_FILTER_BLUR, + CoordDataValue::Coord(length.0), + gecko_filter), + + HueRotate(angle) => fill_filter(NS_STYLE_FILTER_HUE_ROTATE, + CoordDataValue::from(angle), + gecko_filter), + DropShadow(shadow) => { gecko_filter.mType = NS_STYLE_FILTER_DROP_SHADOW; @@ -3504,12 +3498,12 @@ fn static_assert() { let mut gecko_shadow = init_shadow(gecko_filter); gecko_shadow.mArray[0].set_from_shadow(shadow); - } + }, Url(ref url) => { unsafe { bindings::Gecko_nsStyleFilter_SetURLValue(gecko_filter, url.for_ffi()); } - } + }, } } } @@ -3519,6 +3513,58 @@ fn static_assert() { Gecko_CopyFiltersFrom(&other.gecko as *const _ as *mut _, &mut self.gecko); } } + + pub fn clone_filter(&self) -> longhands::filter::computed_value::T { + use properties::longhands::filter::computed_value::Filter::*; + use values::specified::url::SpecifiedUrl; + use gecko_bindings::structs::NS_STYLE_FILTER_BLUR; + use gecko_bindings::structs::NS_STYLE_FILTER_BRIGHTNESS; + use gecko_bindings::structs::NS_STYLE_FILTER_CONTRAST; + use gecko_bindings::structs::NS_STYLE_FILTER_GRAYSCALE; + use gecko_bindings::structs::NS_STYLE_FILTER_INVERT; + use gecko_bindings::structs::NS_STYLE_FILTER_OPACITY; + use gecko_bindings::structs::NS_STYLE_FILTER_SATURATE; + use gecko_bindings::structs::NS_STYLE_FILTER_SEPIA; + use gecko_bindings::structs::NS_STYLE_FILTER_HUE_ROTATE; + use gecko_bindings::structs::NS_STYLE_FILTER_DROP_SHADOW; + use gecko_bindings::structs::NS_STYLE_FILTER_URL; + + let mut filters = Vec::new(); + for filter in self.gecko.mFilters.iter(){ + match filter.mType { + % for func in FILTER_FUNCTIONS: + NS_STYLE_FILTER_${func.upper()} => { + filters.push(${func}( + GeckoStyleCoordConvertible::from_gecko_style_coord( + &filter.mFilterParameter).unwrap())); + }, + % endfor + NS_STYLE_FILTER_BLUR => { + filters.push(Blur(Au::from_gecko_style_coord( + &filter.mFilterParameter).unwrap())); + }, + NS_STYLE_FILTER_HUE_ROTATE => { + filters.push(HueRotate( + GeckoStyleCoordConvertible::from_gecko_style_coord( + &filter.mFilterParameter).unwrap())); + }, + NS_STYLE_FILTER_DROP_SHADOW => { + filters.push(unsafe { + DropShadow((**filter.__bindgen_anon_1.mDropShadow.as_ref()).mArray[0].to_shadow()) + }); + }, + NS_STYLE_FILTER_URL => { + filters.push(unsafe { + (Url(SpecifiedUrl::from_url_value_data( + &(**filter.__bindgen_anon_1.mURL.as_ref())._base).unwrap())) + }); + } + _ => {}, + } + } + longhands::filter::computed_value::T::new(filters) + } + <%self:impl_trait style_struct_name="InheritedBox" diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs index def7bcb9ffe..3b0a9860ab1 100644 --- a/components/style/properties/helpers/animated_properties.mako.rs +++ b/components/style/properties/helpers/animated_properties.mako.rs @@ -14,9 +14,12 @@ use euclid::{Point2D, Size2D}; #[cfg(feature = "gecko")] use gecko_bindings::structs::nsCSSPropertyID; #[cfg(feature = "gecko")] use gecko_bindings::sugar::ownership::{HasFFI, HasSimpleFFI}; #[cfg(feature = "gecko")] use gecko_string_cache::Atom; +#[cfg(feature = "gecko")] use gecko::url::SpecifiedUrl; use properties::{CSSWideKeyword, PropertyDeclaration}; use properties::longhands; use properties::longhands::background_size::computed_value::T as BackgroundSizeList; +use properties::longhands::filter::computed_value::Filter; +use properties::longhands::filter::computed_value::T as Filters; use properties::longhands::font_weight::computed_value::T as FontWeight; use properties::longhands::font_stretch::computed_value::T as FontStretch; use properties::longhands::text_shadow::computed_value::T as TextShadowList; @@ -3016,7 +3019,7 @@ impl Animatable for IntermediateSVGPaintKind { #[cfg_attr(feature = "servo", derive(HeapSizeOf))] #[allow(missing_docs)] /// Intermediate type for box-shadow and text-shadow. -/// The difference between normal shadow type is that this type uses +/// The difference from normal shadow type is that this type uses /// IntermediateColor instead of ParserColor. pub struct IntermediateShadow { pub offset_x: Au, @@ -3192,3 +3195,196 @@ impl Animatable for IntermediateShadowList { Ok(IntermediateShadowList(result)) } } + +/// Intermediate type for filter property. +/// The difference from normal filter type is that this structure uses +/// IntermediateColor into DropShadow's value. +pub type IntermediateFilters = Vec; + +#[derive(Clone, PartialEq, Debug)] +#[cfg_attr(feature = "servo", derive(HeapSizeOf))] +#[allow(missing_docs)] +pub enum IntermediateFilter { + Blur(Au), + Brightness(CSSFloat), + Contrast(CSSFloat), + Grayscale(CSSFloat), + HueRotate(Angle), + Invert(CSSFloat), + Opacity(CSSFloat), + Saturate(CSSFloat), + Sepia(CSSFloat), + % if product == "gecko": + DropShadow(IntermediateShadow), + Url(SpecifiedUrl), + % endif +} + +impl From for IntermediateFilters { + fn from(filters: Filters) -> IntermediateFilters { + filters.filters.into_iter().map(|f| f.into()).collect() + } +} + +impl From for Filters { + fn from(filters: IntermediateFilters) -> Filters { + Filters::new(filters.into_iter().map(|f| f.into()).collect()) + } +} + +<% + FILTER_FUNCTIONS = [ 'Blur', 'Brightness', 'Contrast', 'Grayscale', + 'HueRotate', 'Invert', 'Opacity', 'Saturate', + 'Sepia' ] +%> + +impl From for IntermediateFilter { + fn from(filter: Filter) -> IntermediateFilter { + use properties::longhands::filter::computed_value::Filter::*; + match filter { + % for func in FILTER_FUNCTIONS: + ${func}(val) => IntermediateFilter::${func}(val), + % endfor + % if product == "gecko": + DropShadow(shadow) => { + IntermediateFilter::DropShadow(shadow.into()) + }, + Url(ref url) => { + IntermediateFilter::Url(url.clone()) + }, + % endif + } + } +} + +impl From for Filter { + fn from(filter: IntermediateFilter) -> Filter { + match filter { + % for func in FILTER_FUNCTIONS: + IntermediateFilter::${func}(val) => Filter::${func}(val), + % endfor + % if product == "gecko": + IntermediateFilter::DropShadow(shadow) => { + Filter::DropShadow(shadow.into()) + }, + IntermediateFilter::Url(ref url) => { + Filter::Url(url.clone()) + }, + % endif + } + } +} + +/// https://drafts.fxtf.org/filters/#animation-of-filters +fn add_weighted_filter_function_impl(from: &IntermediateFilter, + to: &IntermediateFilter, + self_portion: f64, + other_portion: f64) + -> Result { + match (from, to) { + % for func in [ 'Blur', 'HueRotate' ]: + (&IntermediateFilter::${func}(from_value), + &IntermediateFilter::${func}(to_value)) => { + Ok(IntermediateFilter::${func}( + try!(from_value.add_weighted(&to_value, + self_portion, + other_portion)))) + }, + % endfor + % for func in [ 'Grayscale', 'Invert', 'Sepia' ]: + (&IntermediateFilter::${func}(from_value), + &IntermediateFilter::${func}(to_value)) => { + Ok(IntermediateFilter::${func}(try!( + add_weighted_with_initial_val(&from_value, + &to_value, + self_portion, + other_portion, + &0.0)))) + }, + % endfor + % for func in [ 'Brightness', 'Contrast', 'Opacity', 'Saturate' ]: + (&IntermediateFilter::${func}(from_value), + &IntermediateFilter::${func}(to_value)) => { + Ok(IntermediateFilter::${func}(try!( + add_weighted_with_initial_val(&from_value, + &to_value, + self_portion, + other_portion, + &1.0)))) + }, + % endfor + % if product == "gecko": + (&IntermediateFilter::DropShadow(from_value), + &IntermediateFilter::DropShadow(to_value)) => { + Ok(IntermediateFilter::DropShadow(try!( + from_value.add_weighted(&to_value, + self_portion, + other_portion)))) + }, + (&IntermediateFilter::Url(_), + &IntermediateFilter::Url(_)) => { + Err(()) + }, + % endif + _ => { + // If specified the different filter functions, + // we will need to interpolate as discreate. + Err(()) + }, + } +} + +/// https://drafts.fxtf.org/filters/#animation-of-filters +fn add_weighted_filter_function(from: Option<<&IntermediateFilter>, + to: Option<<&IntermediateFilter>, + self_portion: f64, + other_portion: f64) -> Result { + match (from, to) { + (Some(f), Some(t)) => { + add_weighted_filter_function_impl(f, t, self_portion, other_portion) + }, + (Some(f), None) => { + add_weighted_filter_function_impl(f, f, self_portion, 0.0) + }, + (None, Some(t)) => { + add_weighted_filter_function_impl(t, t, other_portion, 0.0) + }, + _ => { Err(()) } + } +} + + +impl Animatable for IntermediateFilters { + #[inline] + fn add_weighted(&self, other: &Self, + self_portion: f64, other_portion: f64) -> Result { + let mut filters: IntermediateFilters = Vec::new(); + let mut from_iter = self.iter(); + let mut to_iter = (&other).iter(); + + let mut from = from_iter.next(); + let mut to = to_iter.next(); + while (from,to) != (None, None) { + filters.push(try!(add_weighted_filter_function(from, + to, + self_portion, + other_portion))); + if from != None { + from = from_iter.next(); + } + if to != None { + to = to_iter.next(); + } + } + + Ok(filters) + } + + fn add(&self, other: &Self) -> Result { + let from_list = &self; + let to_list = &other; + let filters: IntermediateFilters = + vec![&from_list[..], &to_list[..]].concat(); + Ok(filters) + } +} diff --git a/components/style/properties/longhand/effects.mako.rs b/components/style/properties/longhand/effects.mako.rs index 31f601fb6c4..5085731cd00 100644 --- a/components/style/properties/longhand/effects.mako.rs +++ b/components/style/properties/longhand/effects.mako.rs @@ -41,8 +41,7 @@ ${helpers.predefined_type("clip", allow_quirks=True, spec="https://drafts.fxtf.org/css-masking/#clip-property")} -// FIXME: This prop should be animatable -<%helpers:longhand name="filter" animation_value_type="none" extra_prefixes="webkit" +<%helpers:longhand name="filter" animation_value_type="IntermediateFilters" extra_prefixes="webkit" flags="CREATES_STACKING_CONTEXT FIXPOS_CB" spec="https://drafts.fxtf.org/filters/#propdef-filter"> //pub use self::computed_value::T as SpecifiedValue; From b9f6994dccfc550259a220fa4630e4536fa5c72d Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Tue, 13 Jun 2017 10:43:34 +0900 Subject: [PATCH 4/5] Add compute distance for Filter. --- .../helpers/animated_properties.mako.rs | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/components/style/properties/helpers/animated_properties.mako.rs b/components/style/properties/helpers/animated_properties.mako.rs index 3b0a9860ab1..0e7db04bbf7 100644 --- a/components/style/properties/helpers/animated_properties.mako.rs +++ b/components/style/properties/helpers/animated_properties.mako.rs @@ -3353,6 +3353,27 @@ fn add_weighted_filter_function(from: Option<<&IntermediateFilter>, } } +fn compute_filter_square_distance(from: &IntermediateFilter, + to: &IntermediateFilter) + -> Result { + match (from, to) { + % for func in FILTER_FUNCTIONS : + (&IntermediateFilter::${func}(f), + &IntermediateFilter::${func}(t)) => { + Ok(try!(f.compute_squared_distance(&t))) + }, + % endfor + % if product == "gecko": + (&IntermediateFilter::DropShadow(f), + &IntermediateFilter::DropShadow(t)) => { + Ok(try!(f.compute_squared_distance(&t))) + }, + % endif + _ => { + Err(()) + } + } +} impl Animatable for IntermediateFilters { #[inline] @@ -3387,4 +3408,44 @@ impl Animatable for IntermediateFilters { vec![&from_list[..], &to_list[..]].concat(); Ok(filters) } + + #[inline] + fn compute_distance(&self, other: &Self) -> Result { + self.compute_squared_distance(other).map(|sd| sd.sqrt()) + } + + #[inline] + fn compute_squared_distance(&self, other: &Self) -> Result { + let mut square_distance: f64 = 0.0; + let mut from_iter = self.iter(); + let mut to_iter = (&other).iter(); + + let mut from = from_iter.next(); + let mut to = to_iter.next(); + while (from,to) != (None, None) { + let current_square_distance: f64 ; + if from == None { + let none = try!(add_weighted_filter_function(to, to, 0.0, 0.0)); + current_square_distance = + compute_filter_square_distance(&none, &(to.unwrap())).unwrap(); + + to = to_iter.next(); + } else if to == None { + let none = try!(add_weighted_filter_function(from, from, 0.0, 0.0)); + current_square_distance = + compute_filter_square_distance(&none, &(from.unwrap())).unwrap(); + + from = from_iter.next(); + } else { + current_square_distance = + compute_filter_square_distance(&(from.unwrap()), + &(to.unwrap())).unwrap(); + + from = from_iter.next(); + to = to_iter.next(); + } + square_distance += current_square_distance; + } + Ok(square_distance.sqrt()) + } } From d32948c46abc6e37e1c341801e94873c96154db7 Mon Sep 17 00:00:00 2001 From: Mantaroh Yoshinaga Date: Thu, 15 Jun 2017 15:52:43 +0900 Subject: [PATCH 5/5] Add the disable anotation of filter's css-tests in order to skip timeout fail. --- .../html/css-filters-animation-blur.htm.ini | 3 +++ .../html/css-filters-animation-brightness.htm.ini | 2 +- .../html/css-filters-animation-combined-001.htm.ini | 2 +- .../html/css-filters-animation-contrast.htm.ini | 2 +- .../html/css-filters-animation-drop-shadow.htm.ini | 3 +++ .../html/css-filters-animation-grayscale.htm.ini | 2 +- .../html/css-filters-animation-hue-rotate.htm.ini | 2 +- .../html/css-filters-animation-invert.htm.ini | 2 +- .../html/css-filters-animation-opacity.htm.ini | 2 +- .../html/css-filters-animation-saturate.htm.ini | 2 +- .../html/css-filters-animation-sepia.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-blur.htm.ini | 3 +++ .../html/css-filters-animation-brightness.htm.ini | 2 +- .../html/css-filters-animation-combined-001.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-contrast.htm.ini | 2 +- .../html/css-filters-animation-drop-shadow.htm.ini | 3 +++ .../filters-1_dev/html/css-filters-animation-grayscale.htm.ini | 2 +- .../html/css-filters-animation-hue-rotate.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-invert.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-opacity.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-saturate.htm.ini | 2 +- .../filters-1_dev/html/css-filters-animation-sepia.htm.ini | 2 +- 22 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-blur.htm.ini create mode 100644 tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-drop-shadow.htm.ini create mode 100644 tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-blur.htm.ini create mode 100644 tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-drop-shadow.htm.ini diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-blur.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-blur.htm.ini new file mode 100644 index 00000000000..2d8f81291c5 --- /dev/null +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-blur.htm.ini @@ -0,0 +1,3 @@ +[css-filters-animation-blur.htm] + type: reftest + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-brightness.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-brightness.htm.ini index ee26622e1e9..3dc827dc69d 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-brightness.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-brightness.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-brightness.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-combined-001.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-combined-001.htm.ini index 28deb704c45..d62240fa11b 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-combined-001.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-combined-001.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-combined-001.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-contrast.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-contrast.htm.ini index d52d16992b2..01714a3def8 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-contrast.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-contrast.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-contrast.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-drop-shadow.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-drop-shadow.htm.ini new file mode 100644 index 00000000000..8797eebf2bd --- /dev/null +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-drop-shadow.htm.ini @@ -0,0 +1,3 @@ +[css-filters-animation-drop-shadow.htm] + type: reftest + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-grayscale.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-grayscale.htm.ini index 6c13386c640..4e569b1cc3b 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-grayscale.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-grayscale.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-grayscale.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-hue-rotate.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-hue-rotate.htm.ini index 127432c6e59..a35be414e43 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-hue-rotate.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-hue-rotate.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-hue-rotate.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-invert.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-invert.htm.ini index f53e2078a80..e2425dcdb6f 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-invert.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-invert.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-invert.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-opacity.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-opacity.htm.ini index 64acd803cde..fa9c0e504cc 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-opacity.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-opacity.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-opacity.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-saturate.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-saturate.htm.ini index f16ce7b3445..6eb8b2a17df 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-saturate.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-saturate.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-saturate.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-sepia.htm.ini b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-sepia.htm.ini index b0cf90b727b..1b5ab18d25f 100644 --- a/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-sepia.htm.ini +++ b/tests/wpt/metadata-css/css-animations-1_dev/html/css-filters-animation-sepia.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-sepia.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-blur.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-blur.htm.ini new file mode 100644 index 00000000000..2d8f81291c5 --- /dev/null +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-blur.htm.ini @@ -0,0 +1,3 @@ +[css-filters-animation-blur.htm] + type: reftest + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-brightness.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-brightness.htm.ini index ee26622e1e9..3dc827dc69d 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-brightness.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-brightness.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-brightness.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-combined-001.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-combined-001.htm.ini index 28deb704c45..d62240fa11b 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-combined-001.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-combined-001.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-combined-001.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-contrast.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-contrast.htm.ini index d52d16992b2..01714a3def8 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-contrast.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-contrast.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-contrast.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-drop-shadow.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-drop-shadow.htm.ini new file mode 100644 index 00000000000..8797eebf2bd --- /dev/null +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-drop-shadow.htm.ini @@ -0,0 +1,3 @@ +[css-filters-animation-drop-shadow.htm] + type: reftest + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-grayscale.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-grayscale.htm.ini index 6c13386c640..4e569b1cc3b 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-grayscale.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-grayscale.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-grayscale.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-hue-rotate.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-hue-rotate.htm.ini index 127432c6e59..a35be414e43 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-hue-rotate.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-hue-rotate.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-hue-rotate.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-invert.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-invert.htm.ini index f53e2078a80..e2425dcdb6f 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-invert.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-invert.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-invert.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-opacity.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-opacity.htm.ini index 64acd803cde..fa9c0e504cc 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-opacity.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-opacity.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-opacity.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-saturate.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-saturate.htm.ini index f16ce7b3445..6eb8b2a17df 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-saturate.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-saturate.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-saturate.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335 diff --git a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-sepia.htm.ini b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-sepia.htm.ini index b0cf90b727b..1b5ab18d25f 100644 --- a/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-sepia.htm.ini +++ b/tests/wpt/metadata-css/filters-1_dev/html/css-filters-animation-sepia.htm.ini @@ -1,3 +1,3 @@ [css-filters-animation-sepia.htm] type: reftest - expected: FAIL + disabled: https://github.com/servo/servo/issues/17335