diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2016-11-15 15:41:29 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2016-11-23 09:30:29 -0800 |
commit | 1d20d75cb2e8153768d177e0e9f1f6f054816014 (patch) | |
tree | 598aebe2f909c99d1c90a3d104656478a023f0cc /components/script/dom/cssstylesheet.rs | |
parent | c4b7cc863eb9c0387577be33db4e2c0a6fd92a60 (diff) | |
download | servo-1d20d75cb2e8153768d177e0e9f1f6f054816014.tar.gz servo-1d20d75cb2e8153768d177e0e9f1f6f054816014.zip |
Add insertRule() and deleteRule() on CSSStyleSheet
Diffstat (limited to 'components/script/dom/cssstylesheet.rs')
-rw-r--r-- | components/script/dom/cssstylesheet.rs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/components/script/dom/cssstylesheet.rs b/components/script/dom/cssstylesheet.rs index d5a9342a75a..079199c2e6e 100644 --- a/components/script/dom/cssstylesheet.rs +++ b/components/script/dom/cssstylesheet.rs @@ -4,6 +4,7 @@ use dom::bindings::codegen::Bindings::CSSStyleSheetBinding; use dom::bindings::codegen::Bindings::CSSStyleSheetBinding::CSSStyleSheetMethods; +use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::js::{JS, Root, MutNullableHeap}; use dom::bindings::reflector::{reflect_dom_object, Reflectable}; use dom::bindings::str::DOMString; @@ -40,12 +41,31 @@ impl CSSStyleSheet { window, CSSStyleSheetBinding::Wrap) } + + fn rulelist(&self) -> Root<CSSRuleList> { + self.rulelist.or_init(|| CSSRuleList::new(self.global().as_window(), + self, + self.style_stylesheet.rules.clone())) + } } impl CSSStyleSheetMethods for CSSStyleSheet { // https://drafts.csswg.org/cssom/#dom-cssstylesheet-cssrules fn CssRules(&self) -> Root<CSSRuleList> { - self.rulelist.or_init(|| CSSRuleList::new(self.global().as_window(), self, self.style_stylesheet.rules.clone())) + // XXXManishearth check origin clean flag + self.rulelist() + } + + // https://drafts.csswg.org/cssom/#dom-cssstylesheet-insertrule + fn InsertRule(&self, rule: DOMString, index: u32) -> Fallible<u32> { + // XXXManishearth check origin clean flag + self.rulelist().insert_rule(&rule, index) + } + + // https://drafts.csswg.org/cssom/#dom-cssstylesheet-deleterule + fn DeleteRule(&self, index: u32) -> ErrorResult { + // XXXManishearth check origin clean flag + self.rulelist().remove_rule(index) } } |