1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-30 16:58:11 +00:00
serenity/Userland/Libraries/LibWeb/DOM
Timothy Flynn 5608bc4eaf LibWeb: Remove inheritance of FormAssociatedElement from HTMLElement
HTMLObjectElement will need to be both a FormAssociatedElement and a
BrowsingContextContainer. Currently, both of these classes inherit from
HTMLElement. This can work in C++, but is generally frowned upon, and
doesn't play particularly well with the rest of LibWeb.

Instead, we can essentially revert commit 3bb5c62 to remove HTMLElement
from FormAssociatedElement's hierarchy. This means that objects such as
HTMLObjectElement individually inherit from FormAssociatedElement and
HTMLElement now.

Some caveats are:

* FormAssociatedElement still needs to know when the HTMLElement is
  inserted into and removed from the DOM. This hook is automatically
  injected via a macro now, while still allowing classes like
  HTMLInputElement to also know when the element is inserted.

* Casting from a DOM::Element to a FormAssociatedElement is now a
  sideways cast, rather than directly following an inheritance chain.
  This means static_cast cannot be used here; but we can safely use
  dynamic_cast since the only 2 instances of this already use RTTI to
  verify the cast.
2022-03-24 03:35:11 +01:00
..
AbortController.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
AbortController.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
AbortController.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
AbortSignal.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
AbortSignal.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
AbortSignal.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
AbstractRange.h LibWeb: Abstract Range's members into AbstractRange 2022-02-26 12:53:32 +01:00
AbstractRange.idl LibWeb: Abstract Range's members into AbstractRange 2022-02-26 12:53:32 +01:00
Attribute.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Attribute.h LibWeb: Make Range.setStart and Range.setEnd spec compliant 2022-02-26 12:53:32 +01:00
Attribute.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
CharacterData.cpp LibWeb: Update live DOM ranges on Text and CharacterData mutations 2022-03-21 20:06:59 +01:00
CharacterData.h LibWeb: Add CharacterData.replaceData(offset, count, data) 2022-03-21 18:05:20 +01:00
CharacterData.idl LibWeb: Add CharacterData.replaceData(offset, count, data) 2022-03-21 18:05:20 +01:00
ChildNode.h LibWeb: Convert ChildNode to use TRY for error propagation 2022-03-22 18:05:25 +00:00
Comment.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
Comment.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
Comment.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
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: Fill the whole viewport with the correct background color 2022-03-23 17:38:00 +01:00
Document.h LibWeb: Don't allow setting Range start/end to document being destroyed 2022-03-21 20:37:49 +01:00
Document.idl LibWeb: Add support for DOM's TreeWalker 2022-03-09 16:43:55 +01:00
DocumentFragment.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
DocumentFragment.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
DocumentFragment.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
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 Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
DocumentType.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
DocumentType.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
DOMEventListener.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
DOMEventListener.h LibWeb: Use public inheritance for the RefCounted base class 2022-02-17 11:16:18 +01: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: Convert DOMImplementation to use TRY for error propagation 2022-03-22 18:05:25 +00:00
DOMImplementation.h LibWeb: Support DOMImplementation.createDocument() doctype parameter 2022-03-02 09:18:19 +01:00
DOMImplementation.idl LibWeb: Support DOMImplementation.createDocument() doctype parameter 2022-03-02 09:18:19 +01:00
DOMTokenList.cpp LibWeb: Convert DOMTokenList to use TRY for error propagation 2022-03-22 18:05:25 +00:00
DOMTokenList.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
DOMTokenList.idl LibWeb: Implement DOMTokenList for managing space-separated tokens lists 2021-10-18 23:33:56 +02:00
Element.cpp LibWeb: Convert Element to use TRY for error propagation 2022-03-22 18:05:25 +00:00
Element.h LibWeb: Clear element.style when the "style" attribute is removed 2022-03-20 16:31:40 +01:00
Element.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
ElementFactory.cpp LibWeb: Add a barebones SVGTextContentElement with getNumberOfChars() 2022-03-20 13:36:45 +01:00
ElementFactory.h LibWeb: Support (and validate) prefixes in Document.createElementNS() 2022-03-02 10:55:16 +01:00
Event.cpp LibWeb: Implement Event.composedPath 2021-10-17 01:34:02 +03:00
Event.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
Event.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
EventDispatcher.cpp LibWeb: Refactor all LabelableNode subclasses + input event handling :^) 2022-03-16 00:38:31 +01:00
EventDispatcher.h LibWeb: Separate "event listener" from "EventListener" 2022-02-16 22:21:45 +01:00
EventTarget.cpp LibWeb: Remove inheritance of FormAssociatedElement from HTMLElement 2022-03-24 03:35:11 +01:00
EventTarget.h LibWeb: Refactor all LabelableNode subclasses + input event handling :^) 2022-03-16 00:38:31 +01:00
EventTarget.idl LibWeb: Add support for the options variant of {add,remove}EventListener 2022-02-20 02:03:24 +01:00
ExceptionOr.h LibWeb: Make DOM::ExceptionOr compatible with the TRY macro 2022-03-22 12:09:27 +00:00
HTMLCollection.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
HTMLCollection.h LibWeb: Expose HTMLCollection's root element to its subclasses 2022-03-22 02:08:15 +01:00
HTMLCollection.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
IDLEventListener.h LibWeb: Add support for the options variant of {add,remove}EventListener 2022-02-20 02:03:24 +01: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
NamedNodeMap.cpp Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
NamedNodeMap.h Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
NamedNodeMap.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
Node.cpp LibWeb: Convert Node to use TRY for error propagation 2022-03-22 18:05:25 +00:00
Node.h LibWeb: Add some fast_is<T> helpers for hot classes on GitHub :^) 2022-03-13 18:09:43 +01:00
Node.idl LibWeb: Implement Node.nodeValue DOM attribute 2022-02-21 16:31:45 +01:00
NodeFilter.h LibWeb: Add basic support for DOM's NodeIterator and NodeFilter 2022-03-09 16:43:00 +01:00
NodeFilter.idl LibWeb: Add basic support for DOM's NodeIterator and NodeFilter 2022-03-09 16:43:00 +01:00
NodeIterator.cpp LibWeb: Make NodeIterator behave like other browser engines 2022-03-23 00:22:36 +01:00
NodeIterator.h LibWeb: Make NodeIterator behave like other browser engines 2022-03-23 00:22:36 +01:00
NodeIterator.idl LibWeb: Add basic support for DOM's NodeIterator and NodeFilter 2022-03-09 16:43:00 +01:00
NodeList.h LibWeb: Add support for NodeList 2021-10-03 00:18:52 +02:00
NodeList.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
NodeOperations.cpp LibWeb: Convert NodeOperations to use TRY for error propagation 2022-03-22 18:05:25 +00:00
NodeOperations.h LibWeb: Implement ParentNode.prepend 2022-01-31 15:25:36 +01:00
NonDocumentTypeChildNode.h LibWeb: Implement EventHandler::focus_previous_element() 2022-02-08 22:15:10 +00: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 to use TRY for error propagation 2022-03-22 18:05:25 +00:00
ParentNode.h LibWeb: Add fast_is<ParentNode>() 2022-03-15 19:48:19 +01:00
Position.cpp LibWeb: Remove unnecessary DOM::Position destructor 2021-09-08 11:14:29 +02:00
Position.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
ProcessingInstruction.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
ProcessingInstruction.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
ProcessingInstruction.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
QualifiedName.cpp LibWeb: Share QualifiedName data between identical instances 2022-02-19 14:45:59 +01:00
QualifiedName.h LibWeb: Share QualifiedName data between identical instances 2022-02-19 14:45:59 +01:00
Range.cpp LibWeb: Implement Range.deleteContents() 2022-03-22 20:17:52 +01:00
Range.h LibWeb: Implement Range.deleteContents() 2022-03-22 20:17:52 +01:00
Range.idl LibWeb: Implement Range.deleteContents() 2022-03-22 20:17:52 +01:00
ShadowRoot.cpp LibWeb: Convert ShadowRoot to use TRY for error propagation 2022-03-22 18:05:25 +00:00
ShadowRoot.h LibWeb: Add some fast_is<T> helpers for hot classes on GitHub :^) 2022-03-13 18:09:43 +01:00
ShadowRoot.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
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
StaticRange.cpp Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
StaticRange.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
StaticRange.idl LibWeb: Implement StaticRange 2022-02-26 12:53:32 +01:00
Text.cpp LibWeb: Convert Text to use TRY for error propagation 2022-03-22 18:05:25 +00:00
Text.h LibWeb: Implement Text.splitText(offset) 2022-03-21 19:14:50 +01:00
Text.idl LibWeb: Implement Text.splitText(offset) 2022-03-21 19:14:50 +01:00
TreeWalker.cpp LibWeb: Minor cleanups in NodeIterator and TreeWalker 2022-03-23 00:19:57 +01:00
TreeWalker.h Libraries: Use default constructors/destructors in LibWeb 2022-03-17 17:23:49 +00:00
TreeWalker.idl LibWeb: Add support for DOM's TreeWalker 2022-03-09 16:43:55 +01:00