Incremental layout: Don't try to repair text fragment styles

Fixes #7814.
This commit is contained in:
Matt Brubeck 2015-10-01 14:40:55 -07:00
parent e2048d57c4
commit 6426f714bd
4 changed files with 48 additions and 4 deletions

View file

@ -1375,11 +1375,17 @@ impl<'a> FlowConstructor<'a> {
// FIXME(pcwalton): Fragment restyle damage too?
flow_ref.repair_style_and_bubble_inline_sizes(&style);
}
SpecificFragmentInfo::ScannedText(_) |
SpecificFragmentInfo::ScannedText(_) => {
// Text fragments in ConstructionResult haven't been scanned yet
unreachable!()
}
SpecificFragmentInfo::GeneratedContent(_) |
SpecificFragmentInfo::UnscannedText(_) => {
properties::modify_style_for_text(&mut style);
properties::modify_style_for_replaced_content(&mut style);
fragment.repair_style(&style);
// We can't repair this unscanned text; we need to update the
// scanned text fragments.
//
// TODO: Add code to find and repair the ScannedText fragments?
return false
}
_ => {
if node.is_replaced_content() {

View file

@ -165,6 +165,7 @@ prefs:"layout.writing-mode.enabled" == iframe/size_attributes_vertical_writing_m
== incremental_float_a.html incremental_float_ref.html
== incremental_inline_layout_a.html incremental_inline_layout_ref.html
== incremental_letter_spacing_a.html incremental_letter_spacing_ref.html
== incremental_text_color_a.html incremental_text_color_ref.html
== inline_absolute_hypothetical_clip_a.html inline_absolute_hypothetical_clip_ref.html
== inline_absolute_out_of_flow_a.html inline_absolute_out_of_flow_ref.html
!= inline_background_a.html inline_background_ref.html

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Incremental layout text color test</title>
<style>
span {
color: orange;
}
span.selected {
color: green;
}
</style>
</head>
<body>
<span>A</span>
<script>
document.body.offsetWidth; // force layout
document.querySelector('span').classList.add('selected');
</script>
</body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Incremental layout text color reference</title>
<style>
span {
color: green;
}
</style>
</head>
<body>
<span>A</span>
</body>
</html>