aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-07-07 20:27:42 +0200
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-07-08 18:05:30 +0200
commit5d03ba3cbe6ea99deb6170cd607dccbad141ce1a (patch)
tree8d85258d20b112ce484c0edaac2e79c3b61bcc39
parent1425ad1bab04c60f955270ded0044fd8d244cd9a (diff)
downloadservo-5d03ba3cbe6ea99deb6170cd607dccbad141ce1a.tar.gz
servo-5d03ba3cbe6ea99deb6170cd607dccbad141ce1a.zip
style: Move root font size handling outside of the cascade.
And merge it with the rest of the code handling root font-size changes. MozReview-Commit-ID: 3rW1C3mXiMd
-rw-r--r--components/style/matching.rs12
-rw-r--r--components/style/properties/properties.mako.rs6
2 files changed, 8 insertions, 10 deletions
diff --git a/components/style/matching.rs b/components/style/matching.rs
index 1b9f0307a9d..d59e5517b3d 100644
--- a/components/style/matching.rs
+++ b/components/style/matching.rs
@@ -341,7 +341,6 @@ trait PrivateMatchMethods: TElement {
if self.is_native_anonymous() || cascade_target == CascadeTarget::EagerPseudo {
cascade_flags.insert(PROHIBIT_DISPLAY_CONTENTS);
} else if self.is_root() {
- debug_assert!(self.owner_doc_matches_for_testing(shared_context.stylist.device()));
cascade_flags.insert(IS_ROOT_ELEMENT);
}
@@ -563,9 +562,14 @@ trait PrivateMatchMethods: TElement {
// If the root font-size changed since last time, and something
// in the document did use rem units, ensure we recascade the
// entire tree.
- if old_values.map_or(false, |v| v.get_font().clone_font_size() != new_font_size) &&
- device.used_root_font_size() {
- child_cascade_requirement = ChildCascadeRequirement::MustCascadeDescendants;
+ if old_values.map_or(true, |v| v.get_font().clone_font_size() != new_font_size) {
+ // FIXME(emilio): This can fire when called from a document
+ // from the bfcache (bug 1376897).
+ debug_assert!(self.owner_doc_matches_for_testing(device));
+ device.set_root_font_size(new_font_size);
+ if device.used_root_font_size() {
+ child_cascade_requirement = ChildCascadeRequirement::MustCascadeDescendants;
+ }
}
}
}
diff --git a/components/style/properties/properties.mako.rs b/components/style/properties/properties.mako.rs
index b69b3bacbc8..cd6278167b9 100644
--- a/components/style/properties/properties.mako.rs
+++ b/components/style/properties/properties.mako.rs
@@ -2901,11 +2901,6 @@ pub fn apply_declarations<'a, F, I>(device: &Device,
error_reporter);
% endif
}
-
- if context.is_root_element {
- let s = context.style.get_font().clone_font_size();
- context.device.set_root_font_size(s);
- }
% endif
% endfor
@@ -2938,7 +2933,6 @@ pub fn apply_declarations<'a, F, I>(device: &Device,
style.build()
}
-
/// See StyleAdjuster::adjust_for_border_width.
pub fn adjust_border_width(style: &mut StyleBuilder) {
% for side in ["top", "right", "bottom", "left"]: