ladybird/Userland/Libraries/LibWeb/DOM
Andreas Kling 28fdc7af05 LibWeb: Detach stale layout nodes from DOM during layout tree build
When toggling `display: none` on an element, it can go from having a
layout subtree to not having one. In the `none` case, we were previously
leaving stale layout nodes hanging off DOM nodes in the subtree.

These layout nodes could be queried for outdated information and
probably other things that we shouldn't allow.

Fix this by having TreeBuilder prune any old layout nodes hanging off
nodes in a subtree after its subtree root doesn't produce a layout node.
2023-08-01 09:19:41 +02:00
..
AbortController.cpp LibWeb: Make factory method of DOM::AbortSignal fallible 2023-02-18 00:52:47 +01:00
AbortController.h LibWeb: Make factory method of DOM::AbortController fallible 2023-02-18 00:52:47 +01:00
AbortController.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
AbortSignal.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
AbortSignal.h LibWeb: Make factory method of DOM::AbortSignal fallible 2023-02-18 00:52:47 +01:00
AbortSignal.idl LibWeb: Replace ad-hoc EventHandler type with callback function typedef 2022-03-31 01:10:47 +02:00
AbstractRange.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
AbstractRange.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
AbstractRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
AccessibilityTreeNode.cpp LibJS+LibWeb: Add missing visit calls in visit_edges implementations 2023-04-30 06:04:33 +02:00
AccessibilityTreeNode.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Attr.cpp LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
Attr.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Attr.idl LibWeb: Rename Attribute to Attr 2022-09-18 02:08:01 +02:00
CDATASection.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CDATASection.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CDATASection.idl LibWeb: Add CDATASection 2022-06-27 22:53:04 +01:00
CharacterData.cpp LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
CharacterData.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CharacterData.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
ChildNode.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
ChildNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Comment.cpp LibWeb: Set Comment's prototype 2023-04-14 12:30:43 +02:00
Comment.h LibWeb: Set Comment's prototype 2023-04-14 12:30:43 +02:00
Comment.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
CustomEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
CustomEvent.h LibWeb: Port CustomEvent to new String 2023-04-07 22:41:01 +02:00
CustomEvent.idl LibWeb: Port CustomEvent to new String 2023-04-07 22:41:01 +02:00
Document.cpp AK: Serialize URL hosts with 'concept-host-serializer' 2023-07-31 05:18:51 +02:00
Document.h LibWeb: Implement <meta http-equiv="Refresh"> 2023-07-28 11:12:25 +02:00
Document.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
DocumentFragment.cpp LibWeb: Make factory method of DOM::DocumentFragment fallible 2023-02-18 00:52:47 +01:00
DocumentFragment.h LibWeb: Make factory method of DOM::DocumentFragment fallible 2023-02-18 00:52:47 +01:00
DocumentFragment.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DocumentLoadEventDelayer.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentLoadEventDelayer.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentLoading.cpp LibWeb: Create an audio document for audio/ MIME types on navigation 2023-06-17 14:16:26 +02:00
DocumentLoading.h LibWeb: Implement "attempt to populate the history entry's document" 2023-05-03 09:39:49 +02:00
DocumentObserver.cpp LibWeb: Add an interface to be notified of Document state changes 2023-05-04 16:48:10 +02:00
DocumentObserver.h LibWeb: Rename loaded observer event to match spec 2023-07-12 13:16:23 +02:00
DocumentType.cpp LibWeb: Make factory method of DOM::DocumentType fallible 2023-02-18 00:52:47 +01:00
DocumentType.h LibWeb: Make factory method of DOM::DocumentType fallible 2023-02-18 00:52:47 +01:00
DocumentType.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DOMEventListener.cpp LibJS+LibWeb: Normalize calls to Base::visit_edges in GC objects 2023-04-30 06:04:33 +02:00
DOMEventListener.h LibJS+LibWeb: Normalize calls to Base::visit_edges in GC objects 2023-04-30 06:04:33 +02:00
DOMImplementation.cpp LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
DOMImplementation.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
DOMImplementation.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DOMTokenList.cpp LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
DOMTokenList.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
DOMTokenList.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Element.cpp LibWeb: Don't assume opacity values are CSS numbers 2023-07-31 09:16:18 +02:00
Element.h LibWeb: Add initial implementation of IntersectionObserver 2023-07-07 05:27:25 +02:00
Element.idl LibWeb: Stub out Element.scroll() and Element.scrollTo() 2023-06-08 10:05:56 +02:00
ElementFactory.cpp LibWeb: Add support for SVG <tspan> elements 2023-07-23 06:32:39 +02:00
ElementFactory.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Event.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
Event.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Event.idl LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
EventDispatcher.cpp LibWeb: Port DOMEventListener to new FlyString 2023-04-09 17:27:27 +02:00
EventDispatcher.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
EventHandler.idl LibWeb: Implement WindowEventHandlers 2022-06-29 21:21:50 +01:00
EventTarget.cpp LibJS+LibWeb: Plumb local variables names to ECMAScriptFunctionObject 2023-07-05 21:03:01 +02:00
EventTarget.h LibWeb: Implement the EventTarget constructor 2023-05-04 16:12:40 +02:00
EventTarget.idl LibWeb: Implement the EventTarget constructor 2023-05-04 16:12:40 +02:00
HTMLCollection.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
HTMLCollection.h LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
HTMLCollection.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
IDLEventListener.cpp LibWeb+LibJS: Move some code around to make CSS/Parser parse faster 2023-07-11 09:38:37 +03:30
IDLEventListener.h LibWeb: Make factory methods of IDLEventListener and NodeFilter fallible 2023-02-22 09:55:33 +01:00
InnerHTML.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
LiveNodeList.cpp LibWeb+LibJS: Move some code around to make CSS/Parser parse faster 2023-07-11 09:38:37 +03:30
LiveNodeList.h LibWeb: Make LiveNodeList faster when it only cares about children 2023-05-23 14:38:45 +02:00
MutationObserver.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
MutationObserver.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
MutationObserver.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationRecord.cpp LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationRecord.h LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationRecord.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationType.cpp LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationType.h LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
NamedNodeMap.cpp LibWeb: Implement Element.setAttributeNode{,NS}() 2023-03-10 14:56:29 +01:00
NamedNodeMap.h LibWeb: Implement Element.setAttributeNode{,NS}() 2023-03-10 14:56:29 +01:00
NamedNodeMap.idl LibWeb: Add NamedNodeMap::setNamedItemNS() method 2022-12-17 18:27:57 +01:00
Node.cpp LibWeb: Detach stale layout nodes from DOM during layout tree build 2023-08-01 09:19:41 +02:00
Node.h LibWeb: Detach stale layout nodes from DOM during layout tree build 2023-08-01 09:19:41 +02:00
Node.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
NodeFilter.cpp LibJS: Make intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
NodeFilter.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
NodeFilter.idl LibWeb: Expose NodeFilter on the Window object 2022-10-28 16:17:08 +01:00
NodeIterator.cpp LibWeb: Make factory method of DOM::NodeIterator fallible 2023-02-18 00:52:47 +01:00
NodeIterator.h LibWeb: Make factory method of DOM::NodeIterator fallible 2023-02-18 00:52:47 +01:00
NodeIterator.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
NodeList.cpp LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
NodeList.h LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
NodeList.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
NodeOperations.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
NodeOperations.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NonDocumentTypeChildNode.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonElementParentNode.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
ParentNode.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
ParentNode.h LibWeb: Allow SVG painting to escape out of a shadow tree 2023-06-03 05:58:00 +02:00
ParentNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Position.cpp LibWeb: Skip over grapheme clusters on left/right arrow key presses 2023-03-01 14:24:01 +00:00
Position.h LibWeb: Convert Web::DOM::Position::to_deprecated_string to String 2023-03-01 14:24:01 +00:00
ProcessingInstruction.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
ProcessingInstruction.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
ProcessingInstruction.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
QualifiedName.cpp LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
QualifiedName.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Range.cpp LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
Range.h LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
Range.idl LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
ShadowRoot.cpp LibWeb: Allow to set a root mode value when constructing a ShadowRoot 2023-02-02 14:43:29 +01:00
ShadowRoot.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
ShadowRoot.idl LibWeb: Make ShadowRoot.mode return ShadowRootMode instead of String 2023-02-02 14:43:29 +01:00
StaticNodeList.cpp LibWeb+LibJS: Move some code around to make CSS/Parser parse faster 2023-07-11 09:38:37 +03:30
StaticNodeList.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StaticRange.cpp LibWeb: Return JS::NonnullGCPtr<StaticRange> instead of StaticRange* 2023-02-18 00:52:47 +01:00
StaticRange.h LibWeb: Return JS::NonnullGCPtr<StaticRange> instead of StaticRange* 2023-02-18 00:52:47 +01:00
StaticRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
StyleElementUtils.cpp LibWeb: Extract updating a style block into StyleElementUtils 2023-06-09 17:14:50 +02:00
StyleElementUtils.h LibWeb: Extract updating a style block into StyleElementUtils 2023-06-09 17:14:50 +02:00
Text.cpp LibWeb: Make factory method of DOM::Text fallible 2023-02-18 00:52:47 +01:00
Text.h LibWeb: Make factory method of DOM::Text fallible 2023-02-18 00:52:47 +01:00
Text.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
TreeWalker.cpp LibWeb: Make factory method of DOM::TreeWalker fallible 2023-02-18 00:52:47 +01:00
TreeWalker.h LibWeb: Make factory method of DOM::TreeWalker fallible 2023-02-18 00:52:47 +01:00
TreeWalker.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
XMLDocument.cpp LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00
XMLDocument.h LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00
XMLDocument.idl LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00