Diff
Modified: trunk/LayoutTests/ChangeLog (269879 => 269880)
--- trunk/LayoutTests/ChangeLog 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/LayoutTests/ChangeLog 2020-11-16 22:40:26 UTC (rev 269880)
@@ -1,3 +1,16 @@
+2020-11-16 Antoine Quint <[email protected]>
+
+ Add an experimental <model> element
+ https://bugs.webkit.org/show_bug.cgi?id=218991
+
+ Reviewed by Dean Jackson.
+
+ Add a new system-preview/model subdirectory for <model> tests, which we run on macOS and iOS.
+
+ * platform/mac/TestExpectations:
+ * system-preview/model/model-element-expected.txt: Added.
+ * system-preview/model/model-element.html: Added.
+
2020-11-16 Truitt Savell <[email protected]>
Modify expectations for webgpu/whlsl/dont-crash-parsing-enum.html
Modified: trunk/LayoutTests/platform/mac/TestExpectations (269879 => 269880)
--- trunk/LayoutTests/platform/mac/TestExpectations 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2020-11-16 22:40:26 UTC (rev 269880)
@@ -15,6 +15,7 @@
fast/dom/Range/mac [ Pass ]
fast/scrolling/latching [ Pass ]
media/mac [ Pass ]
+system-preview/model [ Pass ]
fast/forms/search/search-padding-cancel-results-buttons.html [ Pass ]
fast/forms/search/search-results-hidden-crash.html [ Pass ]
Added: trunk/LayoutTests/system-preview/model/model-element-expected.txt (0 => 269880)
--- trunk/LayoutTests/system-preview/model/model-element-expected.txt (rev 0)
+++ trunk/LayoutTests/system-preview/model/model-element-expected.txt 2020-11-16 22:40:26 UTC (rev 269880)
@@ -0,0 +1,4 @@
+
+PASS HTMLModelElement is exposed on Window.
+PASS document.createElement('model') returns an HTMLModelElement object.
+
Added: trunk/LayoutTests/system-preview/model/model-element.html (0 => 269880)
--- trunk/LayoutTests/system-preview/model/model-element.html (rev 0)
+++ trunk/LayoutTests/system-preview/model/model-element.html 2020-11-16 22:40:26 UTC (rev 269880)
@@ -0,0 +1,17 @@
+<script src=""
+<script src=""
+<script>
+
+test(() => {
+ assert_own_property(window, "HTMLModelElement");
+}, "HTMLModelElement is exposed on Window.");
+
+test(() => {
+ const model = document.createElement("model");
+ assert_true(model instanceof HTMLModelElement);
+ assert_class_string(model, "HTMLModelElement");
+}, "document.createElement('model') returns an HTMLModelElement object.");
+
+</script>
+</body>
+</html>
Modified: trunk/Source/WTF/ChangeLog (269879 => 269880)
--- trunk/Source/WTF/ChangeLog 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WTF/ChangeLog 2020-11-16 22:40:26 UTC (rev 269880)
@@ -1,3 +1,16 @@
+2020-11-16 Antoine Quint <[email protected]>
+
+ Add an experimental <model> element
+ https://bugs.webkit.org/show_bug.cgi?id=218991
+
+ Reviewed by Dean Jackson.
+
+ Add a new build ENABLE(MODEL_ELEMENT) flag, enabled only on Cocoa platforms, and a new experimental feature
+ backed by a setting, currently disabled on all platforms except engineering builds and Safari Technology Preview.
+
+ * Scripts/Preferences/WebPreferencesExperimental.yaml:
+ * wtf/PlatformEnableCocoa.h:
+
2020-11-16 Per Arne Vollan <[email protected]>
[macOS] The WebContent sandbox does not apply for open source builds
Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml (269879 => 269880)
--- trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml 2020-11-16 22:40:26 UTC (rev 269880)
@@ -564,6 +564,20 @@
WebCore:
default: false
+ModelElementEnabled:
+ type: bool
+ humanReadableName: "HTML <model> element"
+ humanReadableDescription: "HTML <model> element"
+ condition: ENABLE(MODEL_ELEMENT)
+ defaultValue:
+ WebKitLegacy:
+ default: false
+ WebKit:
+ "ENABLE(EXPERIMENTAL_FEATURES)" : true
+ default: false
+ WebCore:
+ default: false
+
ModernUnprefixedWebAudioEnabled:
type: bool
humanReadableName: "Modern WebAudio API"
Modified: trunk/Source/WTF/wtf/PlatformEnableCocoa.h (269879 => 269880)
--- trunk/Source/WTF/wtf/PlatformEnableCocoa.h 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WTF/wtf/PlatformEnableCocoa.h 2020-11-16 22:40:26 UTC (rev 269880)
@@ -348,6 +348,10 @@
#define ENABLE_META_VIEWPORT 1
#endif
+#if !defined(ENABLE_MODEL_ELEMENT)
+#define ENABLE_MODEL_ELEMENT 1
+#endif
+
// FIXME: We almost certainly do not need this monospace font exception for watchOS and tvOS.
#if !defined(ENABLE_MONOSPACE_FONT_EXCEPTION) && ((PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500) || PLATFORM(WATCHOS) || PLATFORM(APPLETV))
#define ENABLE_MONOSPACE_FONT_EXCEPTION 1
Modified: trunk/Source/WebCore/CMakeLists.txt (269879 => 269880)
--- trunk/Source/WebCore/CMakeLists.txt 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/CMakeLists.txt 2020-11-16 22:40:26 UTC (rev 269880)
@@ -969,6 +969,7 @@
html/HTMLMetaElement.idl
html/HTMLMeterElement.idl
html/HTMLModElement.idl
+ html/HTMLModelElement.idl
html/HTMLOListElement.idl
html/HTMLObjectElement.idl
html/HTMLOptGroupElement.idl
Modified: trunk/Source/WebCore/ChangeLog (269879 => 269880)
--- trunk/Source/WebCore/ChangeLog 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/ChangeLog 2020-11-16 22:40:26 UTC (rev 269880)
@@ -1,3 +1,30 @@
+2020-11-16 Antoine Quint <[email protected]>
+
+ Add an experimental <model> element
+ https://bugs.webkit.org/show_bug.cgi?id=218991
+
+ Reviewed by Dean Jackson.
+
+ Test: system-preview/model/model-element.html
+
+ Add the basis for a new <model> element.
+
+ * CMakeLists.txt:
+ * DerivedSources-input.xcfilelist:
+ * DerivedSources-output.xcfilelist:
+ * DerivedSources.make:
+ * Headers.cmake:
+ * Sources.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/WebCoreBuiltinNames.h:
+ * html/HTMLModelElement.cpp: Added.
+ (WebCore::HTMLModelElement::HTMLModelElement):
+ (WebCore::HTMLModelElement::~HTMLModelElement):
+ (WebCore::HTMLModelElement::create):
+ * html/HTMLModelElement.h: Added.
+ * html/HTMLModelElement.idl: Added.
+ * html/HTMLTagNames.in:
+
2020-11-16 Alex Christensen <[email protected]>
FileReaderLoader::convertToDataURL should use application/octet-stream if MIME type is empty
Modified: trunk/Source/WebCore/DerivedSources-input.xcfilelist (269879 => 269880)
--- trunk/Source/WebCore/DerivedSources-input.xcfilelist 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/DerivedSources-input.xcfilelist 2020-11-16 22:40:26 UTC (rev 269880)
@@ -898,6 +898,7 @@
$(PROJECT_DIR)/html/HTMLMetaElement.idl
$(PROJECT_DIR)/html/HTMLMeterElement.idl
$(PROJECT_DIR)/html/HTMLModElement.idl
+$(PROJECT_DIR)/html/HTMLModelElement.idl
$(PROJECT_DIR)/html/HTMLOListElement.idl
$(PROJECT_DIR)/html/HTMLObjectElement.idl
$(PROJECT_DIR)/html/HTMLOptGroupElement.idl
Modified: trunk/Source/WebCore/DerivedSources-output.xcfilelist (269879 => 269880)
--- trunk/Source/WebCore/DerivedSources-output.xcfilelist 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/DerivedSources-output.xcfilelist 2020-11-16 22:40:26 UTC (rev 269880)
@@ -1031,6 +1031,8 @@
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLMeterElement.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.h
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModelElement.cpp
+$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModelElement.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.cpp
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.h
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLObjectElement.cpp
Modified: trunk/Source/WebCore/DerivedSources.make (269879 => 269880)
--- trunk/Source/WebCore/DerivedSources.make 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/DerivedSources.make 2020-11-16 22:40:26 UTC (rev 269880)
@@ -844,6 +844,7 @@
$(WebCore)/html/HTMLMetaElement.idl \
$(WebCore)/html/HTMLMeterElement.idl \
$(WebCore)/html/HTMLModElement.idl \
+ $(WebCore)/html/HTMLModelElement.idl \
$(WebCore)/html/HTMLOListElement.idl \
$(WebCore)/html/HTMLObjectElement.idl \
$(WebCore)/html/HTMLOptGroupElement.idl \
Modified: trunk/Source/WebCore/Headers.cmake (269879 => 269880)
--- trunk/Source/WebCore/Headers.cmake 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/Headers.cmake 2020-11-16 22:40:26 UTC (rev 269880)
@@ -636,6 +636,7 @@
html/HTMLMenuItemElement.h
html/HTMLMetaElement.h
html/HTMLModElement.h
+ html/HTMLModelElement.h
html/HTMLOListElement.h
html/HTMLObjectElement.h
html/HTMLOptGroupElement.h
Modified: trunk/Source/WebCore/Sources.txt (269879 => 269880)
--- trunk/Source/WebCore/Sources.txt 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/Sources.txt 2020-11-16 22:40:26 UTC (rev 269880)
@@ -1187,6 +1187,7 @@
html/HTMLMetaElement.cpp
html/HTMLMeterElement.cpp
html/HTMLModElement.cpp
+html/HTMLModelElement.cpp
html/HTMLNameCollection.cpp
html/HTMLOListElement.cpp
html/HTMLObjectElement.cpp
@@ -3050,6 +3051,7 @@
JSHTMLMetaElement.cpp
JSHTMLMeterElement.cpp
JSHTMLModElement.cpp
+JSHTMLModelElement.cpp
JSHTMLOListElement.cpp
JSHTMLObjectElement.cpp
JSHTMLOptGroupElement.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (269879 => 269880)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-16 22:40:26 UTC (rev 269880)
@@ -2150,6 +2150,8 @@
71729F7E20F3BB4700801CE6 /* JSDocumentTimelineOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 71729F7C20F3BAB900801CE6 /* JSDocumentTimelineOptions.h */; };
7181A16C244F0F40007D8A24 /* DocumentTimelinesController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7181A169244F0F2C007D8A24 /* DocumentTimelinesController.h */; settings = {ATTRIBUTES = (Private, ); }; };
71A1B6081DEE5AD70073BCFB /* modern-media-controls-localized-strings.js in Resources */ = {isa = PBXBuildFile; fileRef = 71A1B6061DEE5A820073BCFB /* modern-media-controls-localized-strings.js */; };
+ 71A3D1812562B85B0064E2A6 /* HTMLModelElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 71A3D17D2562B8240064E2A6 /* HTMLModelElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 71A3D1842562BE0B0064E2A6 /* JSHTMLModelElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 71A3D1832562BDDB0064E2A6 /* JSHTMLModelElement.h */; };
71A57DF2154BE25C0009D120 /* SVGPathUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 71A57DF0154BE25C0009D120 /* SVGPathUtilities.h */; };
71A58196236F467600D81A24 /* KeyframeEffectStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 71A58193236F466400D81A24 /* KeyframeEffectStack.h */; settings = {ATTRIBUTES = (Private, ); }; };
71B28427203CEC4C0036AA5D /* JSCSSAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 71B28426203CEC0D0036AA5D /* JSCSSAnimation.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -9930,6 +9932,11 @@
7199B94A2551F0E100494A57 /* StyleContentAlignmentData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleContentAlignmentData.cpp; sourceTree = "<group>"; };
7199B94F2552103E00494A57 /* StyleSelfAlignmentData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleSelfAlignmentData.cpp; sourceTree = "<group>"; };
71A1B6071DEE5A820073BCFB /* en */ = {isa = PBXFileReference; lastKnownFileType = sourcecode._javascript_; name = en; path = "en.lproj/modern-media-controls-localized-strings.js"; sourceTree = SOURCE_ROOT; };
+ 71A3D17D2562B8240064E2A6 /* HTMLModelElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLModelElement.h; sourceTree = "<group>"; };
+ 71A3D17F2562B8240064E2A6 /* HTMLModelElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLModelElement.idl; sourceTree = "<group>"; };
+ 71A3D1802562B8250064E2A6 /* HTMLModelElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLModelElement.cpp; sourceTree = "<group>"; };
+ 71A3D1822562BDDB0064E2A6 /* JSHTMLModelElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLModelElement.cpp; sourceTree = "<group>"; };
+ 71A3D1832562BDDB0064E2A6 /* JSHTMLModelElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLModelElement.h; sourceTree = "<group>"; };
71A57DEF154BE25C0009D120 /* SVGPathUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathUtilities.cpp; sourceTree = "<group>"; };
71A57DF0154BE25C0009D120 /* SVGPathUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathUtilities.h; sourceTree = "<group>"; };
71A58193236F466400D81A24 /* KeyframeEffectStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyframeEffectStack.h; sourceTree = "<group>"; };
@@ -23260,6 +23267,9 @@
A4544248119B3661009BE912 /* HTMLMeterElement.cpp */,
A4544249119B3661009BE912 /* HTMLMeterElement.h */,
A71A70C911AFB02000989D6D /* HTMLMeterElement.idl */,
+ 71A3D1802562B8250064E2A6 /* HTMLModelElement.cpp */,
+ 71A3D17D2562B8240064E2A6 /* HTMLModelElement.h */,
+ 71A3D17F2562B8240064E2A6 /* HTMLModelElement.idl */,
A8CFF79F0A156978000A4234 /* HTMLModElement.cpp */,
A8CFF79D0A156978000A4234 /* HTMLModElement.h */,
1AE2AB070A1CE5CF00B42B25 /* HTMLModElement.idl */,
@@ -24590,6 +24600,8 @@
A80E7A160A19C3D6007FB8C5 /* JSHTMLMetaElement.h */,
A7BBE26411AFB3F20005EA03 /* JSHTMLMeterElement.cpp */,
A7BBE26511AFB3F20005EA03 /* JSHTMLMeterElement.h */,
+ 71A3D1822562BDDB0064E2A6 /* JSHTMLModelElement.cpp */,
+ 71A3D1832562BDDB0064E2A6 /* JSHTMLModelElement.h */,
1AE2AB1F0A1CE63B00B42B25 /* JSHTMLModElement.cpp */,
1AE2AB200A1CE63B00B42B25 /* JSHTMLModElement.h */,
BC305C770C076BB300CD20F0 /* JSHTMLObjectElement.cpp */,
@@ -32062,6 +32074,7 @@
2BE8E2C712A589EC00FAD550 /* HTMLMetaCharsetParser.h in Headers */,
A871DC240A15205700B12A68 /* HTMLMetaElement.h in Headers */,
A454424B119B3661009BE912 /* HTMLMeterElement.h in Headers */,
+ 71A3D1812562B85B0064E2A6 /* HTMLModelElement.h in Headers */,
A8CFF7A70A156978000A4234 /* HTMLModElement.h in Headers */,
A8DF3FD4097FA0FC0052981B /* HTMLNameCollection.h in Headers */,
A871D45A0A127CBC00B12A68 /* HTMLObjectElement.h in Headers */,
@@ -32691,6 +32704,7 @@
1AE2AE5C0A1D26F200B42B25 /* JSHTMLMenuElement.h in Headers */,
A80E7A180A19C3D6007FB8C5 /* JSHTMLMetaElement.h in Headers */,
A7BBE26711AFB3F20005EA03 /* JSHTMLMeterElement.h in Headers */,
+ 71A3D1842562BE0B0064E2A6 /* JSHTMLModelElement.h in Headers */,
1AE2AB2A0A1CE63B00B42B25 /* JSHTMLModElement.h in Headers */,
BC305C7A0C076BB300CD20F0 /* JSHTMLObjectElement.h in Headers */,
1A85B1EB0A1B240500D8C87C /* JSHTMLOListElement.h in Headers */,
Modified: trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h (269879 => 269880)
--- trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h 2020-11-16 22:40:26 UTC (rev 269880)
@@ -136,6 +136,7 @@
macro(HTMLDialogElement) \
macro(HTMLDataListElement) \
macro(HTMLMenuItemElement) \
+ macro(HTMLModelElement) \
macro(HTMLKeygenElement) \
macro(HTMLSlotElement) \
macro(Headers) \
Added: trunk/Source/WebCore/html/HTMLModelElement.cpp (0 => 269880)
--- trunk/Source/WebCore/html/HTMLModelElement.cpp (rev 0)
+++ trunk/Source/WebCore/html/HTMLModelElement.cpp 2020-11-16 22:40:26 UTC (rev 269880)
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "HTMLModelElement.h"
+
+#if ENABLE(MODEL_ELEMENT)
+
+#include <wtf/IsoMallocInlines.h>
+
+namespace WebCore {
+
+WTF_MAKE_ISO_ALLOCATED_IMPL(HTMLModelElement);
+
+HTMLModelElement::HTMLModelElement(const QualifiedName& tagName, Document& document)
+ : HTMLElement(tagName, document)
+{
+}
+
+HTMLModelElement::~HTMLModelElement()
+{
+}
+
+Ref<HTMLModelElement> HTMLModelElement::create(const QualifiedName& tagName, Document& document)
+{
+ return adoptRef(*new HTMLModelElement(tagName, document));
+}
+
+}
+
+#endif // ENABLE(MODEL_ELEMENT)
Added: trunk/Source/WebCore/html/HTMLModelElement.h (0 => 269880)
--- trunk/Source/WebCore/html/HTMLModelElement.h (rev 0)
+++ trunk/Source/WebCore/html/HTMLModelElement.h 2020-11-16 22:40:26 UTC (rev 269880)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if ENABLE(MODEL_ELEMENT)
+
+#include "HTMLElement.h"
+
+namespace WebCore {
+
+class HTMLModelElement final : public HTMLElement {
+ WTF_MAKE_ISO_ALLOCATED(HTMLModelElement);
+public:
+ static Ref<HTMLModelElement> create(const QualifiedName&, Document&);
+ virtual ~HTMLModelElement();
+
+private:
+ HTMLModelElement(const QualifiedName&, Document&);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MODEL_ELEMENT)
Added: trunk/Source/WebCore/html/HTMLModelElement.idl (0 => 269880)
--- trunk/Source/WebCore/html/HTMLModelElement.idl (rev 0)
+++ trunk/Source/WebCore/html/HTMLModelElement.idl 2020-11-16 22:40:26 UTC (rev 269880)
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+[
+ Conditional=MODEL_ELEMENT,
+ EnabledBySetting=ModelElement,
+ Exposed=Window,
+] interface HTMLModelElement : HTMLElement {
+};
Modified: trunk/Source/WebCore/html/HTMLTagNames.in (269879 => 269880)
--- trunk/Source/WebCore/html/HTMLTagNames.in 2020-11-16 22:17:24 UTC (rev 269879)
+++ trunk/Source/WebCore/html/HTMLTagNames.in 2020-11-16 22:40:26 UTC (rev 269880)
@@ -87,6 +87,7 @@
menuitem interfaceName=HTMLMenuItemElement, runtimeEnabled=menuItemElement
meta
meter interfaceName=HTMLMeterElement
+model interfaceName=HTMLModelElement, conditional=MODEL_ELEMENT, settingsConditional=modelElementEnabled
nav interfaceName=HTMLElement
nobr interfaceName=HTMLElement
noembed interfaceName=HTMLElement