aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/construct.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/construct.rs')
-rw-r--r--components/layout/construct.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index 809ecaa406a..33b88f6b8c0 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -1374,12 +1374,20 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
// We visit the kids first and reset their HAS_NEWLY_CONSTRUCTED_FLOW flags after checking
// them. NOTE: Make sure not to bail out early before resetting all the flags!
let mut need_to_reconstruct = false;
+
+ // If the node has display: none, it's possible that we haven't even
+ // styled the children once, so we need to bailout early here.
+ if node.style(self.style_context()).get_box().clone_display() == display::T::none {
+ return false;
+ }
+
for kid in node.children() {
if kid.flags().contains(HAS_NEWLY_CONSTRUCTED_FLOW) {
kid.remove_flags(HAS_NEWLY_CONSTRUCTED_FLOW);
need_to_reconstruct = true
}
}
+
if need_to_reconstruct {
return false
}