aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/cssstylesheet.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/cssstylesheet.rs')
-rw-r--r--components/script/dom/cssstylesheet.rs31
1 files changed, 16 insertions, 15 deletions
diff --git a/components/script/dom/cssstylesheet.rs b/components/script/dom/cssstylesheet.rs
index 12358f97028..992b773c554 100644
--- a/components/script/dom/cssstylesheet.rs
+++ b/components/script/dom/cssstylesheet.rs
@@ -70,14 +70,14 @@ impl CSSStyleSheet {
)
}
- fn rulelist(&self) -> DomRoot<CSSRuleList> {
+ fn rulelist(&self, can_gc: CanGc) -> DomRoot<CSSRuleList> {
self.rulelist.or_init(|| {
let rules = self.style_stylesheet.contents.rules.clone();
CSSRuleList::new(
self.global().as_window(),
self,
RulesSource::Rules(rules),
- CanGc::note(),
+ can_gc,
)
})
}
@@ -127,38 +127,38 @@ impl CSSStyleSheet {
impl CSSStyleSheetMethods<crate::DomTypeHolder> for CSSStyleSheet {
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-cssrules>
- fn GetCssRules(&self) -> Fallible<DomRoot<CSSRuleList>> {
+ fn GetCssRules(&self, can_gc: CanGc) -> Fallible<DomRoot<CSSRuleList>> {
if !self.origin_clean.get() {
return Err(Error::Security);
}
- Ok(self.rulelist())
+ Ok(self.rulelist(can_gc))
}
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-insertrule>
- fn InsertRule(&self, rule: DOMString, index: u32) -> Fallible<u32> {
+ fn InsertRule(&self, rule: DOMString, index: u32, can_gc: CanGc) -> Fallible<u32> {
if !self.origin_clean.get() {
return Err(Error::Security);
}
- self.rulelist()
- .insert_rule(&rule, index, CssRuleTypes::default(), None, CanGc::note())
+ self.rulelist(can_gc)
+ .insert_rule(&rule, index, CssRuleTypes::default(), None, can_gc)
}
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-deleterule>
- fn DeleteRule(&self, index: u32) -> ErrorResult {
+ fn DeleteRule(&self, index: u32, can_gc: CanGc) -> ErrorResult {
if !self.origin_clean.get() {
return Err(Error::Security);
}
- self.rulelist().remove_rule(index)
+ self.rulelist(can_gc).remove_rule(index)
}
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-rules>
- fn GetRules(&self) -> Fallible<DomRoot<CSSRuleList>> {
- self.GetCssRules()
+ fn GetRules(&self, can_gc: CanGc) -> Fallible<DomRoot<CSSRuleList>> {
+ self.GetCssRules(can_gc)
}
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-removerule>
- fn RemoveRule(&self, index: u32) -> ErrorResult {
- self.DeleteRule(index)
+ fn RemoveRule(&self, index: u32, can_gc: CanGc) -> ErrorResult {
+ self.DeleteRule(index, can_gc)
}
/// <https://drafts.csswg.org/cssom/#dom-cssstylesheet-addrule>
@@ -167,6 +167,7 @@ impl CSSStyleSheetMethods<crate::DomTypeHolder> for CSSStyleSheet {
selector: DOMString,
block: DOMString,
optional_index: Option<u32>,
+ can_gc: CanGc,
) -> Fallible<i32> {
// > 1. Let *rule* be an empty string.
// > 2. Append *selector* to *rule*.
@@ -184,10 +185,10 @@ impl CSSStyleSheetMethods<crate::DomTypeHolder> for CSSStyleSheet {
};
// > 6. Let *index* be *optionalIndex* if provided, or the number of CSS rules in the stylesheet otherwise.
- let index = optional_index.unwrap_or_else(|| self.rulelist().Length());
+ let index = optional_index.unwrap_or_else(|| self.rulelist(can_gc).Length());
// > 7. Call `insertRule()`, with *rule* and *index* as arguments.
- self.InsertRule(rule, index)?;
+ self.InsertRule(rule, index, can_gc)?;
// > 8. Return -1.
Ok(-1)