Jelajahi Sumber

LibWeb: Don't invalidate style for entire document on Node insertion

Like for attribute changes, we now only invalidate the insertion parent
and all of its descendants. Again, this is very aggressive, but also
way less than doing the entire document.

Once we implement the CSS :has() selector, we'll need to become more
sophisticated about invalidation.
Andreas Kling 2 tahun lalu
induk
melakukan
c7489e7665
1 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 2 1
      Userland/Libraries/LibWeb/DOM/Node.cpp

+ 2 - 1
Userland/Libraries/LibWeb/DOM/Node.cpp

@@ -458,7 +458,8 @@ void Node::insert_before(JS::NonnullGCPtr<Node> node, JS::GCPtr<Node> child, boo
     // 9. Run the children changed steps for parent.
     // 9. Run the children changed steps for parent.
     children_changed();
     children_changed();
 
 
-    document().invalidate_style();
+    // FIXME: This will need to become smarter when we implement the :has() selector.
+    invalidate_style();
 }
 }
 
 
 // https://dom.spec.whatwg.org/#concept-node-pre-insert
 // https://dom.spec.whatwg.org/#concept-node-pre-insert