aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/htmlmetaelement.rs2
-rw-r--r--components/style/selector_matching.rs4
-rw-r--r--components/style/stylesheets.rs22
3 files changed, 18 insertions, 10 deletions
diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs
index 82855472589..29135ee933a 100644
--- a/components/script/dom/htmlmetaelement.rs
+++ b/components/script/dom/htmlmetaelement.rs
@@ -81,7 +81,7 @@ impl HTMLMetaElement {
if !content.is_empty() {
if let Some(translated_rule) = ViewportRule::from_meta(&**content) {
*self.stylesheet.borrow_mut() = Some(Arc::new(Stylesheet {
- rules: vec![CssRule::Viewport(Arc::new(RwLock::new(translated_rule)))],
+ rules: vec![CssRule::Viewport(Arc::new(RwLock::new(translated_rule)))].into(),
origin: Origin::Author,
media: Default::default(),
// Viewport constraints are always recomputed on resize; they don't need to
diff --git a/components/style/selector_matching.rs b/components/style/selector_matching.rs
index 1f955c0a0de..b7c0df114d1 100644
--- a/components/style/selector_matching.rs
+++ b/components/style/selector_matching.rs
@@ -380,7 +380,7 @@ impl Stylist {
return true
}
}
- mq_eval_changed(rules, before, after)
+ mq_eval_changed(&rules, before, after)
}) {
return true
}
@@ -388,7 +388,7 @@ impl Stylist {
false
}
self.is_device_dirty |= stylesheets.iter().any(|stylesheet| {
- mq_eval_changed(&stylesheet.rules, &self.device, &device)
+ mq_eval_changed(&stylesheet.rules.0, &self.device, &device)
});
self.device = device;
diff --git a/components/style/stylesheets.rs b/components/style/stylesheets.rs
index 2d82653f06d..924851db5b6 100644
--- a/components/style/stylesheets.rs
+++ b/components/style/stylesheets.rs
@@ -39,12 +39,20 @@ pub enum Origin {
User,
}
+#[derive(Debug)]
+pub struct CssRules(pub Arc<Vec<CssRule>>);
+
+impl From<Vec<CssRule>> for CssRules {
+ fn from(other: Vec<CssRule>) -> Self {
+ CssRules(Arc::new(other))
+ }
+}
#[derive(Debug)]
pub struct Stylesheet {
/// List of rules in the order they were found (important for
/// cascading order)
- pub rules: Vec<CssRule>,
+ pub rules: CssRules,
/// List of media associated with the Stylesheet.
pub media: MediaList,
pub origin: Origin,
@@ -89,7 +97,7 @@ impl CssRule {
CssRule::Media(ref lock) => {
let media_rule = lock.read();
let mq = media_rule.media_queries.read();
- f(&media_rule.rules, Some(&mq))
+ f(&media_rule.rules.0, Some(&mq))
}
}
}
@@ -112,7 +120,7 @@ pub struct KeyframesRule {
#[derive(Debug)]
pub struct MediaRule {
pub media_queries: Arc<RwLock<MediaList>>,
- pub rules: Vec<CssRule>,
+ pub rules: CssRules,
}
#[derive(Debug)]
@@ -180,7 +188,7 @@ impl Stylesheet {
Stylesheet {
origin: origin,
- rules: rules,
+ rules: rules.into(),
media: Default::default(),
dirty_on_viewport_size_change:
input.seen_viewport_percentages(),
@@ -208,7 +216,7 @@ impl Stylesheet {
/// examined.
#[inline]
pub fn effective_rules<F>(&self, device: &Device, mut f: F) where F: FnMut(&CssRule) {
- effective_rules(&self.rules, device, &mut f);
+ effective_rules(&self.rules.0, device, &mut f);
}
}
@@ -251,7 +259,7 @@ rule_filter! {
effective_keyframes_rules(Keyframes => KeyframesRule),
}
-fn parse_nested_rules(context: &ParserContext, input: &mut Parser) -> Vec<CssRule> {
+fn parse_nested_rules(context: &ParserContext, input: &mut Parser) -> CssRules {
let mut iter = RuleListParser::new_for_nested_rule(input,
NestedRuleParser { context: context });
let mut rules = Vec::new();
@@ -265,7 +273,7 @@ fn parse_nested_rules(context: &ParserContext, input: &mut Parser) -> Vec<CssRul
}
}
}
- rules
+ rules.into()
}