time element should use HTMLTimeElement interface
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Sep 2015 06:25:02 +0000 (06:25 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Sep 2015 06:25:02 +0000 (06:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=148840
<rdar://problem/22586690>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C HTML test now that more checks are passing.

* web-platform-tests/html/semantics/text-level-semantics/the-time-element/001-expected.txt:

Source/WebCore:

Time element should be an instance of HTMLTimeElement instead of generic
HTMLElement:
https://html.spec.whatwg.org/multipage/semantics.html#the-time-element

Firefox exposes HTMLTimeElement. This patch aligns our behavior with
the specification and Firefox.

No new tests, already covered by existing test.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTagNames.in:
* html/HTMLTimeElement.cpp: Added.
(WebCore::HTMLTimeElement::create):
(WebCore::HTMLTimeElement::HTMLTimeElement):
* html/HTMLTimeElement.h: Added.
* html/HTMLTimeElement.idl: Added.

LayoutTests:

Rebaseline existing test now that HTMLTimeElement is exposed on the
global Window object.

* js/dom/global-constructors-attributes-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@190106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

24 files changed:
LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt
LayoutTests/imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-time-element/001-expected.txt
LayoutTests/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/efl/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt
LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.cpp
Source/WebCore/DerivedSources.make
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/html/HTMLElementsAllInOne.cpp
Source/WebCore/html/HTMLTagNames.in
Source/WebCore/html/HTMLTimeElement.cpp [new file with mode: 0644]
Source/WebCore/html/HTMLTimeElement.h [new file with mode: 0644]
Source/WebCore/html/HTMLTimeElement.idl [new file with mode: 0644]

index a9d8584..a8702e7 100644 (file)
@@ -1,5 +1,24 @@
 2015-09-21  Chris Dumez  <cdumez@apple.com>
 
+        time element should use HTMLTimeElement interface
+        https://bugs.webkit.org/show_bug.cgi?id=148840
+        <rdar://problem/22586690>
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline existing test now that HTMLTimeElement is exposed on the
+        global Window object.
+
+        * js/dom/global-constructors-attributes-expected.txt:
+        * platform/efl/js/dom/global-constructors-attributes-expected.txt:
+        * platform/gtk/js/dom/global-constructors-attributes-expected.txt:
+        * platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
+        * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
+        * platform/mac/js/dom/global-constructors-attributes-expected.txt:
+        * platform/win/js/dom/global-constructors-attributes-expected.txt:
+
+2015-09-21  Chris Dumez  <cdumez@apple.com>
+
         DOM attributes on prototypes should be configurable
         https://bugs.webkit.org/show_bug.cgi?id=134364
 
index e6829e9..316c423 100644 (file)
@@ -1,5 +1,17 @@
 2015-09-21  Chris Dumez  <cdumez@apple.com>
 
+        time element should use HTMLTimeElement interface
+        https://bugs.webkit.org/show_bug.cgi?id=148840
+        <rdar://problem/22586690>
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline W3C HTML test now that more checks are passing.
+
+        * web-platform-tests/html/semantics/text-level-semantics/the-time-element/001-expected.txt:
+
+2015-09-21  Chris Dumez  <cdumez@apple.com>
+
         Update HTMLTableRowElement.rowIndex to behave according to the specification
         https://bugs.webkit.org/show_bug.cgi?id=148842
         <rdar://problem/22586914>
index 9f36922..19d012c 100644 (file)
@@ -224,6 +224,7 @@ CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'charset' on a
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'name' on a non-HTMLAnchorElement object.
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'rev' on a non-HTMLAnchorElement object.
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'shape' on a non-HTMLAnchorElement object.
+CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'dateTime' on a non-HTMLTimeElement object.
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'clear' on a non-HTMLBRElement object.
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'cite' on a non-HTMLModElement object.
 CONSOLE MESSAGE: line 583: Deprecated attempt to access property 'dateTime' on a non-HTMLModElement object.
@@ -2730,14 +2731,18 @@ FAIL HTMLDataElement interface: attribute value assert_own_property: self does n
 FAIL HTMLDataElement must be primary interface of document.createElement("data") assert_own_property: self does not have own property "HTMLDataElement" expected property "HTMLDataElement" missing
 FAIL Stringification of document.createElement("data") assert_equals: class string of document.createElement("data") expected "[object HTMLDataElement]" but got "[object HTMLUnknownElement]"
 FAIL HTMLDataElement interface: document.createElement("data") must inherit property "value" with the proper type (0) assert_inherits: property "value" not found in prototype chain
-FAIL HTMLTimeElement interface: existence and properties of interface object assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL HTMLTimeElement interface object length assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL HTMLTimeElement interface: existence and properties of interface prototype object assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL HTMLTimeElement interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL HTMLTimeElement interface: attribute dateTime assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL HTMLTimeElement must be primary interface of document.createElement("time") assert_own_property: self does not have own property "HTMLTimeElement" expected property "HTMLTimeElement" missing
-FAIL Stringification of document.createElement("time") assert_equals: class string of document.createElement("time") expected "[object HTMLTimeElement]" but got "[object HTMLElement]"
-FAIL HTMLTimeElement interface: document.createElement("time") must inherit property "dateTime" with the proper type (0) assert_inherits: property "dateTime" not found in prototype chain
+FAIL HTMLTimeElement interface: existence and properties of interface object assert_equals: prototype of self's property "HTMLTimeElement" is not Function.prototype expected (function) function "function () {
+    [native code]
+}" but got (object) object "[object Object]"
+PASS HTMLTimeElement interface object length 
+PASS HTMLTimeElement interface: existence and properties of interface prototype object 
+PASS HTMLTimeElement interface: existence and properties of interface prototype object's "constructor" property 
+FAIL HTMLTimeElement interface: attribute dateTime assert_throws: getting property on prototype object must throw TypeError function "function () {
+    [native code]
+}" did not throw
+PASS HTMLTimeElement must be primary interface of document.createElement("time") 
+PASS Stringification of document.createElement("time") 
+PASS HTMLTimeElement interface: document.createElement("time") must inherit property "dateTime" with the proper type (0) 
 FAIL HTMLSpanElement interface: existence and properties of interface object assert_equals: prototype of self's property "HTMLSpanElement" is not Function.prototype expected (function) function "function () {
     [native code]
 }" but got (object) object "[object Object]"
index 18ccbe6..023996e 100644 (file)
@@ -227,8 +227,8 @@ PASS Interfaces for header
 PASS Interfaces for HEADER 
 PASS Interfaces for footer 
 PASS Interfaces for FOOTER 
-FAIL Interfaces for time assert_equals: Element time should have HTMLTimeElement as its primary interface. expected "[object HTMLTimeElement]" but got "[object HTMLElement]"
-FAIL Interfaces for TIME assert_equals: Element TIME should have HTMLTimeElement as its primary interface. expected "[object HTMLTimeElement]" but got "[object HTMLElement]"
+PASS Interfaces for time 
+PASS Interfaces for TIME 
 PASS Interfaces for mark 
 PASS Interfaces for MARK 
 PASS Interfaces for progress 
index 831000a..93941d3 100644 (file)
@@ -1,10 +1,10 @@
 
 PASS HTML parsing should locate 4 time elements in this document 
-FAIL HTMLTimeElement should be exposed for prototyping assert_true: expected true got false
-FAIL the time elements should be instanceof HTMLTimeElement window.HTMLTimeElement is not a function. (evaluating 'makeTime() instanceof window.HTMLTimeElement')
-FAIL the datetime attribute should be reflected by the .dateTime property assert_equals: expected (string) "2000-02-01T03:04:05Z" but got (undefined) undefined
-FAIL the dateTime IDL property should default to an empty string assert_equals: typeof test expected "string" but got "undefined"
+PASS HTMLTimeElement should be exposed for prototyping 
+PASS the time elements should be instanceof HTMLTimeElement 
+PASS the datetime attribute should be reflected by the .dateTime property 
+PASS the dateTime IDL property should default to an empty string 
 PASS the dateTime property should be read/write 
-FAIL the datetime attribute should be reflected by the .dateTime property even if it is invalid assert_equals: expected (string) "go fish" but got (undefined) undefined
-FAIL the datetime attribute should not reflect the textContent assert_equals: expected (string) "" but got (undefined) undefined
+PASS the datetime attribute should be reflected by the .dateTime property even if it is invalid 
+PASS the datetime attribute should not reflect the textContent 
 
index 2d8dc8e..e021b08 100644 (file)
@@ -708,6 +708,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index baab498..184aa56 100644 (file)
@@ -723,6 +723,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index a0c6ff4..5bf8fd7 100644 (file)
@@ -723,6 +723,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index c15b665..fb92818 100644 (file)
@@ -723,6 +723,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index 00fbc4b..8216c83 100644 (file)
@@ -723,6 +723,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index 044f14f..99aa8d0 100644 (file)
@@ -723,6 +723,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index 083a071..e069fdb 100644 (file)
@@ -643,6 +643,11 @@ PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProper
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTextAreaElement').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').value is HTMLTimeElement
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'HTMLTimeElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').value is HTMLTitleElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTitleElement').hasOwnProperty('set') is false
index b5acb41..3e44f27 100644 (file)
@@ -521,6 +521,7 @@ set(WebCore_NON_SVG_IDL_FILES
     html/HTMLTableSectionElement.idl
     html/HTMLTemplateElement.idl
     html/HTMLTextAreaElement.idl
+    html/HTMLTimeElement.idl
     html/HTMLTitleElement.idl
     html/HTMLTrackElement.idl
     html/HTMLUListElement.idl
@@ -1701,6 +1702,7 @@ set(WebCore_SOURCES
     html/HTMLTemplateElement.cpp
     html/HTMLTextAreaElement.cpp
     html/HTMLTextFormControlElement.cpp
+    html/HTMLTimeElement.cpp
     html/HTMLTitleElement.cpp
     html/HTMLTrackElement.cpp
     html/HTMLUListElement.cpp
index 910e0e5..f7373c8 100644 (file)
@@ -1,5 +1,36 @@
 2015-09-21  Chris Dumez  <cdumez@apple.com>
 
+        time element should use HTMLTimeElement interface
+        https://bugs.webkit.org/show_bug.cgi?id=148840
+        <rdar://problem/22586690>
+
+        Reviewed by Ryosuke Niwa.
+
+        Time element should be an instance of HTMLTimeElement instead of generic
+        HTMLElement:
+        https://html.spec.whatwg.org/multipage/semantics.html#the-time-element
+
+        Firefox exposes HTMLTimeElement. This patch aligns our behavior with
+        the specification and Firefox.
+
+        No new tests, already covered by existing test.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.vcxproj/WebCore.vcxproj.filters:
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/HTMLElementsAllInOne.cpp:
+        * html/HTMLTagNames.in:
+        * html/HTMLTimeElement.cpp: Added.
+        (WebCore::HTMLTimeElement::create):
+        (WebCore::HTMLTimeElement::HTMLTimeElement):
+        * html/HTMLTimeElement.h: Added.
+        * html/HTMLTimeElement.idl: Added.
+
+2015-09-21  Chris Dumez  <cdumez@apple.com>
+
         DOM attributes on prototypes should be configurable
         https://bugs.webkit.org/show_bug.cgi?id=134364
 
index d3eb517..7339c2f 100644 (file)
 #include "JSHTMLTemplateElement.cpp"
 #endif
 #include "JSHTMLTextAreaElement.cpp"
+#include "JSHTMLTimeElement.cpp"
 #include "JSHTMLTitleElement.cpp"
 #include "JSHTMLUnknownElement.cpp"
 #include "JSHTMLUListElement.cpp"
index 79d2beb..ae10d59 100644 (file)
@@ -412,6 +412,7 @@ NON_SVG_BINDING_IDLS = \
     $(WebCore)/html/HTMLTableSectionElement.idl \
     $(WebCore)/html/HTMLTemplateElement.idl \
     $(WebCore)/html/HTMLTextAreaElement.idl \
+    $(WebCore)/html/HTMLTimeElement.idl \
     $(WebCore)/html/HTMLTitleElement.idl \
     $(WebCore)/html/HTMLTrackElement.idl \
     $(WebCore)/html/HTMLUListElement.idl \
index 774ca06..e8d70ce 100644 (file)
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTimeElement.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTitleElement.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
     </ClCompile>
+    <ClCompile Include="..\html\HTMLTimeElement.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="..\html\HTMLTitleElement.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTableSectionElement.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTemplateElement.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTextAreaElement.h" />
+    <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTimeElement.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTitleElement.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTrackElement.h" />
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLUListElement.h" />
     <ClInclude Include="..\html\HTMLTemplateElement.h" />
     <ClInclude Include="..\html\HTMLTextAreaElement.h" />
     <ClInclude Include="..\html\HTMLTextFormControlElement.h" />
+    <ClInclude Include="..\html\HTMLTimeElement.h" />
     <ClInclude Include="..\html\HTMLTitleElement.h" />
     <ClInclude Include="..\html\HTMLTrackElement.h" />
     <ClInclude Include="..\html\HTMLUListElement.h" />
index 2633377..dda7e2c 100644 (file)
     <ClCompile Include="..\html\HTMLTextFormControlElement.cpp">
       <Filter>html</Filter>
     </ClCompile>
+    <ClCompile Include="..\html\HTMLTimeElement.cpp">
+      <Filter>html</Filter>
+    </ClCompile>
     <ClCompile Include="..\html\HTMLTitleElement.cpp">
       <Filter>html</Filter>
     </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTextAreaElement.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
+    <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTimeElement.cpp">
+      <Filter>DerivedSources</Filter>
+    </ClCompile>
     <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTitleElement.cpp">
       <Filter>DerivedSources</Filter>
     </ClCompile>
     <ClInclude Include="..\html\HTMLTextFormControlElement.h">
       <Filter>html</Filter>
     </ClInclude>
+    <ClInclude Include="..\html\HTMLTimeElement.h">
+      <Filter>html</Filter>
+    </ClInclude>
     <ClInclude Include="..\html\HTMLTitleElement.h">
       <Filter>html</Filter>
     </ClInclude>
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTextAreaElement.h">
       <Filter>DerivedSources</Filter>
     </ClInclude>
+    <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTimeElement.h">
+      <Filter>DerivedSources</Filter>
+    </ClInclude>
     <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSHTMLTitleElement.h">
       <Filter>DerivedSources</Filter>
     </ClInclude>
index 105ea0d..8f614af 100644 (file)
                830030F51B7D33B500ED3AAC /* GenericCachedHTMLCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */; };
                830030F61B7D33B500ED3AAC /* GenericCachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */; };
                830030F81B7D3B7800ED3AAC /* CachedHTMLCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */; };
+               830519951BB0F11000F3772E /* HTMLTimeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 830519921BB0F0E700F3772E /* HTMLTimeElement.cpp */; };
+               830519961BB0F11000F3772E /* HTMLTimeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 830519931BB0F0E700F3772E /* HTMLTimeElement.h */; };
                8306EFF11B8BCEA50031D032 /* NativeNodeFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */; };
                832B843419D8E55100B26055 /* SVGAnimateElementBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 832B843319D8E55100B26055 /* SVGAnimateElementBase.h */; };
                832B843619D8E57400B26055 /* SVGAnimateElementBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */; };
                83C1D434178D5AB500141E68 /* SVGPathSegLinetoVerticalRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D422178D5AB400141E68 /* SVGPathSegLinetoVerticalRel.h */; };
                83C1D435178D5AB500141E68 /* SVGPathSegMovetoAbs.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D423178D5AB400141E68 /* SVGPathSegMovetoAbs.h */; };
                83C1D436178D5AB500141E68 /* SVGPathSegMovetoRel.h in Headers */ = {isa = PBXBuildFile; fileRef = 83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */; };
+               83E359A21BB1031D002CEB98 /* JSHTMLTimeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 83E359A01BB1031D002CEB98 /* JSHTMLTimeElement.h */; };
+               83E359A31BB1031D002CEB98 /* JSHTMLTimeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83E359A11BB1031D002CEB98 /* JSHTMLTimeElement.cpp */; };
                83F1206B1B8C104700D75F63 /* JSNodeFilterCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */; };
                8419D2A7120D92D000141F8F /* SVGPathByteStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 8419D2A4120D92D000141F8F /* SVGPathByteStream.h */; };
                8419D2A8120D92D000141F8F /* SVGPathByteStreamBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */; };
                830030F31B7D33A600ED3AAC /* GenericCachedHTMLCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenericCachedHTMLCollection.cpp; sourceTree = "<group>"; };
                830030F41B7D33A600ED3AAC /* GenericCachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCachedHTMLCollection.h; sourceTree = "<group>"; };
                830030F71B7D398800ED3AAC /* CachedHTMLCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedHTMLCollection.h; sourceTree = "<group>"; };
+               830519921BB0F0E700F3772E /* HTMLTimeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLTimeElement.cpp; sourceTree = "<group>"; };
+               830519931BB0F0E700F3772E /* HTMLTimeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTimeElement.h; sourceTree = "<group>"; };
+               830519941BB0F0E700F3772E /* HTMLTimeElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLTimeElement.idl; sourceTree = "<group>"; };
                8306EFF01B8BCE7C0031D032 /* NativeNodeFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NativeNodeFilter.cpp; sourceTree = "<group>"; };
                832B843319D8E55100B26055 /* SVGAnimateElementBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimateElementBase.h; sourceTree = "<group>"; };
                832B843519D8E57400B26055 /* SVGAnimateElementBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimateElementBase.cpp; sourceTree = "<group>"; };
                83C1D424178D5AB400141E68 /* SVGPathSegMovetoRel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathSegMovetoRel.h; sourceTree = "<group>"; };
                83D26D3C1AFDCC50001B3873 /* ChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChildNode.idl; sourceTree = "<group>"; };
                83D26D3D1AFDCC50001B3873 /* ParentNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = ParentNode.idl; sourceTree = "<group>"; };
+               83E359A01BB1031D002CEB98 /* JSHTMLTimeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSHTMLTimeElement.h; path = "JSHTMLTimeElement.h"; sourceTree = "<group>"; };
+               83E359A11BB1031D002CEB98 /* JSHTMLTimeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSHTMLTimeElement.cpp; path = "JSHTMLTimeElement.cpp"; sourceTree = "<group>"; };
                83E959E11B8BC22B004D9385 /* NativeNodeFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeNodeFilter.h; sourceTree = "<group>"; };
                83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = "<group>"; };
                8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = "<group>"; };
                                A80E7E160A1A7CCB007FB8C5 /* HTMLTextAreaElement.idl */,
                                9BC6C21A13CCC97B008E0337 /* HTMLTextFormControlElement.cpp */,
                                9BC6C21913CCC97B008E0337 /* HTMLTextFormControlElement.h */,
+                               830519921BB0F0E700F3772E /* HTMLTimeElement.cpp */,
+                               830519931BB0F0E700F3772E /* HTMLTimeElement.h */,
+                               830519941BB0F0E700F3772E /* HTMLTimeElement.idl */,
                                A871DC1D0A15205700B12A68 /* HTMLTitleElement.cpp */,
                                A871DC1C0A15205700B12A68 /* HTMLTitleElement.h */,
                                A80E7AAE0A19D1F1007FB8C5 /* HTMLTitleElement.idl */,
                A83B79080CCAFF2B000B0825 /* HTML */ = {
                        isa = PBXGroup;
                        children = (
+                               83E359A01BB1031D002CEB98 /* JSHTMLTimeElement.h */,
+                               83E359A11BB1031D002CEB98 /* JSHTMLTimeElement.cpp */,
                                9B69D3B61B99100700E3512B /* JSHTMLSlotElement.cpp */,
                                9B69D3B71B99100700E3512B /* JSHTMLSlotElement.h */,
                                31A795C41888BAD100382F90 /* JSANGLEInstancedArrays.cpp */,
                                E43AF8E71AC5B7EC00CA717E /* CacheValidation.h in Headers */,
                                49AE2D97134EE5F90072920A /* CalculationValue.h in Headers */,
                                B1D5ECB5134B58DA0087C78F /* CallbackFunction.h in Headers */,
+                               83E359A21BB1031D002CEB98 /* JSHTMLTimeElement.h in Headers */,
                                6E4E91AD10F7FB3100A2779C /* CanvasContextAttributes.h in Headers */,
                                49484FC2102CF23C00187DD3 /* CanvasGradient.h in Headers */,
                                FB91392616AE4C2F001FE682 /* CanvasPathMethods.h in Headers */,
                                8419D2BA120E0C7600141F8F /* SVGPathStringBuilder.h in Headers */,
                                84300BD6120C9AAC0021954A /* SVGPathStringSource.h in Headers */,
                                84C5B2FB1216DC810088B53A /* SVGPathTraversalStateBuilder.h in Headers */,
+                               830519961BB0F11000F3772E /* HTMLTimeElement.h in Headers */,
                                71A57DF2154BE25C0009D120 /* SVGPathUtilities.h in Headers */,
                                B2227A880D00BF220071B782 /* SVGPatternElement.h in Headers */,
                                B2227A8C0D00BF220071B782 /* SVGPointList.h in Headers */,
                                A4226E961163D73A008B8397 /* DOMHTMLProgressElement.mm in Sources */,
                                85183B4B0AA6926100F19FA3 /* DOMHTMLQuoteElement.mm in Sources */,
                                85DF819C0AA77E4B00486AD7 /* DOMHTMLScriptElement.mm in Sources */,
+                               83E359A31BB1031D002CEB98 /* JSHTMLTimeElement.cpp in Sources */,
                                85F32AF10AA63B8700FF3184 /* DOMHTMLSelectElement.mm in Sources */,
                                859A9C500AA5E3BD00B694B2 /* DOMHTMLStyleElement.mm in Sources */,
                                85DF821E0AA7849E00486AD7 /* DOMHTMLTableCaptionElement.mm in Sources */,
                                B2FA3D960AB75A6F000E5AC4 /* JSSVGFilterElement.cpp in Sources */,
                                B27B28250CEF0C0700D39D54 /* JSSVGFontElement.cpp in Sources */,
                                A83B79040CCAFF15000B0825 /* JSSVGFontFaceElement.cpp in Sources */,
+                               830519951BB0F11000F3772E /* HTMLTimeElement.cpp in Sources */,
                                A83B79010CCAFF15000B0825 /* JSSVGFontFaceFormatElement.cpp in Sources */,
                                A83B79030CCAFF15000B0825 /* JSSVGFontFaceNameElement.cpp in Sources */,
                                A83B78FF0CCAFF15000B0825 /* JSSVGFontFaceSrcElement.cpp in Sources */,
index 94f9a2d..62c5f0c 100644 (file)
 #include "HTMLTemplateElement.cpp"
 #include "HTMLTextAreaElement.cpp"
 #include "HTMLTextFormControlElement.cpp"
+#include "HTMLTimeElement.cpp"
 #include "HTMLTitleElement.cpp"
 #include "HTMLTrackElement.cpp"
 #include "HTMLUListElement.cpp"
index 5f54182..d1dc566 100644 (file)
@@ -129,7 +129,7 @@ textarea interfaceName=HTMLTextAreaElement, constructorNeedsFormElement
 tfoot interfaceName=HTMLTableSectionElement
 th interfaceName=HTMLTableCellElement
 thead interfaceName=HTMLTableSectionElement
-time interfaceName=HTMLElement
+time
 title
 tr interfaceName=HTMLTableRowElement
 track wrapperOnlyIfMediaIsAvailable, conditional=VIDEO_TRACK
diff --git a/Source/WebCore/html/HTMLTimeElement.cpp b/Source/WebCore/html/HTMLTimeElement.cpp
new file mode 100644 (file)
index 0000000..a55bc9d
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2015 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. AND ITS CONTRIBUTORS ``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 ITS 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 "HTMLTimeElement.h"
+
+#include "HTMLNames.h"
+
+namespace WebCore {
+
+using namespace HTMLNames;
+
+Ref<HTMLTimeElement> HTMLTimeElement::create(const QualifiedName& tagName, Document& document)
+{
+    return adoptRef(*new HTMLTimeElement(tagName, document));
+}
+
+inline HTMLTimeElement::HTMLTimeElement(const QualifiedName& tagName, Document& document)
+    : HTMLElement(tagName, document)
+{
+    ASSERT(hasTagName(timeTag));
+}
+
+} // namespace WebCore.
diff --git a/Source/WebCore/html/HTMLTimeElement.h b/Source/WebCore/html/HTMLTimeElement.h
new file mode 100644 (file)
index 0000000..b6f8245
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2015 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. AND ITS CONTRIBUTORS ``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 ITS 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.
+ */
+
+#ifndef HTMLTimeElement_h
+#define HTMLTimeElement_h
+
+#include "HTMLElement.h"
+
+namespace WebCore {
+
+class HTMLTimeElement final : public HTMLElement {
+public:
+    static Ref<HTMLTimeElement> create(const QualifiedName&, Document&);
+
+private:
+    HTMLTimeElement(const QualifiedName&, Document&);
+};
+
+} // namespace WebCore
+
+#endif // HTMLTimeElement_h
diff --git a/Source/WebCore/html/HTMLTimeElement.idl b/Source/WebCore/html/HTMLTimeElement.idl
new file mode 100644 (file)
index 0000000..67e1c1b
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2015 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. AND ITS CONTRIBUTORS ``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 ITS 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.
+ */
+
+interface HTMLTimeElement : HTMLElement {
+    [Reflect] attribute DOMString dateTime;
+};