diff --git a/components/layout/construct.rs b/components/layout/construct.rs index 2421a797b43..73c353980a2 100644 --- a/components/layout/construct.rs +++ b/components/layout/construct.rs @@ -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() { diff --git a/tests/ref/basic.list b/tests/ref/basic.list index c823dd97d3d..c9067f5569d 100644 --- a/tests/ref/basic.list +++ b/tests/ref/basic.list @@ -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 diff --git a/tests/ref/incremental_text_color_a.html b/tests/ref/incremental_text_color_a.html new file mode 100644 index 00000000000..8ac15b01619 --- /dev/null +++ b/tests/ref/incremental_text_color_a.html @@ -0,0 +1,22 @@ + + +
+ +