1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:48:10 +00:00
serenity/Userland/Libraries/LibWeb/DOM
Luke 5beacf08a2 LibWeb: Make the node mutation algorithms more spec compliant
The mutation algorithms now more closely follow the spec and
fixes some assertion failures in tests such as Acid3 and Dromaeo.

The main thing that is missing right now is passing exceptions to the
bindings layer. This is because of issue #6075. I spent a while trying
to work it out and got so frustrated I just left it as a FIXME. Besides
that, the algorithms bail at the appropriate points.

This also makes the adopting steps in the document more spec compliant
as it's needed by the insertion algorithm. While I was at it, I added
the adoptNode IDL binding.

This adds a bunch of ancestor/descendant checks to TreeNode as well.
I moved the "remove_all_children" function to Node as it needs to use
the full remove algorithm instead of simply removing it from
the child list.
2021-04-06 21:42:00 +02:00
..
Attribute.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
CharacterData.cpp LibWeb: Relayout document on CharacterData data change 2021-02-10 19:06:20 +01:00
CharacterData.h LibWeb: Relayout document on CharacterData data change 2021-02-10 19:06:20 +01:00
CharacterData.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Comment.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Comment.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Comment.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Document.cpp LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
Document.h LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
Document.idl LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
DocumentFragment.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DocumentFragment.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DocumentFragment.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DocumentType.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DocumentType.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DocumentType.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
DOMException.h LibWeb: Add DOM::DOMException class and bindings 2021-02-20 00:09:11 +01:00
DOMException.idl LibWeb: Add DOM::DOMException class and bindings 2021-02-20 00:09:11 +01:00
DOMImplementation.cpp LibWeb: Replace WrapperGenerator's snake_name() with String::to_snakecase() 2021-02-21 19:47:47 +01:00
DOMImplementation.h LibWeb: Replace WrapperGenerator's snake_name() with String::to_snakecase() 2021-02-21 19:47:47 +01:00
DOMImplementation.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Element.cpp LibWeb: Rename "for_each_in_subtree(_of_type)" to "for_each_in_inclusive_subtree(_of_type)" 2021-04-06 21:42:00 +02:00
Element.h LibWeb: Expose barebones CSSStyleDeclaration to JavaScript 2021-03-13 22:41:32 +01:00
Element.idl LibWeb: Expose barebones CSSStyleDeclaration to JavaScript 2021-03-13 22:41:32 +01:00
ElementFactory.cpp LibWeb: Use move semantics for QualifiedName more often 2021-02-07 11:20:15 +01:00
ElementFactory.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Event.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Event.h LibWeb: Add constructor to Event IDL interface 2021-02-17 23:45:07 +01:00
Event.idl LibWeb: Add constructor to Event IDL interface 2021-02-17 23:45:07 +01:00
EventDispatcher.cpp LibWeb: Run queued promise jobs after callbacks 2021-04-02 10:47:40 +02:00
EventDispatcher.h Libraries: Add missing headers 2021-01-22 21:49:54 +01:00
EventListener.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
EventListener.h LibWeb: Basic implementation of global event handlers :^) 2021-02-03 23:03:05 +01:00
EventTarget.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
EventTarget.h LibWeb: Basic implementation of global event handlers :^) 2021-02-03 23:03:05 +01:00
EventTarget.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ExceptionOr.h LibWeb: Add DOM::ExceptionOr<T> container 2021-02-20 00:09:11 +01:00
Node.cpp LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
Node.h LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
Node.idl LibWeb: Make the node mutation algorithms more spec compliant 2021-04-06 21:42:00 +02:00
NonDocumentTypeChildNode.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
NonElementParentNode.h LibWeb: Rename "for_each_in_subtree(_of_type)" to "for_each_in_inclusive_subtree(_of_type)" 2021-04-06 21:42:00 +02:00
ParentNode.cpp LibWeb: Rename "for_each_in_subtree(_of_type)" to "for_each_in_inclusive_subtree(_of_type)" 2021-04-06 21:42:00 +02:00
ParentNode.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Position.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Position.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
ProcessingInstruction.cpp LibWeb: Add ProcessingInstruction node 2021-04-06 21:42:00 +02:00
ProcessingInstruction.h LibWeb: Add ProcessingInstruction node 2021-04-06 21:42:00 +02:00
ProcessingInstruction.idl LibWeb: Add ProcessingInstruction node 2021-04-06 21:42:00 +02:00
Range.cpp LibWeb: Add Document.createRange() 2021-02-21 23:48:01 +01:00
Range.h LibWeb: Add Document.createRange() 2021-02-21 23:48:01 +01:00
Range.idl LibWeb: Add constructor to Range IDL interface 2021-02-17 23:45:07 +01:00
ShadowRoot.cpp LibWeb: Generate layout nodes for shadow subtrees 2021-02-10 19:06:20 +01:00
ShadowRoot.h LibWeb: Generate layout nodes for shadow subtrees 2021-02-10 19:06:20 +01:00
ShadowRoot.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Text.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Text.h LibWeb: Add a way to make a DOM::Text always editable 2021-02-10 19:06:20 +01:00
Text.idl Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Timer.cpp Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Timer.h Libraries: Add missing headers 2021-01-22 21:49:54 +01:00
Window.cpp LibWeb: Implement the Screen interface 2021-04-04 00:37:54 +02:00
Window.h LibWeb: Implement the Screen interface 2021-04-04 00:37:54 +02:00