1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 14:38:11 +00:00
serenity/Userland/Libraries/LibWeb/DOM
Timothy Flynn e01dfaac9a LibWeb: Implement Attribute closer to the spec and with an IDL file
Note our Attribute class is what the spec refers to as just "Attr". The
main differences between the existing implementation and the spec are
just that the spec defines more fields.

Attributes can contain namespace URIs and prefixes. However, note that
these are not parsed in HTML documents unless the document content-type
is XML. So for now, these are initialized to null. Web pages are able to
set the namespace via JavaScript (setAttributeNS), so these fields may
be filled in when the corresponding APIs are implemented.

The main change to be aware of is that an attribute is a node. This has
implications on how attributes are stored in the Element class. Nodes
are non-copyable and non-movable because these constructors are deleted
by the EventTarget base class. This means attributes cannot be stored in
a Vector or HashMap as these containers assume copyability / movability.
So for now, the Vector holding attributes is changed to hold RefPtrs to
attributes instead. This might change when attribute storage is
implemented according to the spec (by way of NamedNodeMap).
2021-10-17 13:51:10 +01:00
..
AbortController.cpp LibWeb: Add initial support for AbortController and AbortSignal 2021-09-02 09:12:17 +02:00
AbortController.h LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
AbortController.idl LibWeb: Add initial support for AbortController and AbortSignal 2021-09-02 09:12:17 +02:00
AbortSignal.cpp LibWeb: Implement AbortSignal.onabort 2021-10-01 02:10:56 +02:00
AbortSignal.h LibWeb: Implement AbortSignal.onabort 2021-10-01 02:10:56 +02:00
AbortSignal.idl LibWeb: Implement AbortSignal.onabort 2021-10-01 02:10:56 +02:00
Attribute.cpp LibWeb: Implement Attribute closer to the spec and with an IDL file 2021-10-17 13:51:10 +01:00
Attribute.h LibWeb: Implement Attribute closer to the spec and with an IDL file 2021-10-17 13:51:10 +01:00
Attribute.idl LibWeb: Implement Attribute closer to the spec and with an IDL file 2021-10-17 13:51:10 +01:00
CharacterData.cpp LibWeb: Make CSS layout lazier 2021-10-06 17:14:22 +02:00
CharacterData.h LibWeb: Implement ChildNode.remove 2021-09-29 17:56:13 +02:00
CharacterData.idl LibWeb: Implement ChildNode.remove 2021-09-29 17:56:13 +02:00
ChildNode.h LibWeb: Implement ChildNode.remove 2021-09-29 17:56:13 +02:00
Comment.cpp LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
Comment.h LibWeb: Add constructors for Text, DocumentFragment and Comment 2021-09-06 02:18:41 +02:00
Comment.idl LibWeb: Add constructors for Text, DocumentFragment and Comment 2021-09-06 02:18:41 +02:00
CustomEvent.cpp LibWeb: Add the missing CustomEvent IDL constructor 2021-09-29 19:38:41 +02:00
CustomEvent.h LibWeb: Add the missing CustomEvent IDL constructor 2021-09-29 19:38:41 +02:00
CustomEvent.idl LibWeb: Use the LibWeb source directory as the IDL #import base path 2021-10-01 20:14:45 +02:00
Document.cpp LibWeb: Style update must recurse into nodes with dirty children 2021-10-12 17:46:39 +02:00
Document.h LibWeb: Make CSS layout lazier 2021-10-06 17:14:22 +02:00
Document.idl LibWeb: Convert ParentNode.querySelectorAll to NodeList 2021-10-03 00:18:52 +02:00
DocumentFragment.cpp LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
DocumentFragment.h LibWeb: Add constructors for Text, DocumentFragment and Comment 2021-09-06 02:18:41 +02:00
DocumentFragment.idl LibWeb: Convert ParentNode.querySelectorAll to NodeList 2021-10-03 00:18:52 +02:00
DocumentLoadEventDelayer.cpp LibWeb: Allow HTML parser to delay delivery of the document "load" event 2021-09-26 02:00:00 +02:00
DocumentLoadEventDelayer.h LibWeb: Allow HTML parser to delay delivery of the document "load" event 2021-09-26 02:00:00 +02:00
DocumentType.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DocumentType.h LibWeb: Implement ChildNode.remove 2021-09-29 17:56:13 +02:00
DocumentType.idl LibWeb: Implement ChildNode.remove 2021-09-29 17:56:13 +02:00
DOMException.h LibWeb: Replace heycam.github.io/webidl URLs with webidl.spec.whatwg.org 2021-10-11 13:15:16 +01:00
DOMException.idl LibWeb: Add support for optional default values and optional bools in IDL 2021-04-11 18:27:52 +02:00
DOMImplementation.cpp LibWeb: Add createDocument and createDocumentType for DOMImplementation 2021-05-04 22:59:15 +01:00
DOMImplementation.h LibWeb: Add createDocument and createDocumentType for DOMImplementation 2021-05-04 22:59:15 +01:00
DOMImplementation.idl LibWeb: Add createDocument and createDocumentType for DOMImplementation 2021-05-04 22:59:15 +01:00
Element.cpp LibWeb: Implement Attribute closer to the spec and with an IDL file 2021-10-17 13:51:10 +01:00
Element.h LibWeb: Implement Attribute closer to the spec and with an IDL file 2021-10-17 13:51:10 +01:00
Element.idl LibWeb: Convert ParentNode.querySelectorAll to NodeList 2021-10-03 00:18:52 +02:00
ElementFactory.cpp LibWeb: Add a bare-bones SVG <g> element 2021-09-18 01:39:59 +02:00
ElementFactory.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Event.cpp LibWeb: Implement Event.composedPath 2021-10-17 01:34:02 +03:00
Event.h LibWeb: Implement Event.composedPath 2021-10-17 01:34:02 +03:00
Event.idl LibWeb: Implement Event.composedPath 2021-10-17 01:34:02 +03:00
EventDispatcher.cpp LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
EventDispatcher.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
EventListener.cpp LibJS: Rename Function => FunctionObject 2021-06-27 22:36:04 +02:00
EventListener.h LibJS: Rename Function => FunctionObject 2021-06-27 22:36:04 +02:00
EventTarget.cpp LibWeb: Mark event listeners generated by event handler attributes 2021-09-26 02:53:57 +02:00
EventTarget.h LibWeb: Provide a default DOM::EventTarget::dispatch_event() 2021-09-25 23:36:43 +02:00
EventTarget.idl LibWeb: Implement EventTarget.dispatchEvent 2021-05-04 23:41:44 +01:00
ExceptionOr.h LibWeb: Replace heycam.github.io/webidl URLs with webidl.spec.whatwg.org 2021-10-11 13:15:16 +01:00
HTMLCollection.cpp LibWeb: Convert HTMLCollection to use IDL special operations 2021-09-26 18:59:56 +02:00
HTMLCollection.h LibWeb: Convert HTMLCollection to use IDL special operations 2021-09-26 18:59:56 +02:00
HTMLCollection.idl LibWeb: Convert HTMLCollection to use IDL special operations 2021-09-26 18:59:56 +02:00
LiveNodeList.cpp LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
LiveNodeList.h LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
Node.cpp LibWeb: Implement Node.getRootNode 2021-10-16 10:51:23 +02:00
Node.h LibWeb: Implement Node.getRootNode 2021-10-16 10:51:23 +02:00
Node.idl LibWeb: Implement Node.getRootNode 2021-10-16 10:51:23 +02:00
NodeList.h LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
NodeList.idl LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
NonDocumentTypeChildNode.h LibWeb: Use default instead of an empty constructor/destructor 2021-09-16 17:17:13 +02:00
NonElementParentNode.h LibWeb: Use default instead of an empty constructor/destructor 2021-09-16 17:17:13 +02:00
ParentNode.cpp LibWeb: Convert ParentNode.querySelectorAll to NodeList 2021-10-03 00:18:52 +02:00
ParentNode.h LibWeb: Convert ParentNode.querySelectorAll to NodeList 2021-10-03 00:18:52 +02:00
Position.cpp LibWeb: Remove unnecessary DOM::Position destructor 2021-09-08 11:14:29 +02:00
Position.h LibWeb: Remove unnecessary DOM::Position destructor 2021-09-08 11:14:29 +02:00
ProcessingInstruction.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ProcessingInstruction.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ProcessingInstruction.idl LibWeb: Add ProcessingInstruction node 2021-04-06 21:42:00 +02:00
Range.cpp LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
Range.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Range.idl LibWeb: Add constructor to Range IDL interface 2021-02-17 23:45:07 +01:00
ShadowRoot.cpp LibWeb: Clean up static function in header 2021-10-06 23:52:40 +01:00
ShadowRoot.h LibWeb: Make the innerHTML setter spec compliant 2021-09-14 02:09:18 +02:00
ShadowRoot.idl LibWeb: Make the innerHTML setter spec compliant 2021-09-14 02:09:18 +02:00
StaticNodeList.cpp LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
StaticNodeList.h LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
Text.cpp LibWeb: Rename DOM::Window::document() => associated_document() 2021-09-09 21:25:10 +02:00
Text.h LibWeb: Add constructors for Text, DocumentFragment and Comment 2021-09-06 02:18:41 +02:00
Text.idl LibWeb: Add constructors for Text, DocumentFragment and Comment 2021-09-06 02:18:41 +02:00
Timer.cpp LibJS: Rename Function => FunctionObject 2021-06-27 22:36:04 +02:00
Timer.h LibJS: Rename Function => FunctionObject 2021-06-27 22:36:04 +02:00
Window.cpp LibWeb: Stub out a basic Selection interface 2021-10-11 00:32:19 +02:00
Window.h LibWeb: Stub out a basic Selection interface 2021-10-11 00:32:19 +02:00