aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/cssstylesheet.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2016-11-15 15:41:29 -0800
committerManish Goregaokar <manishsmail@gmail.com>2016-11-23 09:30:29 -0800
commit1d20d75cb2e8153768d177e0e9f1f6f054816014 (patch)
tree598aebe2f909c99d1c90a3d104656478a023f0cc /components/script/dom/cssstylesheet.rs
parentc4b7cc863eb9c0387577be33db4e2c0a6fd92a60 (diff)
downloadservo-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.rs22
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)
}
}