diff options
author | Xidorn Quan <me@upsuper.org> | 2016-11-24 12:30:08 +1100 |
---|---|---|
committer | Xidorn Quan <me@upsuper.org> | 2016-11-24 15:38:40 +1100 |
commit | 03bcb7a26a475a87e9a91c7faf8d917ec0534817 (patch) | |
tree | aa080c57fecc60c87782d51c5621a7e36a967cee /components/script/dom/cssrulelist.rs | |
parent | 134ef338424759cf44bc9fcc62ea1d43f65784dd (diff) | |
download | servo-03bcb7a26a475a87e9a91c7faf8d917ec0534817.tar.gz servo-03bcb7a26a475a87e9a91c7faf8d917ec0534817.zip |
Move "remove a CSS rule" algorithm to style
Diffstat (limited to 'components/script/dom/cssrulelist.rs')
-rw-r--r-- | components/script/dom/cssrulelist.rs | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs index c10b9196092..0f2212319dc 100644 --- a/components/script/dom/cssrulelist.rs +++ b/components/script/dom/cssrulelist.rs @@ -16,7 +16,6 @@ use dom::window::Window; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::{CssRules, KeyframesRule, RulesMutateError}; -use style::stylesheets::CssRule as StyleCssRule; no_jsmanaged_fields!(RulesSource); no_jsmanaged_fields!(CssRules); @@ -97,37 +96,14 @@ impl CSSRuleList { Ok((idx)) } - // https://drafts.csswg.org/cssom/#remove-a-css-rule - // https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-deleterule // In case of a keyframe rule, index must be valid. pub fn remove_rule(&self, index: u32) -> ErrorResult { let index = index as usize; match self.rules { RulesSource::Rules(ref css_rules) => { - // https://drafts.csswg.org/cssom/#remove-a-css-rule - { - let rules = css_rules.0.read(); - - // Step 1, 2 - if index >= rules.len() { - return Err(Error::IndexSize); - } - - // Step 3 - let ref rule = rules[index]; - - // Step 4 - if let StyleCssRule::Namespace(..) = *rule { - if !CssRules::only_ns_or_import(&rules) { - return Err(Error::InvalidState); - } - } - } - - // Step 5, 6 + css_rules.remove_rule(index)?; let mut dom_rules = self.dom_rules.borrow_mut(); - css_rules.0.write().remove(index); dom_rules[index].get().map(|r| r.detach()); dom_rules.remove(index); Ok(()) |