diff --git a/components/style/animation.rs b/components/style/animation.rs index b2a64a5fa5e6..ba833937f6ba 100644 --- a/components/style/animation.rs +++ b/components/style/animation.rs @@ -422,6 +422,11 @@ pub fn maybe_start_animations(context: &SharedStyleContex { let mut had_animations = false; + // FIXME(emilio): Implement animations for geckolib. + if !new_style.is_servo() { + return false; + } + let box_style = new_style.as_servo().get_box(); for (i, name) in box_style.animation_name.0.iter().enumerate() { debug!("maybe_start_animations: name={}", name); diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs index f73219afe0e0..bfdb6cd378f9 100644 --- a/components/style/properties/properties.mako.rs +++ b/components/style/properties/properties.mako.rs @@ -1259,6 +1259,7 @@ pub trait ComputedValues : Debug + Clone + Send + Sync + 'static { // yet - panics for non-Servo implementations. // // Used only for animations. Don't use it in other places. + fn is_servo(&self) -> bool; fn as_servo<'a>(&'a self) -> &'a ServoComputedValues; fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues; @@ -1310,7 +1311,11 @@ impl ComputedValues for ServoComputedValues { type Concrete${style_struct.trait_name} = style_structs::${style_struct.servo_struct_name}; % endfor + #[inline] + fn is_servo(&self) -> bool { true } + #[inline] fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { self } + #[inline] fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { self } fn new(custom_properties: Option>, diff --git a/ports/geckolib/properties.mako.rs b/ports/geckolib/properties.mako.rs index 94e8f794a898..c66598fa0d33 100644 --- a/ports/geckolib/properties.mako.rs +++ b/ports/geckolib/properties.mako.rs @@ -74,6 +74,7 @@ impl ComputedValues for GeckoComputedValues { % endfor // These will go away, and we will never implement them. + fn is_servo(&self) -> bool { false } fn as_servo<'a>(&'a self) -> &'a ServoComputedValues { unimplemented!() } fn as_servo_mut<'a>(&'a mut self) -> &'a mut ServoComputedValues { unimplemented!() }