Bug 1351535 - Part 4: Don't traverse children if the root of the restyle is display:none. r=bholley

If we append a child to a display:none element, and we use StyleNewChildren on
that parent, we should skip restyling the children.

MozReview-Commit-ID: 7A6e7sPNHIA

--HG--
extra : rebase_source : e852bc2c32680907383cfca6d94490a76c971113
This commit is contained in:
Cameron McCormack 2017-04-04 19:22:42 +08:00
Родитель 06188bfd80
Коммит 770aa5799f
1 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -149,6 +149,12 @@ pub trait DomTraversal<E: TElement> : Sync {
-> PreTraverseToken
{
if traversal_flags.for_unstyled_children_only() {
if root.borrow_data().map_or(true, |d| d.has_styles() && d.styles().is_display_none()) {
return PreTraverseToken {
traverse: false,
unstyled_children_only: false,
};
}
return PreTraverseToken {
traverse: true,
unstyled_children_only: true,