ladybird/Libraries/LibWeb/DOM
Andreas Kling bae4434780 LibWeb: Avoid sibling walks for last-child invalidation
Track last-child and backward positional selector dependencies
separately on parent nodes. A last-child or only-child selector can only
change the element at the trailing edge, so insertions and removals can
invalidate that element directly instead of walking every previous
sibling.

Keep the previous-sibling walk for selectors such as nth-last-child and
last-of-type, where every previous element's from-end position may
change.
2026-06-08 17:16:18 +02:00
..
AbortController.cpp LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
AbortController.h LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
AbortController.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
AbortSignal.cpp LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
AbortSignal.h LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
AbortSignal.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
AbstractElement.cpp LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
AbstractElement.h LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
AbstractRange.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
AbstractRange.h
AbstractRange.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
AccessibilityTreeNode.cpp
AccessibilityTreeNode.h
AdoptedStyleSheets.cpp LibWeb: Move adopted stylesheet invalidation into a helper 2026-04-29 15:47:23 +02:00
AdoptedStyleSheets.h
AnchorNameMap.cpp LibWeb: Keep track of elements with an anchor-name set 2026-04-01 19:41:46 +01:00
AnchorNameMap.h LibWeb: Keep track of elements with an anchor-name set 2026-04-01 19:41:46 +01:00
Attr.cpp LibGC: Default-construct RootVector from the global heap 2026-05-20 20:37:55 +02:00
Attr.h
Attr.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CaretPosition.cpp LibWeb: Expose document caretPositionFromPoint 2026-05-30 13:50:48 +02:00
CaretPosition.h LibWeb: Expose document caretPositionFromPoint 2026-05-30 13:50:48 +02:00
CaretPosition.idl LibWeb: Expose document caretPositionFromPoint 2026-05-30 13:50:48 +02:00
CDATASection.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
CDATASection.h
CDATASection.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CharacterData.cpp LibWeb: Invalidate layout tree of parent when replacing CharacterData 2026-06-02 11:09:52 +01:00
CharacterData.h LibWeb: Account text and image storage as external memory 2026-05-07 10:03:09 +02:00
CharacterData.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
ChildNode.h LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
ChildNode.idl LibWeb: Remove some outdated #import related FIXMEs 2026-05-03 10:56:45 +02:00
Comment.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
Comment.h
Comment.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
CustomEvent.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CustomEvent.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
CustomEvent.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Document.cpp LibWeb+UI/AppKit: Implement macOS IME support 2026-06-08 10:23:14 +09:00
Document.h LibWeb+UI/AppKit: Implement macOS IME support 2026-06-08 10:23:14 +09:00
Document.idl LibWeb: Expose document caretPositionFromPoint 2026-05-30 13:50:48 +02:00
DocumentFragment.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
DocumentFragment.h
DocumentFragment.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
DocumentLoadEventDelayer.cpp
DocumentLoadEventDelayer.h
DocumentLoading.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
DocumentLoading.h LibWeb: Remove "signal to continue SHTQ" from document loading 2026-04-01 06:47:59 +02:00
DocumentObserver.cpp
DocumentObserver.h
DocumentOrShadowRoot.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
DocumentOrShadowRoot.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
DocumentType.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
DocumentType.h Utilities: Add dump-html-tree 2026-05-17 15:35:56 +02:00
DocumentType.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
DOMEventListener.cpp
DOMEventListener.h
DOMImplementation.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
DOMImplementation.h
DOMImplementation.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
DOMTokenList.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
DOMTokenList.h LibWeb: Account DOM state as external memory 2026-05-07 10:03:09 +02:00
DOMTokenList.idl
EditingHostManager.cpp
EditingHostManager.h
Element.cpp LibWeb: Avoid sibling walks for last-child invalidation 2026-06-08 17:16:18 +02:00
Element.h LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
Element.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
ElementByIdMap.cpp
ElementByIdMap.h
ElementFactory.cpp LibWeb: Implement scoped custom element registries 2026-03-27 19:49:55 +00:00
ElementFactory.h LibWeb: Implement scoped custom element registries 2026-03-27 19:49:55 +00:00
Event.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Event.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
Event.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
EventDispatcher.cpp LibWeb: Deal with legacy event types for event dispatch optimization 2026-05-31 19:50:58 +02:00
EventDispatcher.h
EventHandler.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
EventListener.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
EventTarget.cpp LibWeb: Preserve inline handler ordering after parse failure 2026-06-06 19:18:11 +02:00
EventTarget.h LibWeb: Avoid GC::Root churn in wheel listener checks 2026-05-15 17:25:10 +02:00
EventTarget.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
FragmentSerializationMode.h
HoverEventData.h LibWeb: Populate platform mouse event data 2026-05-19 11:22:02 +02:00
HTMLCollection.cpp LibWeb: Fix use-after-free in live-collection filter captures 2026-06-07 22:16:33 +02:00
HTMLCollection.h LibWeb: Implement the required virtual owner_cell() on HTMLCollection 2026-05-14 13:27:56 +01:00
HTMLCollection.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
IDLEventListener.cpp
IDLEventListener.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
InputEventsTarget.h
LiveNodeList.cpp LibWeb: Fix use-after-free in live-collection filter captures 2026-06-07 22:16:33 +02:00
LiveNodeList.h
MutationObserver.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
MutationObserver.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
MutationObserver.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
MutationRecord.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
MutationRecord.h
MutationRecord.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
MutationType.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
MutationType.h Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
NamedNodeMap.cpp LibWeb: Stop retaining fragment-parsing documents after adoption 2026-05-21 08:56:41 +02:00
NamedNodeMap.h LibWeb: Stop retaining fragment-parsing documents after adoption 2026-05-21 08:56:41 +02:00
NamedNodeMap.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Node.cpp LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
Node.h LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
Node.idl LibWeb/DOM: Remove unnecessary LegacyNullToEmptyString usage 2026-06-05 20:23:24 +02:00
NodeFilter.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
NodeFilter.h LibWeb/Bindings: Implement callback interface object bindings 2026-03-11 21:16:44 +01:00
NodeFilter.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
NodeIterator.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
NodeIterator.h LibWeb/Bindings: Implement callback interface object bindings 2026-03-11 21:16:44 +01:00
NodeIterator.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
NodeList.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
NodeList.h
NodeList.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
NodeOperations.cpp LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
NodeOperations.h LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
NodeType.h
NonDocumentTypeChildNode.h
ParentNode.cpp LibWeb: Unify WebIDL C++ type generation 2026-05-23 18:26:12 +02:00
ParentNode.h LibWeb: Avoid sibling walks for last-child invalidation 2026-06-08 17:16:18 +02:00
ParentNode.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Position.cpp
Position.h
ProcessingInstruction.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
ProcessingInstruction.h
ProcessingInstruction.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
PseudoElement.cpp LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
PseudoElement.h LibWeb: Make layout nodes refcounted 2026-06-07 20:52:49 +02:00
QualifiedName.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
QualifiedName.h
Range.cpp LibWeb: Handle Range rects starting after last child 2026-06-08 01:04:08 +02:00
Range.h
Range.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
RequestFullscreenError.h LibWeb: Move RequestFullscreenError out of Element.h 2026-03-17 18:58:37 -05:00
SelectionchangeEventDispatching.h LibWeb+LibWebView+UI: Update the selection keyboard on selection changes 2026-05-27 13:33:44 -04:00
ShadowRoot.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ShadowRoot.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
ShadowRoot.idl LibWeb: Align declarative shadow root parsing 2026-05-17 15:35:56 +02:00
Slot.cpp LibJS+LibWeb: Use the unified Visitor for Variant-holding members 2026-05-15 08:51:17 +02:00
Slot.h
SlotRegistry.cpp
SlotRegistry.h
Slottable.cpp LibWeb: Move slotted style invalidation into a helper 2026-04-29 15:47:23 +02:00
Slottable.h
Slottable.idl LibWeb: Remove some outdated #import related FIXMEs 2026-05-03 10:56:45 +02:00
StaticNodeList.cpp LibWeb: Account DOM state as external memory 2026-05-07 10:03:09 +02:00
StaticNodeList.h LibWeb: Account DOM state as external memory 2026-05-07 10:03:09 +02:00
StaticRange.cpp LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
StaticRange.h LibWeb/Bindings: Generate struct definitions from IDL dictionaries 2026-05-09 10:49:49 +02:00
StaticRange.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
StyleElementBase.cpp LibWeb/DOM: Evaluate style media for script blocking 2026-06-04 16:39:54 +01:00
StyleElementBase.h LibWeb/DOM: Evaluate style media for script blocking 2026-06-04 16:39:54 +01:00
StyleInvalidationReason.h LibWeb: Narrow pseudo-class self invalidation 2026-05-30 02:13:23 +02:00
Text.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
Text.h
Text.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
TreeWalker.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
TreeWalker.h LibWeb/Bindings: Implement callback interface object bindings 2026-03-11 21:16:44 +01:00
TreeWalker.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00
Utils.cpp LibWeb: Replace is<T> + as<T> with as_if<T> 2026-03-10 15:17:51 +01:00
Utils.h
ViewportClient.h
XMLDocument.cpp LibWeb/Bindings: Emit one bindings header and cpp per IDL 2026-04-21 07:36:13 +02:00
XMLDocument.h
XMLDocument.idl LibWeb+LibIDL: Remove support for #import directives during parsing 2026-04-24 20:08:29 +02:00