layout: Modify styles for replaced content as appropriate during

incremental flow construction.

Fixes jumpiness on lots of Web sites.
This commit is contained in:
Patrick Walton 2015-06-26 17:01:08 -07:00
parent d64f91863a
commit 24f10df436
4 changed files with 39 additions and 2 deletions

View file

@ -1249,7 +1249,7 @@ impl<'a> FlowConstructor<'a> {
let mut layout_data_ref = node.mutate_layout_data();
let layout_data = layout_data_ref.as_mut().expect("no layout data");
let style = (*node.get_style(&layout_data)).clone();
let mut style = (*node.get_style(&layout_data)).clone();
let damage = layout_data.data.restyle_damage;
match node.construction_result_mut(layout_data) {
&mut ConstructionResult::None => true,
@ -1297,8 +1297,10 @@ impl<'a> FlowConstructor<'a> {
.repair_style_and_bubble_inline_sizes(&style);
}
_ => {
if node.is_replaced_content() {
properties::modify_style_for_replaced_content(&mut style);
}
fragment.repair_style(&style);
return true
}
}
}

View file

@ -169,6 +169,7 @@ experimental == iframe/size_attributes_vertical_writing_mode.html iframe/size_at
== inset.html inset_ref.html
!= inset_blackborder.html blackborder_ref.html
== issue-1324.html issue-1324-ref.html
== jumpiness_a.html jumpiness_ref.html
== last_child_pseudo_a.html last_child_pseudo_b.html
== last_of_type_pseudo_a.html last_of_type_pseudo_b.html
== legacy_cellspacing_attribute_a.html border_spacing_ref.html

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<style>
body.hello {
text-decoration: underline;
}
</style>
</head>
<body>
a
<script>
setTimeout(function() {
document.body.classList.add('hello');
}, 0);
</script>
</body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<style>
body {
text-decoration: underline;
}
</style>
</head>
<body>
a
</body>
</html>