Title: [269880] trunk
Revision
269880
Author
[email protected]
Date
2020-11-16 14:40:26 -0800 (Mon, 16 Nov 2020)

Log Message

Add an experimental <model> element
https://bugs.webkit.org/show_bug.cgi?id=218991

Reviewed by Dean Jackson.

Source/WebCore:

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:

Source/WTF:

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:

LayoutTests:

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.

Modified Paths

Added Paths

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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to