aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_thread/dom_wrapper.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_thread/dom_wrapper.rs')
-rw-r--r--components/layout_thread/dom_wrapper.rs55
1 files changed, 15 insertions, 40 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs
index b477a653188..3d3f50317a9 100644
--- a/components/layout_thread/dom_wrapper.rs
+++ b/components/layout_thread/dom_wrapper.rs
@@ -72,6 +72,7 @@ use std::fmt::Debug;
use std::hash::{Hash, Hasher};
use std::sync::atomic::Ordering;
use std::sync::Arc as StdArc;
+use style::animation::AnimationSetKey;
use style::applicable_declarations::ApplicableDeclarationBlock;
use style::attr::AttrValue;
use style::context::SharedStyleContext;
@@ -474,20 +475,11 @@ impl<'le> TElement for ServoLayoutElement<'le> {
) -> Option<Arc<StyleLocked<PropertyDeclarationBlock>>> {
let node = self.as_node();
let document = node.owner_doc();
- context
- .animation_states
- .read()
- .get(&node.opaque())
- .and_then(|set| {
- set.get_value_map_for_active_animations(context.current_time_for_animations)
- })
- .map(|map| {
- Arc::new(
- document
- .style_shared_lock()
- .wrap(PropertyDeclarationBlock::from_animation_value_map(&map)),
- )
- })
+ context.animations.get_animation_declarations(
+ &AnimationSetKey(node.opaque()),
+ context.current_time_for_animations,
+ document.style_shared_lock(),
+ )
}
fn transition_rule(
@@ -496,20 +488,11 @@ impl<'le> TElement for ServoLayoutElement<'le> {
) -> Option<Arc<StyleLocked<PropertyDeclarationBlock>>> {
let node = self.as_node();
let document = node.owner_doc();
- context
- .animation_states
- .read()
- .get(&node.opaque())
- .and_then(|set| {
- set.get_value_map_for_active_transitions(context.current_time_for_animations)
- })
- .map(|map| {
- Arc::new(
- document
- .style_shared_lock()
- .wrap(PropertyDeclarationBlock::from_animation_value_map(&map)),
- )
- })
+ context.animations.get_transition_declarations(
+ &AnimationSetKey(node.opaque()),
+ context.current_time_for_animations,
+ document.style_shared_lock(),
+ )
}
fn state(&self) -> ElementState {
@@ -634,21 +617,13 @@ impl<'le> TElement for ServoLayoutElement<'le> {
}
fn has_css_animations(&self, context: &SharedStyleContext) -> bool {
- context
- .animation_states
- .read()
- .get(&self.as_node().opaque())
- .map(|set| set.has_active_animation())
- .unwrap_or(false)
+ let key = AnimationSetKey(self.as_node().opaque());
+ context.animations.has_active_animations(&key)
}
fn has_css_transitions(&self, context: &SharedStyleContext) -> bool {
- context
- .animation_states
- .read()
- .get(&self.as_node().opaque())
- .map(|set| set.has_active_transition())
- .unwrap_or(false)
+ let key = AnimationSetKey(self.as_node().opaque());
+ context.animations.has_active_transitions(&key)
}
#[inline]