diff options
author | Matt Brubeck <mbrubeck@limpet.net> | 2016-03-21 14:03:46 -0700 |
---|---|---|
committer | Matt Brubeck <mbrubeck@limpet.net> | 2016-03-21 16:28:07 -0700 |
commit | f7d490a7e73268c6f0034d84f49e70c0f04aa5cd (patch) | |
tree | 2f213218a33cad4290ba5fc67637dea854da1355 | |
parent | c2c3b30f87d918f8ee18d31b5b7edb6c9ca4d949 (diff) | |
download | servo-f7d490a7e73268c6f0034d84f49e70c0f04aa5cd.tar.gz servo-f7d490a7e73268c6f0034d84f49e70c0f04aa5cd.zip |
Add missing properties to compute_damage
-rw-r--r-- | components/layout/incremental.rs | 37 | ||||
-rw-r--r-- | tests/wpt/mozilla/meta/MANIFEST.json | 48 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/css/incremental_visibility_a.html | 29 | ||||
-rw-r--r-- | tests/wpt/mozilla/tests/css/incremental_visibility_ref.html | 18 |
4 files changed, 129 insertions, 3 deletions
diff --git a/components/layout/incremental.rs b/components/layout/incremental.rs index 4ef56a1e5c0..d909192c0d3 100644 --- a/components/layout/incremental.rs +++ b/components/layout/incremental.rs @@ -182,8 +182,15 @@ pub fn compute_damage(old: Option<&Arc<ComputedValues>>, new: &ComputedValues) - // text shaping is re-run. get_inheritedtext.letter_spacing, get_inheritedtext.text_rendering, get_inheritedtext.text_transform, get_inheritedtext.word_spacing, + get_inheritedtext.overflow_wrap, get_inheritedtext.text_justify, + get_inheritedtext.white_space, get_inheritedtext.word_break, get_inheritedtext.text_overflow, get_font.font_family, get_font.font_style, get_font.font_variant, get_font.font_weight, - get_font.font_size, get_font.font_stretch + get_font.font_size, get_font.font_stretch, + get_inheritedbox.direction, get_inheritedbox.writing_mode, + get_inheritedbox.text_orientation, + get_text.text_decoration, get_text.unicode_bidi, + get_inheritedtable.empty_cells, get_inheritedtable.caption_side, + get_column.column_width, get_column.column_count ]) || add_if_not_equal!(old, new, damage, [ REPAINT, STORE_OVERFLOW, BUBBLE_ISIZES, REFLOW_OUT_OF_FLOW, REFLOW ], [get_border.border_top_width, get_border.border_right_width, @@ -193,7 +200,13 @@ pub fn compute_damage(old: Option<&Arc<ComputedValues>>, new: &ComputedValues) - get_padding.padding_top, get_padding.padding_right, get_padding.padding_bottom, get_padding.padding_left, get_box.width, get_box.height, - get_inheritedtext.text_align, get_text.text_decoration, get_inheritedbox.line_height + get_inheritedbox.line_height, + get_inheritedtext.text_align, get_inheritedtext.text_indent, + get_table.table_layout, + get_inheritedtable.border_collapse, + get_inheritedtable.border_spacing, + get_column.column_gap, + get_flex.flex_direction ]) || add_if_not_equal!(old, new, damage, [ REPAINT, STORE_OVERFLOW, REFLOW_OUT_OF_FLOW ], [ get_positionoffsets.top, get_positionoffsets.left, @@ -201,8 +214,26 @@ pub fn compute_damage(old: Option<&Arc<ComputedValues>>, new: &ComputedValues) - ]) || add_if_not_equal!(old, new, damage, [ REPAINT ], [ get_color.color, get_background.background_color, + get_background.background_image, get_background.background_position, + get_background.background_repeat, get_background.background_attachment, + get_background.background_clip, get_background.background_origin, + get_background.background_size, get_border.border_top_color, get_border.border_right_color, - get_border.border_bottom_color, get_border.border_left_color + get_border.border_bottom_color, get_border.border_left_color, + get_border.border_top_style, get_border.border_right_style, + get_border.border_bottom_style, get_border.border_left_style, + get_border.border_top_left_radius, get_border.border_top_right_radius, + get_border.border_bottom_left_radius, get_border.border_bottom_right_radius, + get_box.z_index, get_box._servo_overflow_clip_box, + get_inheritedtext._servo_text_decorations_in_effect, + get_pointing.cursor, get_pointing.pointer_events, + get_effects.box_shadow, get_effects.clip, get_effects.text_shadow, get_effects.filter, + get_effects.transform, get_effects.backface_visibility, get_effects.transform_style, + get_effects.transform_origin, get_effects.perspective, get_effects.perspective_origin, + get_effects.mix_blend_mode, get_effects.image_rendering, + + // Note: May require REFLOW et al. if `visibility: collapse` is implemented. + get_inheritedbox.visibility ]); // If the layer requirements of this flow have changed due to the value diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 34f6556c9b8..ecdbc20489c 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -2072,6 +2072,30 @@ "url": "/_mozilla/css/incremental_text_color_a.html" } ], + "css/incremental_visibility_a.html": [ + { + "path": "css/incremental_visibility_a.html", + "references": [ + [ + "/_mozilla/css/incremental_visibility_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/incremental_visibility_a.html" + } + ], + "css/incremental_visibility_ref.html": [ + { + "path": "css/incremental_visibility_ref.html", + "references": [ + [ + "/_mozilla/css/incremental_visibility_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/incremental_visibility_ref.html" + } + ], "css/inline_absolute_hypothetical_clip_a.html": [ { "path": "css/inline_absolute_hypothetical_clip_a.html", @@ -8332,6 +8356,30 @@ "url": "/_mozilla/css/incremental_text_color_a.html" } ], + "css/incremental_visibility_a.html": [ + { + "path": "css/incremental_visibility_a.html", + "references": [ + [ + "/_mozilla/css/incremental_visibility_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/incremental_visibility_a.html" + } + ], + "css/incremental_visibility_ref.html": [ + { + "path": "css/incremental_visibility_ref.html", + "references": [ + [ + "/_mozilla/css/incremental_visibility_ref.html", + "==" + ] + ], + "url": "/_mozilla/css/incremental_visibility_ref.html" + } + ], "css/inline_absolute_hypothetical_clip_a.html": [ { "path": "css/inline_absolute_hypothetical_clip_a.html", diff --git a/tests/wpt/mozilla/tests/css/incremental_visibility_a.html b/tests/wpt/mozilla/tests/css/incremental_visibility_a.html new file mode 100644 index 00000000000..b52a7814549 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/incremental_visibility_a.html @@ -0,0 +1,29 @@ +<!doctype html> +<html class="reftest-wait"> + <head> + <meta charset="UTF-8"> + <title>Incremental visibility test</title> + <link rel="match" href="incremental_visibility_ref.html"> + <style> + div { + background: green; + height: 100px; + width: 100px; + visibility: hidden; + } + div.show { + visibility: visible; + } + </style> + </head> + <body> + <div></div> + <script> + window.onload = function() { + document.body.offsetWidth; // force layout + document.querySelector('div').classList.add('show'); + document.documentElement.classList.remove('reftest-wait'); + } + </script> + </body> +</html> diff --git a/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html b/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html new file mode 100644 index 00000000000..a90c2b184e3 --- /dev/null +++ b/tests/wpt/mozilla/tests/css/incremental_visibility_ref.html @@ -0,0 +1,18 @@ +<!doctype html> +<html> + <head> + <meta charset="UTF-8"> + <title>Incremental visibility reference</title> + <link rel="match" href="incremental_visibility_ref.html"> + <style> + div { + background: green; + height: 100px; + width: 100px; + } + </style> + </head> + <body> + <div></div> + </body> +</html> |