diff --git a/components/style/properties/declaration_block.rs b/components/style/properties/declaration_block.rs index 721396e8b3a..9d76adf1383 100644 --- a/components/style/properties/declaration_block.rs +++ b/components/style/properties/declaration_block.rs @@ -15,6 +15,7 @@ use std::fmt; use style_traits::ToCss; use stylesheets::Origin; use super::*; +#[cfg(feature = "gecko")] use properties::animated_properties::AnimationValueMap; /// A declaration [importance][importance]. /// @@ -341,6 +342,24 @@ impl PropertyDeclarationBlock { } } } + + /// Convert AnimationValueMap to PropertyDeclarationBlock. + #[cfg(feature = "gecko")] + pub fn from_animation_value_map(animation_value_map: &AnimationValueMap) -> Self { + let mut declarations = vec![]; + let mut longhands = LonghandIdSet::new(); + + for (property, animation_value) in animation_value_map.iter() { + longhands.set_transition_property_bit(property); + declarations.push((animation_value.uncompute(), Importance::Normal)); + } + + PropertyDeclarationBlock { + declarations: declarations, + important_count: 0, + longhands: longhands, + } + } } impl ToCss for PropertyDeclarationBlock {