diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2016-11-16 17:31:37 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2016-11-23 09:32:40 -0800 |
commit | 53c99662bce82d9975c1a91e66cfdf1197ff53a2 (patch) | |
tree | 6cd50acdb6edc9da4d7b43e4e7c5547536e88082 /components/script/dom/csskeyframesrule.rs | |
parent | 52a3a71be3d025f080bb5fe4603f517a5523aa5d (diff) | |
download | servo-53c99662bce82d9975c1a91e66cfdf1197ff53a2.tar.gz servo-53c99662bce82d9975c1a91e66cfdf1197ff53a2.zip |
Make parent stylesheet optional for CSSRules
Diffstat (limited to 'components/script/dom/csskeyframesrule.rs')
-rw-r--r-- | components/script/dom/csskeyframesrule.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs index 5a14f2c3acd..79cd7ce3e6f 100644 --- a/components/script/dom/csskeyframesrule.rs +++ b/components/script/dom/csskeyframesrule.rs @@ -27,7 +27,7 @@ pub struct CSSKeyframesRule { } impl CSSKeyframesRule { - fn new_inherited(parent: &CSSStyleSheet, keyframesrule: Arc<RwLock<KeyframesRule>>) -> CSSKeyframesRule { + fn new_inherited(parent: Option<&CSSStyleSheet>, keyframesrule: Arc<RwLock<KeyframesRule>>) -> CSSKeyframesRule { CSSKeyframesRule { cssrule: CSSRule::new_inherited(parent), keyframesrule: keyframesrule, @@ -36,7 +36,7 @@ impl CSSKeyframesRule { } #[allow(unrooted_must_root)] - pub fn new(window: &Window, parent: &CSSStyleSheet, + pub fn new(window: &Window, parent: Option<&CSSStyleSheet>, keyframesrule: Arc<RwLock<KeyframesRule>>) -> Root<CSSKeyframesRule> { reflect_dom_object(box CSSKeyframesRule::new_inherited(parent, keyframesrule), window, @@ -44,10 +44,13 @@ impl CSSKeyframesRule { } fn rulelist(&self) -> Root<CSSRuleList> { - self.rulelist.or_init(|| CSSRuleList::new(self.global().as_window(), - // temporary unwrap - &self.upcast::<CSSRule>().GetParentStyleSheet().unwrap(), - RulesSource::Keyframes(self.keyframesrule.clone()))) + self.rulelist.or_init(|| { + let sheet = self.upcast::<CSSRule>().GetParentStyleSheet(); + let sheet = sheet.as_ref().map(|s| &**s); + CSSRuleList::new(self.global().as_window(), + sheet, + RulesSource::Keyframes(self.keyframesrule.clone())) + }) } } |