ladybird/Userland/Libraries/LibWeb/DOM
Andreas Kling df048e10f5 LibWeb: Include siblings+descendants when invalidating style
When an element is invalidated, it's possible for any subsequent sibling
or any of their descendants to also need invalidation. (Due to the CSS
sibling combinators, `+` and `~`)

For DOM node insertion/removal, we must also invalidate preceding
siblings, since they could be affected by :first-child, :last-child or
:nth-child() selectors.

This increases the amount of invalidation we do, but it's more correct.

In the future, we will implement optimizations that drastically reduce
the number of elements invalidated.
2024-09-22 18:42:40 +02:00
..
AbortController.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
AbortController.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AbortController.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
AbortSignal.cpp LibWeb: Abort dependent signals before firing abort event 2024-09-09 12:48:30 +02:00
AbortSignal.h Userland: Add ESCAPING annotations to a bunch of places 2024-05-22 21:55:34 -06:00
AbortSignal.idl LibWeb: Specify the correct argument type in IDL for AbortSignal::any() 2024-05-13 23:45:45 +01:00
AbstractRange.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
AbstractRange.h LibWeb: Use WebIDL typedefs in Range/AbstractRange 2024-01-04 10:10:44 +01:00
AbstractRange.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
AccessibilityTreeNode.cpp LibJS+LibWeb: Use new Cell::Visitor helpers to avoid manual iteration 2024-04-16 07:40:01 +02:00
AccessibilityTreeNode.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AdoptedStyleSheets.cpp LibWeb: Note what's causing a style invalidation to happen 2024-09-08 09:45:31 +02:00
AdoptedStyleSheets.h LibWeb: Add styleSheets and adoptedStyleSheets attributes in ShadowRoot 2024-03-09 16:13:32 +01:00
Attr.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
Attr.h LibWeb: Cache attribute names in lowercase to speed up selector matching 2024-03-16 14:27:59 +01:00
Attr.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
CDATASection.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
CDATASection.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CDATASection.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
CharacterData.cpp LibWeb: Move initial creation of Unicode segmenters to the Document 2024-09-22 18:42:31 +02:00
CharacterData.h LibWeb: Move initial creation of Unicode segmenters to the Document 2024-09-22 18:42:31 +02:00
CharacterData.idl LibWeb: Use UTF-16 code unit offsets and lengths in CharacterData 2023-12-23 20:41:41 +01:00
ChildNode.h LibWeb: Fix infinite loop in ChildNode's before() and after() 2024-03-11 18:29:10 +01:00
ChildNode.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
Comment.cpp LibWeb: Avoid FlyString lookups when setting IDL interface prototypes 2024-03-16 16:35:54 +01:00
Comment.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Comment.idl LibWeb: Port Comment interface from DeprecatedString to String 2023-09-06 11:44:45 -04:00
CustomEvent.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
CustomEvent.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CustomEvent.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
Document.cpp LibWeb: Move initial creation of Unicode segmenters to the Document 2024-09-22 18:42:31 +02:00
Document.h LibWeb: Move initial creation of Unicode segmenters to the Document 2024-09-22 18:42:31 +02:00
Document.idl LibWeb: Return a WindowProxy from document.defaultView 2024-09-21 10:05:34 +02:00
DocumentFragment.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
DocumentFragment.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentFragment.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
DocumentLoadEventDelayer.cpp
DocumentLoadEventDelayer.h
DocumentLoading.cpp LibWeb: Set document type to HTML for text and media documents 2024-08-30 08:28:16 -04:00
DocumentLoading.h LibWeb: Make NavigationParams be GC-allocated 2024-04-22 17:10:11 +02:00
DocumentObserver.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentObserver.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentOrShadowRoot.idl LibWeb: Add DocumentOrShadowRoot::get_animations() 2024-06-03 10:53:32 +02:00
DocumentType.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
DocumentType.h LibWeb: Make DocumentType::node_name() return DocumentType::name() 2024-07-26 07:19:23 +02:00
DocumentType.idl LibWeb: Expose ChildNode methods on the DocumentType IDL interface 2024-07-19 09:22:08 +02:00
DOMEventListener.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMEventListener.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMImplementation.cpp LibWeb: Make DOMImplementation IDL return an XMLDocument 2024-05-19 16:24:11 +02:00
DOMImplementation.h LibWeb: Make DOMImplementation IDL return an XMLDocument 2024-05-19 16:24:11 +02:00
DOMImplementation.idl LibWeb: Make DOMImplementation IDL return an XMLDocument 2024-05-19 16:24:11 +02:00
DOMTokenList.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
DOMTokenList.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
DOMTokenList.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
Element.cpp LibWeb: Return a WindowProxy from document.defaultView 2024-09-21 10:05:34 +02:00
Element.h LibWeb/DOM: Implement spec changes to dir=auto directionality 2024-09-18 15:18:07 +02:00
Element.idl LibWeb: Implement Element::check_visibility 2024-07-20 09:14:50 +01:00
ElementFactory.cpp LibWeb/SVG: Implement SVGImageElement 2024-08-29 06:28:44 +02:00
ElementFactory.h LibWeb: Use FlyString for create_element() namespace strings 2023-11-04 21:28:30 +01:00
Event.cpp LibWeb: Make “create an event” set the event’s isTrusted to true 2024-09-03 00:14:31 -06:00
Event.h LibWeb: Implement the PointerEvent interface 2024-04-08 14:25:08 +02:00
Event.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
EventDispatcher.cpp LibWeb: Replace templated retarget function with a regular one 2024-07-21 16:01:32 -06:00
EventDispatcher.h
EventHandler.idl LibWeb: Emit "focusin" and "focusout" events 2024-02-25 10:17:25 +01:00
EventTarget.cpp LibWeb: Implement CloseWatcher API 2024-06-22 17:39:53 +02:00
EventTarget.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
EventTarget.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
HTMLCollection.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
HTMLCollection.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
HTMLCollection.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
HTMLFormControlsCollection.cpp Bindings: Remove exception handling for named_item_value 2024-07-26 14:26:16 +02:00
HTMLFormControlsCollection.h Bindings: Remove exception handling for named_item_value 2024-07-26 14:26:16 +02:00
HTMLFormControlsCollection.idl LibWeb: Format all .idl files to use four space indentation 2024-01-18 14:00:06 +01:00
IDLEventListener.cpp LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
IDLEventListener.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
LiveNodeList.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
LiveNodeList.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
MutationObserver.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
MutationObserver.h LibWeb: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
MutationObserver.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
MutationRecord.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
MutationRecord.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationRecord.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
MutationType.cpp
MutationType.h
NamedNodeMap.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
NamedNodeMap.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
NamedNodeMap.idl LibWeb: Use Optional<FlyString> const& in Element and NamedNodeMap 2024-01-03 10:13:47 +01:00
Node.cpp LibWeb: Include siblings+descendants when invalidating style 2024-09-22 18:42:40 +02:00
Node.h LibWeb: Note what's causing a style invalidation to happen 2024-09-08 09:45:31 +02:00
Node.idl LibWeb/DOM: Implement Node.lookupPrefix 2024-07-28 00:51:55 +01:00
NodeFilter.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
NodeFilter.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeFilter.idl IDL: Add missing spec links 2023-11-11 08:51:51 +01:00
NodeIterator.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
NodeIterator.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeIterator.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
NodeList.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
NodeList.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
NodeList.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
NodeOperations.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
NodeOperations.h LibWeb: Remove DeprecatedString support from {Child,Parent}Node 2023-10-06 08:25:40 +02:00
NonDocumentTypeChildNode.h
NonElementParentNode.h LibWeb: Make getElementById() always return first match in tree order 2024-07-21 11:42:53 +01:00
ParentNode.cpp LibWeb: Ensure ParentNode.getElementsByClassName() matches all classes 2024-08-04 10:39:17 +02:00
ParentNode.h LibWeb: Move get_elements_by_name implementation to ParentNode 2024-07-23 08:58:22 +02:00
ParentNode.idl
Position.cpp LibWeb: Add Document helpers to move its cursor to word boundaries 2024-09-06 07:42:59 +02:00
Position.h LibWeb: Add Document helpers to move its cursor to word boundaries 2024-09-06 07:42:59 +02:00
ProcessingInstruction.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
ProcessingInstruction.h LibWeb: Port ProcessingInstruction from ByteString 2023-12-24 13:26:50 +01:00
ProcessingInstruction.idl
QualifiedName.cpp LibWeb: Remove some now unused deprecated functions from QualifiedName 2023-11-06 11:37:08 +01:00
QualifiedName.h LibWeb: Remove some now unused deprecated functions from QualifiedName 2023-11-06 11:37:08 +01:00
RadioNodeList.cpp LibWeb: Avoid FlyString lookups when setting IDL interface prototypes 2024-03-16 16:35:54 +01:00
RadioNodeList.h Userland: Add ESCAPING annotations to a bunch of places 2024-05-22 21:55:34 -06:00
RadioNodeList.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
Range.cpp LibWeb: Implement Range's extension method 2024-09-20 19:58:20 +02:00
Range.h LibWeb: Implement Range's extension method 2024-09-20 19:58:20 +02:00
Range.idl LibWeb: Refactor DOM parsing APIs 2024-06-26 05:41:00 +02:00
ShadowRoot.cpp LibWeb: Rename invalidate_layout() => invalidate_layout_tree() 2024-09-19 10:12:44 +02:00
ShadowRoot.h LibWeb: Implement unsafe HTML parsing methods 2024-06-26 06:13:29 +02:00
ShadowRoot.idl LibWeb: Implement unsafe HTML parsing methods 2024-06-26 06:13:29 +02:00
Slot.cpp LibWeb: Introduce the slot concept for HTML slot elements 2023-09-13 13:45:47 +02:00
Slot.h LibWeb: Introduce the slot concept for HTML slot elements 2023-09-13 13:45:47 +02:00
Slottable.cpp LibWeb: Rename Element::shadow_root_internal() to shadow_root() 2024-06-25 19:22:35 +02:00
Slottable.h LibWeb: Implement manual slottable assignment 2023-09-13 13:45:47 +02:00
Slottable.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
StaticNodeList.cpp Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
StaticNodeList.h Bindings: Implement is_supported_property_index in terms of item_value 2024-07-26 14:26:16 +02:00
StaticRange.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
StaticRange.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
StaticRange.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
StyleElementUtils.cpp LibWeb: Let style elements remember which StyleSheetList they live in 2024-09-21 08:56:01 +02:00
StyleElementUtils.h LibWeb: Let style elements remember which StyleSheetList they live in 2024-09-21 08:56:01 +02:00
Text.cpp LibWeb/DOM: Move "text node directionality" algorithm into DOM::Text 2024-09-18 15:18:07 +02:00
Text.h LibWeb/DOM: Move "text node directionality" algorithm into DOM::Text 2024-09-18 15:18:07 +02:00
Text.idl LibWeb: Implement Text.wholeText 2024-07-20 18:02:51 +01:00
TreeWalker.cpp LibWeb: Remove Bindings/Forward.h from LibWeb/Forward.h 2024-04-27 18:29:35 -04:00
TreeWalker.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
TreeWalker.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
Utils.cpp LibWeb: Replace templated retarget function with a regular one 2024-07-21 16:01:32 -06:00
Utils.h LibWeb: Replace templated retarget function with a regular one 2024-07-21 16:01:32 -06:00
XMLDocument.cpp AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
XMLDocument.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
XMLDocument.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00