Title: [202937] trunk
Revision
202937
Author
[email protected]
Date
2016-07-07 15:36:42 -0700 (Thu, 07 Jul 2016)

Log Message

td / th should be exposed as HTMLTableCellElement objects
https://bugs.webkit.org/show_bug.cgi?id=159518
<rdar://problem/27225436>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

td / th should be exposed as HTMLTableCellElement objects:
- https://html.spec.whatwg.org/multipage/tables.html#the-td-element
- https://html.spec.whatwg.org/multipage/tables.html#the-th-element

We were using HTMLTableDataCellElement / HTMLTableHeaderCellElement
sub-types.

Firefox and Chrome match the current specification.

We actually introduced these types recently via Bug 148859 to align
with an older version of the HTML specification. However, it seems the
specification has been updated to match Firefox / Chrome in the mean
time.

Since we have not shipped those subtypes yet, the compatibility risk is
low.

No new tests, rebaselined existing tests.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::create):
(WebCore::HTMLTableCellElement::scope):
(WebCore::HTMLTableCellElement::setScope):
(WebCore::HTMLTableCellElement::setRowSpanForBindings): Deleted.
* html/HTMLTableCellElement.h:
* html/HTMLTableCellElement.idl:
* html/HTMLTableDataCellElement.h: Removed.
* html/HTMLTableDataCellElement.idl: Removed.
* html/HTMLTableHeaderCellElement.cpp: Removed.
* html/HTMLTableHeaderCellElement.h: Removed.
* html/HTMLTableHeaderCellElement.idl: Removed.
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
* html/HTMLTagNames.in:

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt (202936 => 202937)


--- trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -446,8 +446,8 @@
 PASS tagJSWrapperClass('tbody') is 'HTMLTableSectionElement'
 PASS tagJSWrapperPrototypeClass('tbody') is 'HTMLTableSectionElementPrototype'
 PASS tagJSWrapperConstructorClass('tbody') is 'Function'
-PASS tagJSWrapperClass('td') is 'HTMLTableDataCellElement'
-PASS tagJSWrapperPrototypeClass('td') is 'HTMLTableDataCellElementPrototype'
+PASS tagJSWrapperClass('td') is 'HTMLTableCellElement'
+PASS tagJSWrapperPrototypeClass('td') is 'HTMLTableCellElementPrototype'
 PASS tagJSWrapperConstructorClass('td') is 'Function'
 PASS tagJSWrapperClass('textarea') is 'HTMLTextAreaElement'
 PASS tagJSWrapperPrototypeClass('textarea') is 'HTMLTextAreaElementPrototype'
@@ -455,8 +455,8 @@
 PASS tagJSWrapperClass('tfoot') is 'HTMLTableSectionElement'
 PASS tagJSWrapperPrototypeClass('tfoot') is 'HTMLTableSectionElementPrototype'
 PASS tagJSWrapperConstructorClass('tfoot') is 'Function'
-PASS tagJSWrapperClass('th') is 'HTMLTableHeaderCellElement'
-PASS tagJSWrapperPrototypeClass('th') is 'HTMLTableHeaderCellElementPrototype'
+PASS tagJSWrapperClass('th') is 'HTMLTableCellElement'
+PASS tagJSWrapperPrototypeClass('th') is 'HTMLTableCellElementPrototype'
 PASS tagJSWrapperConstructorClass('th') is 'Function'
 PASS tagJSWrapperClass('thead') is 'HTMLTableSectionElement'
 PASS tagJSWrapperPrototypeClass('thead') is 'HTMLTableSectionElementPrototype'

Modified: trunk/LayoutTests/fast/dom/wrapper-classes.html (202936 => 202937)


--- trunk/LayoutTests/fast/dom/wrapper-classes.html	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/fast/dom/wrapper-classes.html	2016-07-07 22:36:42 UTC (rev 202937)
@@ -247,10 +247,10 @@
     testTag("sup", "HTMLElement");
     testTag("table", "HTMLTableElement");
     testTag("tbody", "HTMLTableSectionElement");
-    testTag("td", "HTMLTableDataCellElement");
+    testTag("td", "HTMLTableCellElement");
     testTag("textarea", "HTMLTextAreaElement");
     testTag("tfoot", "HTMLTableSectionElement");
-    testTag("th", "HTMLTableHeaderCellElement");
+    testTag("th", "HTMLTableCellElement");
     testTag("thead", "HTMLTableSectionElement");
     testTag("title", "HTMLTitleElement");
     testTag("tr", "HTMLTableRowElement");

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (202936 => 202937)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,3 +1,16 @@
+2016-07-07  Chris Dumez  <[email protected]>
+
+        td / th should be exposed as HTMLTableCellElement objects
+        https://bugs.webkit.org/show_bug.cgi?id=159518
+        <rdar://problem/27225436>
+
+        Reviewed by Ryosuke Niwa.
+
+        Rebaseline W3C tests now that more checks are passing.
+
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+        * web-platform-tests/html/semantics/interfaces-expected.txt:
+
 2016-07-07  Youenn Fablet  <[email protected]>
 
         [Fetch API] Response constructor should throw in case of bad reason phrase

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt (202936 => 202937)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -2837,8 +2837,8 @@
 PASS HTMLTableCellElement interface: attribute rowSpan 
 PASS HTMLTableCellElement interface: attribute headers 
 PASS HTMLTableCellElement interface: attribute cellIndex 
-FAIL HTMLTableCellElement interface: attribute scope assert_true: The prototype object must have a property "scope" expected true got false
-FAIL HTMLTableCellElement interface: attribute abbr assert_true: The prototype object must have a property "abbr" expected true got false
+PASS HTMLTableCellElement interface: attribute scope 
+PASS HTMLTableCellElement interface: attribute abbr 
 PASS HTMLTableCellElement interface: attribute align 
 PASS HTMLTableCellElement interface: attribute axis 
 PASS HTMLTableCellElement interface: attribute height 
@@ -2848,8 +2848,8 @@
 PASS HTMLTableCellElement interface: attribute noWrap 
 PASS HTMLTableCellElement interface: attribute vAlign 
 PASS HTMLTableCellElement interface: attribute bgColor 
-FAIL HTMLTableCellElement must be primary interface of document.createElement("td") assert_equals: document.createElement("td")'s prototype is not HTMLTableCellElement.prototype expected object "[object HTMLTableCellElementPrototype]" but got object "[object HTMLTableDataCellElementPrototype]"
-FAIL Stringification of document.createElement("td") assert_equals: class string of document.createElement("td") expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
+PASS HTMLTableCellElement must be primary interface of document.createElement("td") 
+PASS Stringification of document.createElement("td") 
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type (0) 
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type (1) 
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "headers" with the proper type (2) 
@@ -2865,8 +2865,8 @@
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "noWrap" with the proper type (12) 
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "vAlign" with the proper type (13) 
 PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "bgColor" with the proper type (14) 
-FAIL HTMLTableCellElement must be primary interface of document.createElement("th") assert_equals: document.createElement("th")'s prototype is not HTMLTableCellElement.prototype expected object "[object HTMLTableCellElementPrototype]" but got object "[object HTMLTableHeaderCellElementPrototype]"
-FAIL Stringification of document.createElement("th") assert_equals: class string of document.createElement("th") expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
+PASS HTMLTableCellElement must be primary interface of document.createElement("th") 
+PASS Stringification of document.createElement("th") 
 PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type (0) 
 PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type (1) 
 PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "headers" with the proper type (2) 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt (202936 => 202937)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -260,14 +260,14 @@
 PASS Interfaces for TABLE 
 PASS Interfaces for tbody 
 PASS Interfaces for TBODY 
-FAIL Interfaces for td assert_equals: Element td should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
-FAIL Interfaces for TD assert_equals: Element TD should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
+PASS Interfaces for td 
+PASS Interfaces for TD 
 PASS Interfaces for textarea 
 PASS Interfaces for TEXTAREA 
 PASS Interfaces for tfoot 
 PASS Interfaces for TFOOT 
-FAIL Interfaces for th assert_equals: Element th should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
-FAIL Interfaces for TH assert_equals: Element TH should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
+PASS Interfaces for th 
+PASS Interfaces for TH 
 PASS Interfaces for thead 
 PASS Interfaces for THEAD 
 PASS Interfaces for time 

Modified: trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt (202936 => 202937)


--- trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -260,14 +260,14 @@
 PASS Interfaces for TABLE 
 PASS Interfaces for tbody 
 PASS Interfaces for TBODY 
-FAIL Interfaces for td assert_equals: Element td should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
-FAIL Interfaces for TD assert_equals: Element TD should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
+PASS Interfaces for td 
+PASS Interfaces for TD 
 PASS Interfaces for textarea 
 PASS Interfaces for TEXTAREA 
 PASS Interfaces for tfoot 
 PASS Interfaces for TFOOT 
-FAIL Interfaces for th assert_equals: Element th should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
-FAIL Interfaces for TH assert_equals: Element TH should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
+PASS Interfaces for th 
+PASS Interfaces for TH 
 PASS Interfaces for thead 
 PASS Interfaces for THEAD 
 PASS Interfaces for time 

Modified: trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt (202936 => 202937)


--- trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -788,21 +788,11 @@
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('set') is false

Modified: trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt (202936 => 202937)


--- trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -788,21 +788,11 @@
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('set') is false

Modified: trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt (202936 => 202937)


--- trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -638,21 +638,11 @@
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('set') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('set') is false

Modified: trunk/Source/WebCore/CMakeLists.txt (202936 => 202937)


--- trunk/Source/WebCore/CMakeLists.txt	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/CMakeLists.txt	2016-07-07 22:36:42 UTC (rev 202937)
@@ -506,9 +506,7 @@
     html/HTMLTableCaptionElement.idl
     html/HTMLTableCellElement.idl
     html/HTMLTableColElement.idl
-    html/HTMLTableDataCellElement.idl
     html/HTMLTableElement.idl
-    html/HTMLTableHeaderCellElement.idl
     html/HTMLTableRowElement.idl
     html/HTMLTableSectionElement.idl
     html/HTMLTemplateElement.idl
@@ -1719,7 +1717,6 @@
     html/HTMLTableCellElement.cpp
     html/HTMLTableColElement.cpp
     html/HTMLTableElement.cpp
-    html/HTMLTableHeaderCellElement.cpp
     html/HTMLTablePartElement.cpp
     html/HTMLTableRowElement.cpp
     html/HTMLTableRowsCollection.cpp

Modified: trunk/Source/WebCore/ChangeLog (202936 => 202937)


--- trunk/Source/WebCore/ChangeLog	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/ChangeLog	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,3 +1,51 @@
+2016-07-07  Chris Dumez  <[email protected]>
+
+        td / th should be exposed as HTMLTableCellElement objects
+        https://bugs.webkit.org/show_bug.cgi?id=159518
+        <rdar://problem/27225436>
+
+        Reviewed by Ryosuke Niwa.
+
+        td / th should be exposed as HTMLTableCellElement objects:
+        - https://html.spec.whatwg.org/multipage/tables.html#the-td-element
+        - https://html.spec.whatwg.org/multipage/tables.html#the-th-element
+
+        We were using HTMLTableDataCellElement / HTMLTableHeaderCellElement
+        sub-types.
+
+        Firefox and Chrome match the current specification.
+
+        We actually introduced these types recently via Bug 148859 to align
+        with an older version of the HTML specification. However, it seems the
+        specification has been updated to match Firefox / Chrome in the mean
+        time.
+
+        Since we have not shipped those subtypes yet, the compatibility risk is
+        low.
+
+        No new tests, rebaselined existing tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/HTMLElementsAllInOne.cpp:
+        * html/HTMLTableCellElement.cpp:
+        (WebCore::HTMLTableCellElement::create):
+        (WebCore::HTMLTableCellElement::scope):
+        (WebCore::HTMLTableCellElement::setScope):
+        (WebCore::HTMLTableCellElement::setRowSpanForBindings): Deleted.
+        * html/HTMLTableCellElement.h:
+        * html/HTMLTableCellElement.idl:
+        * html/HTMLTableDataCellElement.h: Removed.
+        * html/HTMLTableDataCellElement.idl: Removed.
+        * html/HTMLTableHeaderCellElement.cpp: Removed.
+        * html/HTMLTableHeaderCellElement.h: Removed.
+        * html/HTMLTableHeaderCellElement.idl: Removed.
+        * html/HTMLTableRowElement.cpp:
+        (WebCore::HTMLTableRowElement::insertCell):
+        * html/HTMLTagNames.in:
+
 2016-07-07  Brady Eidson  <[email protected]>
 
         Modern IDB: When IDBDatabase objects are garbage collected, they don't close their server connection.

Modified: trunk/Source/WebCore/DerivedSources.cpp (202936 => 202937)


--- trunk/Source/WebCore/DerivedSources.cpp	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/DerivedSources.cpp	2016-07-07 22:36:42 UTC (rev 202937)
@@ -283,9 +283,7 @@
 #include "JSHTMLTableCaptionElement.cpp"
 #include "JSHTMLTableCellElement.cpp"
 #include "JSHTMLTableColElement.cpp"
-#include "JSHTMLTableDataCellElement.cpp"
 #include "JSHTMLTableElement.cpp"
-#include "JSHTMLTableHeaderCellElement.cpp"
 #include "JSHTMLTableRowElement.cpp"
 #include "JSHTMLTableSectionElement.cpp"
 #include "JSHTMLTemplateElement.cpp"

Modified: trunk/Source/WebCore/DerivedSources.make (202936 => 202937)


--- trunk/Source/WebCore/DerivedSources.make	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/DerivedSources.make	2016-07-07 22:36:42 UTC (rev 202937)
@@ -426,9 +426,7 @@
     $(WebCore)/html/HTMLTableCaptionElement.idl \
     $(WebCore)/html/HTMLTableCellElement.idl \
     $(WebCore)/html/HTMLTableColElement.idl \
-    $(WebCore)/html/HTMLTableDataCellElement.idl \
     $(WebCore)/html/HTMLTableElement.idl \
-    $(WebCore)/html/HTMLTableHeaderCellElement.idl \
     $(WebCore)/html/HTMLTableRowElement.idl \
     $(WebCore)/html/HTMLTableSectionElement.idl \
     $(WebCore)/html/HTMLTemplateElement.idl \

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (202936 => 202937)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1794,7 +1794,6 @@
 		46C83EFE1A9BBE2900A79A41 /* GeoNotifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 46C83EFC1A9BBE2900A79A41 /* GeoNotifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		46DB7D571B20FE46005651B2 /* VNodeTrackerCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D561B20FE3C005651B2 /* VNodeTrackerCocoa.cpp */; };
 		46DBB6501AB8C96F00D9A813 /* PowerObserverMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */; };
-		46DCFDC01C768A150025B868 /* HTMLTableHeaderCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */; };
 		46EBEA021B7D4D6500BE4941 /* CollectionTraversal.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */; };
 		46F3E3F91B2109000087ED13 /* VNodeTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D581B20FE58005651B2 /* VNodeTracker.cpp */; };
 		46F3E3FA1B2109100087ED13 /* VNodeTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DB7D591B20FE58005651B2 /* VNodeTracker.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -2937,13 +2936,7 @@
 		835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 835D363619FF6193004C93AB /* StyleBuilderCustom.h */; };
 		8367587E1C56E99B008A1087 /* JSHTMLDataElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 834B86A91C56E93E00F3F0E3 /* JSHTMLDataElement.cpp */; };
 		8367587F1C56E99B008A1087 /* JSHTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A81C56E93E00F3F0E3 /* JSHTMLDataElement.h */; };
-		836BAD211BD1CA670037356A /* HTMLTableHeaderCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */; };
-		836BAD221BD1CA670037356A /* HTMLTableDataCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */; };
 		836C14431CDEAFD80073493F /* JSXPathNSResolverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */; };
-		836CB1F61BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */; };
-		836CB1F71BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */; };
-		836CB1F81BD1E41800AF1591 /* JSHTMLTableDataCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */; };
-		836CB1F91BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */; };
 		836DAA061CEAB80D00A2B707 /* RenderDescendantIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 836DAA051CEAB7CD00A2B707 /* RenderDescendantIterator.h */; };
 		836FBCEA178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */; };
 		836FBCEC178C117F00B21A15 /* SVGAnimatedProperty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */; };
@@ -9418,7 +9411,6 @@
 		46DB7D581B20FE58005651B2 /* VNodeTracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VNodeTracker.cpp; sourceTree = "<group>"; };
 		46DB7D591B20FE58005651B2 /* VNodeTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VNodeTracker.h; sourceTree = "<group>"; };
 		46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PowerObserverMac.h; sourceTree = "<group>"; };
-		46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLTableHeaderCellElement.cpp; sourceTree = "<group>"; };
 		46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionTraversal.h; sourceTree = "<group>"; };
 		46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMNamedFlowCollectionCustom.cpp; sourceTree = "<group>"; };
 		490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEWebKitBridge.cpp; sourceTree = "<group>"; };
@@ -10690,13 +10682,7 @@
 		835D363619FF6193004C93AB /* StyleBuilderCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilderCustom.h; sourceTree = "<group>"; };
 		835F8B261D2D90BA00E408EC /* Slotable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Slotable.idl; sourceTree = "<group>"; };
 		8369E58F1AFDD0300087DF68 /* NonDocumentTypeChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDocumentTypeChildNode.idl; sourceTree = "<group>"; };
-		836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableHeaderCellElement.h; sourceTree = "<group>"; };
-		836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableDataCellElement.h; sourceTree = "<group>"; };
 		836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathNSResolverCustom.cpp; sourceTree = "<group>"; };
-		836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLTableHeaderCellElement.h; sourceTree = "<group>"; };
-		836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLTableHeaderCellElement.cpp; sourceTree = "<group>"; };
-		836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLTableDataCellElement.h; sourceTree = "<group>"; };
-		836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLTableDataCellElement.cpp; sourceTree = "<group>"; };
 		836DAA051CEAB7CD00A2B707 /* RenderDescendantIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderDescendantIterator.h; sourceTree = "<group>"; };
 		836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTypeAnimator.cpp; sourceTree = "<group>"; };
 		836FBCEB178C117F00B21A15 /* SVGAnimatedProperty.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedProperty.cpp; sourceTree = "<group>"; };
@@ -10741,8 +10727,6 @@
 		83F1206A1B8C103600D75F63 /* JSNodeFilterCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNodeFilterCustom.cpp; sourceTree = "<group>"; };
 		83F570AD1C53268E007FD6CB /* JSXMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSXMLDocument.h; sourceTree = "<group>"; };
 		83F570AE1C53268E007FD6CB /* JSXMLDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLDocument.cpp; sourceTree = "<group>"; };
-		83FE5F1F1BD1C55E0038BEEC /* HTMLTableHeaderCellElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLTableHeaderCellElement.idl; sourceTree = "<group>"; };
-		83FE5F201BD1C55E0038BEEC /* HTMLTableDataCellElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLTableDataCellElement.idl; sourceTree = "<group>"; };
 		8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = "<group>"; };
 		8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamBuilder.cpp; sourceTree = "<group>"; };
 		8419D2A6120D92D000141F8F /* SVGPathByteStreamBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStreamBuilder.h; sourceTree = "<group>"; };
@@ -19600,14 +19584,9 @@
 				A871DB1B0A150BD600B12A68 /* HTMLTableColElement.cpp */,
 				A871DB210A150BD600B12A68 /* HTMLTableColElement.h */,
 				855542590AA48B1E00BA89F2 /* HTMLTableColElement.idl */,
-				836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */,
-				83FE5F201BD1C55E0038BEEC /* HTMLTableDataCellElement.idl */,
 				A871DB1A0A150BD600B12A68 /* HTMLTableElement.cpp */,
 				A871DB190A150BD600B12A68 /* HTMLTableElement.h */,
 				8555425A0AA48B1E00BA89F2 /* HTMLTableElement.idl */,
-				46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */,
-				836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */,
-				83FE5F1F1BD1C55E0038BEEC /* HTMLTableHeaderCellElement.idl */,
 				A871DB1F0A150BD600B12A68 /* HTMLTablePartElement.cpp */,
 				A871DB1E0A150BD600B12A68 /* HTMLTablePartElement.h */,
 				A871DB220A150BD600B12A68 /* HTMLTableRowElement.cpp */,
@@ -20546,12 +20525,8 @@
 				BC06EDE20BFD6D0D00856E9D /* JSHTMLTableCellElement.h */,
 				BC06ED990BFD660600856E9D /* JSHTMLTableColElement.cpp */,
 				BC06ED9A0BFD660600856E9D /* JSHTMLTableColElement.h */,
-				836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */,
-				836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */,
 				BC06EE020BFD71AA00856E9D /* JSHTMLTableElement.cpp */,
 				BC06EE030BFD71AA00856E9D /* JSHTMLTableElement.h */,
-				836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */,
-				836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */,
 				BC06ED9B0BFD660600856E9D /* JSHTMLTableRowElement.cpp */,
 				BC06ED9C0BFD660600856E9D /* JSHTMLTableRowElement.h */,
 				BC06ED040BFD5BAE00856E9D /* JSHTMLTableSectionElement.cpp */,
@@ -26587,9 +26562,7 @@
 				A871DB2B0A150BD600B12A68 /* HTMLTableCaptionElement.h in Headers */,
 				A871DB2A0A150BD600B12A68 /* HTMLTableCellElement.h in Headers */,
 				A871DB2F0A150BD600B12A68 /* HTMLTableColElement.h in Headers */,
-				836BAD221BD1CA670037356A /* HTMLTableDataCellElement.h in Headers */,
 				A871DB270A150BD600B12A68 /* HTMLTableElement.h in Headers */,
-				836BAD211BD1CA670037356A /* HTMLTableHeaderCellElement.h in Headers */,
 				A871DB2C0A150BD600B12A68 /* HTMLTablePartElement.h in Headers */,
 				A871DB310A150BD600B12A68 /* HTMLTableRowElement.h in Headers */,
 				93442C9E0D2B335C00338FF9 /* HTMLTableRowsCollection.h in Headers */,
@@ -26987,9 +26960,7 @@
 				BCA169A30BFD55B40019CA76 /* JSHTMLTableCaptionElement.h in Headers */,
 				BC06EDE40BFD6D0D00856E9D /* JSHTMLTableCellElement.h in Headers */,
 				BC06ED9E0BFD660600856E9D /* JSHTMLTableColElement.h in Headers */,
-				836CB1F81BD1E41800AF1591 /* JSHTMLTableDataCellElement.h in Headers */,
 				BC06EE050BFD71AA00856E9D /* JSHTMLTableElement.h in Headers */,
-				836CB1F61BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h in Headers */,
 				BC06EDA00BFD660600856E9D /* JSHTMLTableRowElement.h in Headers */,
 				BC06ED070BFD5BAE00856E9D /* JSHTMLTableSectionElement.h in Headers */,
 				D6489D26166FFCF1007C031B /* JSHTMLTemplateElement.h in Headers */,
@@ -30321,7 +30292,6 @@
 				A871DB2E0A150BD600B12A68 /* HTMLTableCellElement.cpp in Sources */,
 				A871DB290A150BD600B12A68 /* HTMLTableColElement.cpp in Sources */,
 				A871DB280A150BD600B12A68 /* HTMLTableElement.cpp in Sources */,
-				46DCFDC01C768A150025B868 /* HTMLTableHeaderCellElement.cpp in Sources */,
 				A871DB2D0A150BD600B12A68 /* HTMLTablePartElement.cpp in Sources */,
 				A871DB300A150BD600B12A68 /* HTMLTableRowElement.cpp in Sources */,
 				93442CA00D2B336000338FF9 /* HTMLTableRowsCollection.cpp in Sources */,
@@ -30754,9 +30724,7 @@
 				BCA169A20BFD55B40019CA76 /* JSHTMLTableCaptionElement.cpp in Sources */,
 				BC06EDE30BFD6D0D00856E9D /* JSHTMLTableCellElement.cpp in Sources */,
 				BC06ED9D0BFD660600856E9D /* JSHTMLTableColElement.cpp in Sources */,
-				836CB1F91BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp in Sources */,
 				BC06EE040BFD71AA00856E9D /* JSHTMLTableElement.cpp in Sources */,
-				836CB1F71BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp in Sources */,
 				BC06ED9F0BFD660600856E9D /* JSHTMLTableRowElement.cpp in Sources */,
 				BC06ED060BFD5BAE00856E9D /* JSHTMLTableSectionElement.cpp in Sources */,
 				D6489D25166FFCF1007C031B /* JSHTMLTemplateElement.cpp in Sources */,

Modified: trunk/Source/WebCore/html/HTMLElementsAllInOne.cpp (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLElementsAllInOne.cpp	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLElementsAllInOne.cpp	2016-07-07 22:36:42 UTC (rev 202937)
@@ -102,7 +102,6 @@
 #include "HTMLTableCellElement.cpp"
 #include "HTMLTableColElement.cpp"
 #include "HTMLTableElement.cpp"
-#include "HTMLTableHeaderCellElement.cpp"
 #include "HTMLTablePartElement.cpp"
 #include "HTMLTableRowElement.cpp"
 #include "HTMLTableSectionElement.cpp"

Modified: trunk/Source/WebCore/html/HTMLTableCellElement.cpp (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableCellElement.cpp	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableCellElement.cpp	2016-07-07 22:36:42 UTC (rev 202937)
@@ -36,6 +36,11 @@
 
 using namespace HTMLNames;
 
+Ref<HTMLTableCellElement> HTMLTableCellElement::create(const QualifiedName& tagName, Document& document)
+{
+    return adoptRef(*new HTMLTableCellElement(tagName, document));
+}
+
 HTMLTableCellElement::HTMLTableCellElement(const QualifiedName& tagName, Document& document)
     : HTMLTablePartElement(tagName, document)
 {
@@ -154,11 +159,36 @@
     setAttributeWithoutSynchronization(rowspanAttr, AtomicString::number(limitToOnlyHTMLNonNegative(n, 1)));
 }
 
-String HTMLTableCellElement::scope() const
+const AtomicString& HTMLTableCellElement::scope() const
 {
-    return fastGetAttribute(scopeAttr);
+    // https://html.spec.whatwg.org/multipage/tables.html#attr-th-scope
+    static NeverDestroyed<const AtomicString> row("row", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<const AtomicString> col("col", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<const AtomicString> rowgroup("rowgroup", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<const AtomicString> colgroup("colgroup", AtomicString::ConstructFromLiteral);
+
+    const AtomicString& value = fastGetAttribute(HTMLNames::scopeAttr);
+
+    // Only conforming for th elements.
+    if (!hasTagName(thTag))
+        return value;
+
+    if (equalIgnoringASCIICase(value, row))
+        return row;
+    if (equalIgnoringASCIICase(value, col))
+        return col;
+    if (equalIgnoringASCIICase(value, rowgroup))
+        return rowgroup;
+    if (equalIgnoringASCIICase(value, colgroup))
+        return colgroup;
+    return emptyAtom;
 }
 
+void HTMLTableCellElement::setScope(const AtomicString& scope)
+{
+    setAttributeWithoutSynchronization(scopeAttr, scope);
+}
+
 void HTMLTableCellElement::addSubresourceAttributeURLs(ListHashSet<URL>& urls) const
 {
     HTMLTablePartElement::addSubresourceAttributeURLs(urls);

Modified: trunk/Source/WebCore/html/HTMLTableCellElement.h (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableCellElement.h	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableCellElement.h	2016-07-07 22:36:42 UTC (rev 202937)
@@ -30,8 +30,10 @@
 
 namespace WebCore {
 
-class HTMLTableCellElement : public HTMLTablePartElement {
+class HTMLTableCellElement final : public HTMLTablePartElement {
 public:
+    static Ref<HTMLTableCellElement> create(const QualifiedName&, Document&);
+
     int cellIndex() const;
     unsigned colSpan() const;
     unsigned colSpanForBindings() const;
@@ -45,11 +47,12 @@
     String abbr() const;
     String axis() const;
     String headers() const;
-    String scope() const;
+    const AtomicString& scope() const;
+    void setScope(const AtomicString&);
 
     WEBCORE_EXPORT HTMLTableCellElement* cellAbove() const;
 
-protected:
+private:
     HTMLTableCellElement(const QualifiedName&, Document&);
 
     void parseAttribute(const QualifiedName&, const AtomicString&) override;

Modified: trunk/Source/WebCore/html/HTMLTableCellElement.idl (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableCellElement.idl	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableCellElement.idl	2016-07-07 22:36:42 UTC (rev 202937)
@@ -43,9 +43,7 @@
     [Reflect] attribute DOMString vAlign;
     [Reflect] attribute DOMString width;
 
-#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C || defined(LANGUAGE_GOBJECT) && LANGUAGE_GOBJECT
     [Reflect] attribute DOMString abbr;
-    [Reflect] attribute DOMString scope;
-#endif
+    attribute DOMString scope;
 };
 

Deleted: trunk/Source/WebCore/html/HTMLTableDataCellElement.h (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableDataCellElement.h	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableDataCellElement.h	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,54 +0,0 @@
-/*
- * 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 HTMLTableDataCellElement_h
-#define HTMLTableDataCellElement_h
-
-#include "HTMLNames.h"
-#include "HTMLTableCellElement.h"
-
-namespace WebCore {
-
-class HTMLTableDataCellElement final : public HTMLTableCellElement {
-public:
-    static Ref<HTMLTableDataCellElement> create(Document& document)
-    {
-        return adoptRef(*new HTMLTableDataCellElement(HTMLNames::tdTag, document));
-    }
-
-    static Ref<HTMLTableDataCellElement> create(const QualifiedName& tagName, Document& document)
-    {
-        ASSERT(tagName == HTMLNames::tdTag);
-        return adoptRef(*new HTMLTableDataCellElement(tagName, document));
-    }
-
-private:
-    using HTMLTableCellElement::HTMLTableCellElement;
-};
-
-}
-
-#endif // HTMLTableDataCellElement_h
-

Deleted: trunk/Source/WebCore/html/HTMLTableDataCellElement.idl (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableDataCellElement.idl	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableDataCellElement.idl	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,30 +0,0 @@
-/*
- * 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. ``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.
- */
-
-interface HTMLTableDataCellElement : HTMLTableCellElement {
-    // Legacy attributes that were kept for backward compatibility.
-    [Reflect] attribute DOMString abbr;
-    [Reflect] attribute DOMString scope;
-};

Deleted: trunk/Source/WebCore/html/HTMLTableHeaderCellElement.cpp (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableHeaderCellElement.cpp	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableHeaderCellElement.cpp	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2016 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 "HTMLTableHeaderCellElement.h"
-
-#include "HTMLNames.h"
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-const AtomicString& HTMLTableHeaderCellElement::scope() const
-{
-    // https://html.spec.whatwg.org/multipage/tables.html#attr-th-scope
-    static NeverDestroyed<const AtomicString> row("row", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<const AtomicString> col("col", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<const AtomicString> rowgroup("rowgroup", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<const AtomicString> colgroup("colgroup", AtomicString::ConstructFromLiteral);
-
-    const AtomicString& value = fastGetAttribute(HTMLNames::scopeAttr);
-    if (equalIgnoringASCIICase(value, row))
-        return row;
-    if (equalIgnoringASCIICase(value, col))
-        return col;
-    if (equalIgnoringASCIICase(value, rowgroup))
-        return rowgroup;
-    if (equalIgnoringASCIICase(value, colgroup))
-        return colgroup;
-    return emptyAtom;
-}
-
-void HTMLTableHeaderCellElement::setScope(const AtomicString& scope)
-{
-    setAttributeWithoutSynchronization(HTMLNames::scopeAttr, scope);
-}
-
-} // namespace WebCore

Deleted: trunk/Source/WebCore/html/HTMLTableHeaderCellElement.h (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableHeaderCellElement.h	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableHeaderCellElement.h	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,57 +0,0 @@
-/*
- * 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 HTMLTableHeaderCellElement_h
-#define HTMLTableHeaderCellElement_h
-
-#include "HTMLNames.h"
-#include "HTMLTableCellElement.h"
-
-namespace WebCore {
-
-class HTMLTableHeaderCellElement final : public HTMLTableCellElement {
-public:
-    static Ref<HTMLTableHeaderCellElement> create(Document& document)
-    {
-        return adoptRef(*new HTMLTableHeaderCellElement(HTMLNames::thTag, document));
-    }
-
-    static Ref<HTMLTableHeaderCellElement> create(const QualifiedName& tagName, Document& document)
-    {
-        ASSERT(tagName == HTMLNames::thTag);
-        return adoptRef(*new HTMLTableHeaderCellElement(tagName, document));
-    }
-
-    const AtomicString& scope() const;
-    void setScope(const AtomicString&);
-
-private:
-    using HTMLTableCellElement::HTMLTableCellElement;
-};
-
-}
-
-#endif // HTMLTableHeaderCellElement_h
-

Deleted: trunk/Source/WebCore/html/HTMLTableHeaderCellElement.idl (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableHeaderCellElement.idl	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableHeaderCellElement.idl	2016-07-07 22:36:42 UTC (rev 202937)
@@ -1,29 +0,0 @@
-/*
- * 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. ``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.
- */
-
-interface HTMLTableHeaderCellElement : HTMLTableCellElement {
-    [Reflect] attribute DOMString abbr;
-    attribute DOMString scope;
-};

Modified: trunk/Source/WebCore/html/HTMLTableRowElement.cpp (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTableRowElement.cpp	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTableRowElement.cpp	2016-07-07 22:36:42 UTC (rev 202937)
@@ -28,7 +28,7 @@
 #include "ExceptionCode.h"
 #include "GenericCachedHTMLCollection.h"
 #include "HTMLNames.h"
-#include "HTMLTableDataCellElement.h"
+#include "HTMLTableCellElement.h"
 #include "HTMLTableElement.h"
 #include "HTMLTableSectionElement.h"
 #include "NodeList.h"
@@ -112,7 +112,7 @@
         return nullptr;
     }
 
-    auto cell = HTMLTableDataCellElement::create(document());
+    auto cell = HTMLTableCellElement::create(tdTag, document());
     if (index < 0 || index >= numCells)
         appendChild(cell, ec);
     else {

Modified: trunk/Source/WebCore/html/HTMLTagNames.in (202936 => 202937)


--- trunk/Source/WebCore/html/HTMLTagNames.in	2016-07-07 22:15:04 UTC (rev 202936)
+++ trunk/Source/WebCore/html/HTMLTagNames.in	2016-07-07 22:36:42 UTC (rev 202937)
@@ -125,11 +125,11 @@
 sup interfaceName=HTMLElement
 table
 tbody interfaceName=HTMLTableSectionElement
-td interfaceName=HTMLTableDataCellElement
+td interfaceName=HTMLTableCellElement
 template
 textarea interfaceName=HTMLTextAreaElement, constructorNeedsFormElement
 tfoot interfaceName=HTMLTableSectionElement
-th interfaceName=HTMLTableHeaderCellElement
+th interfaceName=HTMLTableCellElement
 thead interfaceName=HTMLTableSectionElement
 time
 title
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to