Trait style::stylesheets::rule_list::CssRulesHelpers
source · pub trait CssRulesHelpers {
// Required method
fn insert_rule(
&self,
lock: &SharedRwLock,
rule: &str,
parent_stylesheet_contents: &StylesheetContents,
index: usize,
nested: CssRuleTypes,
parse_relative_rule_type: Option<CssRuleType>,
loader: Option<&dyn StylesheetLoader>,
allow_import_rules: AllowImportRules,
) -> Result<CssRule, RulesMutateError>;
}
Expand description
A trait to implement helpers for Arc<Locked<CssRules>>
.
Required Methods§
sourcefn insert_rule(
&self,
lock: &SharedRwLock,
rule: &str,
parent_stylesheet_contents: &StylesheetContents,
index: usize,
nested: CssRuleTypes,
parse_relative_rule_type: Option<CssRuleType>,
loader: Option<&dyn StylesheetLoader>,
allow_import_rules: AllowImportRules,
) -> Result<CssRule, RulesMutateError>
fn insert_rule( &self, lock: &SharedRwLock, rule: &str, parent_stylesheet_contents: &StylesheetContents, index: usize, nested: CssRuleTypes, parse_relative_rule_type: Option<CssRuleType>, loader: Option<&dyn StylesheetLoader>, allow_import_rules: AllowImportRules, ) -> Result<CssRule, RulesMutateError>
https://drafts.csswg.org/cssom/#insert-a-css-rule
Written in this funky way because parsing an @import rule may cause us to clone a stylesheet from the same document due to caching in the CSS loader.
TODO(emilio): We could also pass the write guard down into the loader instead, but that seems overkill.