aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/csskeyframerule.rs
diff options
context:
space:
mode:
authoryvt <i@yvt.jp>2021-07-10 17:24:27 +0900
committeryvt <i@yvt.jp>2021-07-10 17:55:42 +0900
commit01a7de50ab1843d85295f9dccad7f4c099e7208c (patch)
treeee53fb6e8889deb7b880ee969e6c662e6128d210 /components/script/dom/csskeyframerule.rs
parentff8d2cdbbfc7a9dc7f38b7dd47cb350fde39388f (diff)
parent94b613fbdaa2b98f2179fc0bbda13c64e6fa0d38 (diff)
downloadservo-01a7de50ab1843d85295f9dccad7f4c099e7208c.tar.gz
servo-01a7de50ab1843d85295f9dccad7f4c099e7208c.zip
Merge remote-tracking branch 'upstream/master' into feat-cow-infra
`tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html` was reverted to the upstream version.
Diffstat (limited to 'components/script/dom/csskeyframerule.rs')
-rw-r--r--components/script/dom/csskeyframerule.rs62
1 files changed, 37 insertions, 25 deletions
diff --git a/components/script/dom/csskeyframerule.rs b/components/script/dom/csskeyframerule.rs
index d36e8988e04..281fc4b8e5e 100644
--- a/components/script/dom/csskeyframerule.rs
+++ b/components/script/dom/csskeyframerule.rs
@@ -1,32 +1,34 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-use dom::bindings::codegen::Bindings::CSSKeyframeRuleBinding::{self, CSSKeyframeRuleMethods};
-use dom::bindings::inheritance::Castable;
-use dom::bindings::js::{JS, MutNullableJS, Root};
-use dom::bindings::reflector::{DomObject, reflect_dom_object};
-use dom::bindings::str::DOMString;
-use dom::cssrule::{CSSRule, SpecificCSSRule};
-use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner};
-use dom::cssstylesheet::CSSStyleSheet;
-use dom::window::Window;
+use crate::dom::bindings::codegen::Bindings::CSSKeyframeRuleBinding::CSSKeyframeRuleMethods;
+use crate::dom::bindings::inheritance::Castable;
+use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
+use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
+use crate::dom::bindings::str::DOMString;
+use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
+use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner};
+use crate::dom::cssstylesheet::CSSStyleSheet;
+use crate::dom::window::Window;
use dom_struct::dom_struct;
-use std::sync::Arc;
-use style::keyframes::Keyframe;
+use servo_arc::Arc;
use style::shared_lock::{Locked, ToCssWithGuard};
+use style::stylesheets::keyframes_rule::Keyframe;
#[dom_struct]
pub struct CSSKeyframeRule {
cssrule: CSSRule,
- #[ignore_heap_size_of = "Arc"]
+ #[ignore_malloc_size_of = "Arc"]
keyframerule: Arc<Locked<Keyframe>>,
- style_decl: MutNullableJS<CSSStyleDeclaration>,
+ style_decl: MutNullableDom<CSSStyleDeclaration>,
}
impl CSSKeyframeRule {
- fn new_inherited(parent_stylesheet: &CSSStyleSheet, keyframerule: Arc<Locked<Keyframe>>)
- -> CSSKeyframeRule {
+ fn new_inherited(
+ parent_stylesheet: &CSSStyleSheet,
+ keyframerule: Arc<Locked<Keyframe>>,
+ ) -> CSSKeyframeRule {
CSSKeyframeRule {
cssrule: CSSRule::new_inherited(parent_stylesheet),
keyframerule: keyframerule,
@@ -35,23 +37,30 @@ impl CSSKeyframeRule {
}
#[allow(unrooted_must_root)]
- pub fn new(window: &Window, parent_stylesheet: &CSSStyleSheet,
- keyframerule: Arc<Locked<Keyframe>>) -> Root<CSSKeyframeRule> {
- reflect_dom_object(box CSSKeyframeRule::new_inherited(parent_stylesheet, keyframerule),
- window,
- CSSKeyframeRuleBinding::Wrap)
+ pub fn new(
+ window: &Window,
+ parent_stylesheet: &CSSStyleSheet,
+ keyframerule: Arc<Locked<Keyframe>>,
+ ) -> DomRoot<CSSKeyframeRule> {
+ reflect_dom_object(
+ Box::new(CSSKeyframeRule::new_inherited(
+ parent_stylesheet,
+ keyframerule,
+ )),
+ window,
+ )
}
}
impl CSSKeyframeRuleMethods for CSSKeyframeRule {
// https://drafts.csswg.org/css-animations/#dom-csskeyframerule-style
- fn Style(&self) -> Root<CSSStyleDeclaration> {
+ fn Style(&self) -> DomRoot<CSSStyleDeclaration> {
self.style_decl.or_init(|| {
let guard = self.cssrule.shared_lock().read();
CSSStyleDeclaration::new(
self.global().as_window(),
CSSStyleOwner::CSSRule(
- JS::from_ref(self.upcast()),
+ Dom::from_ref(self.upcast()),
self.keyframerule.read_with(&guard).block.clone(),
),
None,
@@ -63,12 +72,15 @@ impl CSSKeyframeRuleMethods for CSSKeyframeRule {
impl SpecificCSSRule for CSSKeyframeRule {
fn ty(&self) -> u16 {
- use dom::bindings::codegen::Bindings::CSSRuleBinding::CSSRuleConstants;
+ use crate::dom::bindings::codegen::Bindings::CSSRuleBinding::CSSRuleConstants;
CSSRuleConstants::KEYFRAME_RULE
}
fn get_css(&self) -> DOMString {
let guard = self.cssrule.shared_lock().read();
- self.keyframerule.read_with(&guard).to_css_string(&guard).into()
+ self.keyframerule
+ .read_with(&guard)
+ .to_css_string(&guard)
+ .into()
}
}