mirror of
https://github.com/servo/servo.git
synced 2025-07-25 16:20:36 +01:00
layout: Modify styles for replaced content as appropriate during
incremental flow construction. Fixes jumpiness on lots of Web sites.
This commit is contained in:
parent
d64f91863a
commit
24f10df436
4 changed files with 39 additions and 2 deletions
|
@ -1249,7 +1249,7 @@ impl<'a> FlowConstructor<'a> {
|
||||||
|
|
||||||
let mut layout_data_ref = node.mutate_layout_data();
|
let mut layout_data_ref = node.mutate_layout_data();
|
||||||
let layout_data = layout_data_ref.as_mut().expect("no 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;
|
let damage = layout_data.data.restyle_damage;
|
||||||
match node.construction_result_mut(layout_data) {
|
match node.construction_result_mut(layout_data) {
|
||||||
&mut ConstructionResult::None => true,
|
&mut ConstructionResult::None => true,
|
||||||
|
@ -1297,8 +1297,10 @@ impl<'a> FlowConstructor<'a> {
|
||||||
.repair_style_and_bubble_inline_sizes(&style);
|
.repair_style_and_bubble_inline_sizes(&style);
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
if node.is_replaced_content() {
|
||||||
|
properties::modify_style_for_replaced_content(&mut style);
|
||||||
|
}
|
||||||
fragment.repair_style(&style);
|
fragment.repair_style(&style);
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,6 +169,7 @@ experimental == iframe/size_attributes_vertical_writing_mode.html iframe/size_at
|
||||||
== inset.html inset_ref.html
|
== inset.html inset_ref.html
|
||||||
!= inset_blackborder.html blackborder_ref.html
|
!= inset_blackborder.html blackborder_ref.html
|
||||||
== issue-1324.html issue-1324-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_child_pseudo_a.html last_child_pseudo_b.html
|
||||||
== last_of_type_pseudo_a.html last_of_type_pseudo_b.html
|
== last_of_type_pseudo_a.html last_of_type_pseudo_b.html
|
||||||
== legacy_cellspacing_attribute_a.html border_spacing_ref.html
|
== legacy_cellspacing_attribute_a.html border_spacing_ref.html
|
||||||
|
|
19
tests/ref/jumpiness_a.html
Normal file
19
tests/ref/jumpiness_a.html
Normal 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>
|
||||||
|
|
15
tests/ref/jumpiness_ref.html
Normal file
15
tests/ref/jumpiness_ref.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
a
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue