mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 12:05:15 +00:00
LibWeb: Update innerHTML & co IDL definition to match spec
This stuff has moved from a mixin defined by the DOM Parsing spec, over to the HTML spec, where they are now defined as partial interfaces for Element and ShadowRoot. There's also some new functionality that we don't implement yet, so patch marks them as FIXME properties.
This commit is contained in:
parent
f4bdf56212
commit
0c47b3ff97
Notes:
sideshowbarker
2024-07-17 10:05:47 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/0c47b3ff97 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/278 Reviewed-by: https://github.com/mattco98 Reviewed-by: https://github.com/nico
4 changed files with 29 additions and 9 deletions
|
@ -37,6 +37,11 @@ struct ShadowRootInit {
|
|||
bool serializable = false;
|
||||
};
|
||||
|
||||
struct GetHTMLOptions {
|
||||
bool serializable_shadow_roots { false };
|
||||
Vector<JS::Handle<ShadowRoot>> shadow_roots {};
|
||||
};
|
||||
|
||||
// https://w3c.github.io/csswg-drafts/cssom-view-1/#dictdef-scrollintoviewoptions
|
||||
struct ScrollIntoViewOptions : public HTML::ScrollOptions {
|
||||
Bindings::ScrollLogicalPosition block { Bindings::ScrollLogicalPosition::Start };
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#import <DOM/Attr.idl>
|
||||
#import <DOM/ChildNode.idl>
|
||||
#import <DOM/DOMTokenList.idl>
|
||||
#import <DOM/InnerHTML.idl>
|
||||
#import <DOM/NamedNodeMap.idl>
|
||||
#import <DOM/Node.idl>
|
||||
#import <DOM/NodeList.idl>
|
||||
|
@ -94,12 +93,26 @@ interface Element : Node {
|
|||
readonly attribute long clientHeight;
|
||||
readonly attribute double currentCSSZoom;
|
||||
|
||||
// https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface
|
||||
// https://html.spec.whatwg.org/#dom-parsing-and-serialization
|
||||
[FIXME, CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
||||
[FIXME] DOMString getHTML(optional GetHTMLOptions options = {});
|
||||
|
||||
// FIXME: [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
||||
[CEReactions, LegacyNullToEmptyString] attribute DOMString innerHTML;
|
||||
|
||||
// FIXME: [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML;
|
||||
[CEReactions, LegacyNullToEmptyString] attribute DOMString outerHTML;
|
||||
|
||||
// FIXME: [CEReactions] undefined insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) string);
|
||||
[CEReactions] undefined insertAdjacentHTML(DOMString position, DOMString text);
|
||||
|
||||
};
|
||||
|
||||
dictionary GetHTMLOptions {
|
||||
boolean serializableShadowRoots = false;
|
||||
sequence<ShadowRoot> shadowRoots = [];
|
||||
};
|
||||
|
||||
dictionary ShadowRootInit {
|
||||
required ShadowRootMode mode;
|
||||
boolean delegatesFocus = false;
|
||||
|
@ -110,7 +123,6 @@ dictionary ShadowRootInit {
|
|||
|
||||
Element includes ParentNode;
|
||||
Element includes ChildNode;
|
||||
Element includes InnerHTML;
|
||||
// https://www.w3.org/TR/wai-aria-1.2/#idl_element
|
||||
Element includes ARIAMixin;
|
||||
Element includes Slottable;
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin
|
||||
interface mixin InnerHTML {
|
||||
[LegacyNullToEmptyString, CEReactions] attribute DOMString innerHTML;
|
||||
};
|
|
@ -1,6 +1,6 @@
|
|||
#import <DOM/DocumentFragment.idl>
|
||||
#import <DOM/DocumentOrShadowRoot.idl>
|
||||
#import <DOM/InnerHTML.idl>
|
||||
#import <DOM/Element.idl>
|
||||
|
||||
// https://dom.spec.whatwg.org/#shadowroot
|
||||
[Exposed=Window]
|
||||
|
@ -12,9 +12,16 @@ interface ShadowRoot : DocumentFragment {
|
|||
readonly attribute boolean serializable;
|
||||
readonly attribute Element host;
|
||||
attribute EventHandler onslotchange;
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization
|
||||
|
||||
[FIXME, CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
||||
[FIXME] DOMString getHTML(optional GetHTMLOptions options = {});
|
||||
|
||||
// FIXME: [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
||||
[CEReactions, LegacyNullToEmptyString] attribute DOMString innerHTML;
|
||||
};
|
||||
|
||||
ShadowRoot includes InnerHTML;
|
||||
ShadowRoot includes DocumentOrShadowRoot;
|
||||
|
||||
enum ShadowRootMode { "open", "closed" };
|
||||
|
|
Loading…
Add table
Reference in a new issue