mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Add insertRule() and deleteRule() on CSSStyleSheet
This commit is contained in:
parent
c4b7cc863e
commit
1d20d75cb2
5 changed files with 160 additions and 10 deletions
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue