From 200e111af0eeb619f22b25149dea7feb697cf239 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Wed, 27 Jul 2022 20:42:20 +0100 Subject: [PATCH] LibWeb: Extract the InnerHTML IDL mixin --- Userland/Libraries/LibWeb/DOM/Element.idl | 4 +--- Userland/Libraries/LibWeb/DOM/InnerHTML.idl | 7 +++++++ Userland/Libraries/LibWeb/DOM/ShadowRoot.idl | 14 +++++++++----- 3 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 Userland/Libraries/LibWeb/DOM/InnerHTML.idl diff --git a/Userland/Libraries/LibWeb/DOM/Element.idl b/Userland/Libraries/LibWeb/DOM/Element.idl index e2d461d8bbc..0baea125dad 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.idl +++ b/Userland/Libraries/LibWeb/DOM/Element.idl @@ -1,6 +1,7 @@ #import #import #import +#import #import #import #import @@ -29,9 +30,6 @@ interface Element : Node { HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName); HTMLCollection getElementsByClassName(DOMString className); - // FIXME: This should come from a InnerHTML mixin. - [LegacyNullToEmptyString, CEReactions] attribute DOMString innerHTML; - [Reflect] attribute DOMString id; [Reflect=class] attribute DOMString className; [SameObject, PutForwards=value] readonly attribute DOMTokenList classList; diff --git a/Userland/Libraries/LibWeb/DOM/InnerHTML.idl b/Userland/Libraries/LibWeb/DOM/InnerHTML.idl new file mode 100644 index 00000000000..5fce4cd4f57 --- /dev/null +++ b/Userland/Libraries/LibWeb/DOM/InnerHTML.idl @@ -0,0 +1,7 @@ +// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin +interface mixin InnerHTML { + [LegacyNullToEmptyString, CEReactions] attribute DOMString innerHTML; +}; + +Element includes InnerHTML; +ShadowRoot includes InnerHTML; diff --git a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl index 769bf4b3ac2..d1efd129d0a 100644 --- a/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl +++ b/Userland/Libraries/LibWeb/DOM/ShadowRoot.idl @@ -1,11 +1,15 @@ #import +#import +// https://dom.spec.whatwg.org/#shadowroot interface ShadowRoot : DocumentFragment { - + // FIXME: mode should return a ShadowRootMode readonly attribute DOMString mode; + // FIXME: readonly attribute boolean delegatesFocus; + // FIXME: readonly attribute SlotAssignmentMode slotAssignment; readonly attribute Element host; - - // FIXME: This should come from a InnerHTML mixin. - [LegacyNullToEmptyString] attribute DOMString innerHTML; - + // FIXME: attribute EventHandler onslotchange; }; + +enum ShadowRootMode { "open", "closed" }; +enum SlotAssignmentMode { "manual", "named" };