servo: Merge #16855 - style: Set root font-size right after cascading font-size (from emilio:rem-root); r=upsuper

This way rem in the root element works as expected.

This fixes layout/reftests/css-valuesandunits/unit-rem-root-width.html in Gecko.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8366b4d4f933f3efcadb6e337f2197cadca3e6ed

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : f4a7ccdff083f25948ddc82d4b3fcad942b36988
This commit is contained in:
Emilio Cobos Álvarez 2017-05-14 18:53:28 -05:00
Родитель cfe9afb991
Коммит 47d7e13c79
1 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -2612,6 +2612,7 @@ pub fn apply_declarations<'a, F, I>(device: &Device,
% if category_to_cascade_now == "early":
let writing_mode = get_writing_mode(context.style.get_inheritedbox());
context.style.writing_mode = writing_mode;
// It is important that font_size is computed before
// the late properties (for em units), but after font-family
// (for the base-font-size dependence for default and keyword font-sizes)
@ -2665,6 +2666,11 @@ pub fn apply_declarations<'a, F, I>(device: &Device,
error_reporter);
% endif
}
if is_root_element {
let s = context.style.get_font().clone_font_size();
context.style.root_font_size = s;
}
% endif
% endfor
@ -2686,11 +2692,6 @@ pub fn apply_declarations<'a, F, I>(device: &Device,
}
% endif
if is_root_element {
let s = style.get_font().clone_font_size();
style.root_font_size = s;
}
% if product == "servo":
if seen.contains(LonghandId::FontStyle) ||
seen.contains(LonghandId::FontWeight) ||