⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 202937 in webkit


Ignore:
Timestamp:
Jul 7, 2016, 3:36:42 PM (10 years ago)
Author:
Chris Dumez
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:

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:
Location:
trunk
Files:
5 deleted
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/fast/dom/wrapper-classes-expected.txt

    r196392 r202937  
    447447PASS tagJSWrapperPrototypeClass('tbody') is 'HTMLTableSectionElementPrototype'
    448448PASS tagJSWrapperConstructorClass('tbody') is 'Function'
    449 PASS tagJSWrapperClass('td') is 'HTMLTableDataCellElement'
    450 PASS tagJSWrapperPrototypeClass('td') is 'HTMLTableDataCellElementPrototype'
     449PASS tagJSWrapperClass('td') is 'HTMLTableCellElement'
     450PASS tagJSWrapperPrototypeClass('td') is 'HTMLTableCellElementPrototype'
    451451PASS tagJSWrapperConstructorClass('td') is 'Function'
    452452PASS tagJSWrapperClass('textarea') is 'HTMLTextAreaElement'
     
    456456PASS tagJSWrapperPrototypeClass('tfoot') is 'HTMLTableSectionElementPrototype'
    457457PASS tagJSWrapperConstructorClass('tfoot') is 'Function'
    458 PASS tagJSWrapperClass('th') is 'HTMLTableHeaderCellElement'
    459 PASS tagJSWrapperPrototypeClass('th') is 'HTMLTableHeaderCellElementPrototype'
     458PASS tagJSWrapperClass('th') is 'HTMLTableCellElement'
     459PASS tagJSWrapperPrototypeClass('th') is 'HTMLTableCellElementPrototype'
    460460PASS tagJSWrapperConstructorClass('th') is 'Function'
    461461PASS tagJSWrapperClass('thead') is 'HTMLTableSectionElement'
  • trunk/LayoutTests/fast/dom/wrapper-classes.html

    r196392 r202937  
    248248    testTag("table", "HTMLTableElement");
    249249    testTag("tbody", "HTMLTableSectionElement");
    250     testTag("td", "HTMLTableDataCellElement");
     250    testTag("td", "HTMLTableCellElement");
    251251    testTag("textarea", "HTMLTextAreaElement");
    252252    testTag("tfoot", "HTMLTableSectionElement");
    253     testTag("th", "HTMLTableHeaderCellElement");
     253    testTag("th", "HTMLTableCellElement");
    254254    testTag("thead", "HTMLTableSectionElement");
    255255    testTag("title", "HTMLTitleElement");
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r202910 r202937  
     12016-07-07  Chris Dumez  <cdumez@apple.com>
     2
     3        td / th should be exposed as HTMLTableCellElement objects
     4        https://bugs.webkit.org/show_bug.cgi?id=159518
     5        <rdar://problem/27225436>
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        Rebaseline W3C tests now that more checks are passing.
     10
     11        * web-platform-tests/html/dom/interfaces-expected.txt:
     12        * web-platform-tests/html/semantics/interfaces-expected.txt:
     13
    1142016-07-07  Youenn Fablet  <youenn@apple.com>
    215
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt

    r202539 r202937  
    28382838PASS HTMLTableCellElement interface: attribute headers
    28392839PASS HTMLTableCellElement interface: attribute cellIndex
    2840 FAIL HTMLTableCellElement interface: attribute scope assert_true: The prototype object must have a property "scope" expected true got false
    2841 FAIL HTMLTableCellElement interface: attribute abbr assert_true: The prototype object must have a property "abbr" expected true got false
     2840PASS HTMLTableCellElement interface: attribute scope
     2841PASS HTMLTableCellElement interface: attribute abbr
    28422842PASS HTMLTableCellElement interface: attribute align
    28432843PASS HTMLTableCellElement interface: attribute axis
     
    28492849PASS HTMLTableCellElement interface: attribute vAlign
    28502850PASS HTMLTableCellElement interface: attribute bgColor
    2851 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]"
    2852 FAIL Stringification of document.createElement("td") assert_equals: class string of document.createElement("td") expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
     2851PASS HTMLTableCellElement must be primary interface of document.createElement("td")
     2852PASS Stringification of document.createElement("td")
    28532853PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "colSpan" with the proper type (0)
    28542854PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "rowSpan" with the proper type (1)
     
    28662866PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "vAlign" with the proper type (13)
    28672867PASS HTMLTableCellElement interface: document.createElement("td") must inherit property "bgColor" with the proper type (14)
    2868 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]"
    2869 FAIL Stringification of document.createElement("th") assert_equals: class string of document.createElement("th") expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
     2868PASS HTMLTableCellElement must be primary interface of document.createElement("th")
     2869PASS Stringification of document.createElement("th")
    28702870PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "colSpan" with the proper type (0)
    28712871PASS HTMLTableCellElement interface: document.createElement("th") must inherit property "rowSpan" with the proper type (1)
  • trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt

    r202471 r202937  
    261261PASS Interfaces for tbody
    262262PASS Interfaces for TBODY
    263 FAIL Interfaces for td assert_equals: Element td should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
    264 FAIL Interfaces for TD assert_equals: Element TD should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
     263PASS Interfaces for td
     264PASS Interfaces for TD
    265265PASS Interfaces for textarea
    266266PASS Interfaces for TEXTAREA
    267267PASS Interfaces for tfoot
    268268PASS Interfaces for TFOOT
    269 FAIL Interfaces for th assert_equals: Element th should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
    270 FAIL Interfaces for TH assert_equals: Element TH should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
     269PASS Interfaces for th
     270PASS Interfaces for TH
    271271PASS Interfaces for thead
    272272PASS Interfaces for THEAD
  • trunk/LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt

    r202471 r202937  
    261261PASS Interfaces for tbody
    262262PASS Interfaces for TBODY
    263 FAIL Interfaces for td assert_equals: Element td should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
    264 FAIL Interfaces for TD assert_equals: Element TD should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableDataCellElement]"
     263PASS Interfaces for td
     264PASS Interfaces for TD
    265265PASS Interfaces for textarea
    266266PASS Interfaces for TEXTAREA
    267267PASS Interfaces for tfoot
    268268PASS Interfaces for TFOOT
    269 FAIL Interfaces for th assert_equals: Element th should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
    270 FAIL Interfaces for TH assert_equals: Element TH should have HTMLTableCellElement as its primary interface. expected "[object HTMLTableCellElement]" but got "[object HTMLTableHeaderCellElement]"
     269PASS Interfaces for th
     270PASS Interfaces for TH
    271271PASS Interfaces for thead
    272272PASS Interfaces for THEAD
  • trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt

    r202625 r202937  
    789789PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
    790790PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
    791 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
    792 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
    793 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
    794 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
    795 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
    796791PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
    797792PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
     
    799794PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
    800795PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
    801 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
    802 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
    803 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
    804 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
    805 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
    806796PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
    807797PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
  • trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt

    r202625 r202937  
    789789PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
    790790PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
    791 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
    792 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
    793 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
    794 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
    795 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
    796791PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
    797792PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
     
    799794PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
    800795PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
    801 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
    802 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
    803 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
    804 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
    805 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
    806796PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
    807797PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
  • trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt

    r199159 r202937  
    639639PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').enumerable is false
    640640PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableColElement').configurable is true
    641 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').value is HTMLTableDataCellElement
    642 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('get') is false
    643 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').hasOwnProperty('set') is false
    644 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').enumerable is false
    645 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableDataCellElement').configurable is true
    646641PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').value is HTMLTableElement
    647642PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').hasOwnProperty('get') is false
     
    649644PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').enumerable is false
    650645PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableElement').configurable is true
    651 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').value is HTMLTableHeaderCellElement
    652 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('get') is false
    653 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').hasOwnProperty('set') is false
    654 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').enumerable is false
    655 PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableHeaderCellElement').configurable is true
    656646PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').value is HTMLTableRowElement
    657647PASS Object.getOwnPropertyDescriptor(global, 'HTMLTableRowElement').hasOwnProperty('get') is false
  • trunk/Source/WebCore/CMakeLists.txt

    r202930 r202937  
    507507    html/HTMLTableCellElement.idl
    508508    html/HTMLTableColElement.idl
    509     html/HTMLTableDataCellElement.idl
    510509    html/HTMLTableElement.idl
    511     html/HTMLTableHeaderCellElement.idl
    512510    html/HTMLTableRowElement.idl
    513511    html/HTMLTableSectionElement.idl
     
    17201718    html/HTMLTableColElement.cpp
    17211719    html/HTMLTableElement.cpp
    1722     html/HTMLTableHeaderCellElement.cpp
    17231720    html/HTMLTablePartElement.cpp
    17241721    html/HTMLTableRowElement.cpp
  • trunk/Source/WebCore/ChangeLog

    r202935 r202937  
     12016-07-07  Chris Dumez  <cdumez@apple.com>
     2
     3        td / th should be exposed as HTMLTableCellElement objects
     4        https://bugs.webkit.org/show_bug.cgi?id=159518
     5        <rdar://problem/27225436>
     6
     7        Reviewed by Ryosuke Niwa.
     8
     9        td / th should be exposed as HTMLTableCellElement objects:
     10        - https://html.spec.whatwg.org/multipage/tables.html#the-td-element
     11        - https://html.spec.whatwg.org/multipage/tables.html#the-th-element
     12
     13        We were using HTMLTableDataCellElement / HTMLTableHeaderCellElement
     14        sub-types.
     15
     16        Firefox and Chrome match the current specification.
     17
     18        We actually introduced these types recently via Bug 148859 to align
     19        with an older version of the HTML specification. However, it seems the
     20        specification has been updated to match Firefox / Chrome in the mean
     21        time.
     22
     23        Since we have not shipped those subtypes yet, the compatibility risk is
     24        low.
     25
     26        No new tests, rebaselined existing tests.
     27
     28        * CMakeLists.txt:
     29        * DerivedSources.cpp:
     30        * DerivedSources.make:
     31        * WebCore.xcodeproj/project.pbxproj:
     32        * html/HTMLElementsAllInOne.cpp:
     33        * html/HTMLTableCellElement.cpp:
     34        (WebCore::HTMLTableCellElement::create):
     35        (WebCore::HTMLTableCellElement::scope):
     36        (WebCore::HTMLTableCellElement::setScope):
     37        (WebCore::HTMLTableCellElement::setRowSpanForBindings): Deleted.
     38        * html/HTMLTableCellElement.h:
     39        * html/HTMLTableCellElement.idl:
     40        * html/HTMLTableDataCellElement.h: Removed.
     41        * html/HTMLTableDataCellElement.idl: Removed.
     42        * html/HTMLTableHeaderCellElement.cpp: Removed.
     43        * html/HTMLTableHeaderCellElement.h: Removed.
     44        * html/HTMLTableHeaderCellElement.idl: Removed.
     45        * html/HTMLTableRowElement.cpp:
     46        (WebCore::HTMLTableRowElement::insertCell):
     47        * html/HTMLTagNames.in:
     48
    1492016-07-07  Brady Eidson  <beidson@apple.com>
    250
  • trunk/Source/WebCore/DerivedSources.cpp

    r202848 r202937  
    284284#include "JSHTMLTableCellElement.cpp"
    285285#include "JSHTMLTableColElement.cpp"
    286 #include "JSHTMLTableDataCellElement.cpp"
    287286#include "JSHTMLTableElement.cpp"
    288 #include "JSHTMLTableHeaderCellElement.cpp"
    289287#include "JSHTMLTableRowElement.cpp"
    290288#include "JSHTMLTableSectionElement.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r202873 r202937  
    427427    $(WebCore)/html/HTMLTableCellElement.idl \
    428428    $(WebCore)/html/HTMLTableColElement.idl \
    429     $(WebCore)/html/HTMLTableDataCellElement.idl \
    430429    $(WebCore)/html/HTMLTableElement.idl \
    431     $(WebCore)/html/HTMLTableHeaderCellElement.idl \
    432430    $(WebCore)/html/HTMLTableRowElement.idl \
    433431    $(WebCore)/html/HTMLTableSectionElement.idl \
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r202930 r202937  
    17951795                46DB7D571B20FE46005651B2 /* VNodeTrackerCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D561B20FE3C005651B2 /* VNodeTrackerCocoa.cpp */; };
    17961796                46DBB6501AB8C96F00D9A813 /* PowerObserverMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */; };
    1797                 46DCFDC01C768A150025B868 /* HTMLTableHeaderCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */; };
    17981797                46EBEA021B7D4D6500BE4941 /* CollectionTraversal.h in Headers */ = {isa = PBXBuildFile; fileRef = 46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */; };
    17991798                46F3E3F91B2109000087ED13 /* VNodeTracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 46DB7D581B20FE58005651B2 /* VNodeTracker.cpp */; };
     
    29382937                8367587E1C56E99B008A1087 /* JSHTMLDataElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 834B86A91C56E93E00F3F0E3 /* JSHTMLDataElement.cpp */; };
    29392938                8367587F1C56E99B008A1087 /* JSHTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A81C56E93E00F3F0E3 /* JSHTMLDataElement.h */; };
    2940                 836BAD211BD1CA670037356A /* HTMLTableHeaderCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */; };
    2941                 836BAD221BD1CA670037356A /* HTMLTableDataCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */; };
    29422939                836C14431CDEAFD80073493F /* JSXPathNSResolverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */; };
    2943                 836CB1F61BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */; };
    2944                 836CB1F71BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */; };
    2945                 836CB1F81BD1E41800AF1591 /* JSHTMLTableDataCellElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */; };
    2946                 836CB1F91BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */; };
    29472940                836DAA061CEAB80D00A2B707 /* RenderDescendantIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 836DAA051CEAB7CD00A2B707 /* RenderDescendantIterator.h */; };
    29482941                836FBCEA178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */; };
     
    94199412                46DB7D591B20FE58005651B2 /* VNodeTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VNodeTracker.h; sourceTree = "<group>"; };
    94209413                46DBB64E1AB8C96F00D9A813 /* PowerObserverMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PowerObserverMac.h; sourceTree = "<group>"; };
    9421                 46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLTableHeaderCellElement.cpp; sourceTree = "<group>"; };
    94229414                46EBEA011B7D4D5D00BE4941 /* CollectionTraversal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionTraversal.h; sourceTree = "<group>"; };
    94239415                46F2768E1B85297F005C2556 /* JSDOMNamedFlowCollectionCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMNamedFlowCollectionCustom.cpp; sourceTree = "<group>"; };
     
    1069110683                835F8B261D2D90BA00E408EC /* Slotable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Slotable.idl; sourceTree = "<group>"; };
    1069210684                8369E58F1AFDD0300087DF68 /* NonDocumentTypeChildNode.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDocumentTypeChildNode.idl; sourceTree = "<group>"; };
    10693                 836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableHeaderCellElement.h; sourceTree = "<group>"; };
    10694                 836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLTableDataCellElement.h; sourceTree = "<group>"; };
    1069510685                836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathNSResolverCustom.cpp; sourceTree = "<group>"; };
    10696                 836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLTableHeaderCellElement.h; sourceTree = "<group>"; };
    10697                 836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLTableHeaderCellElement.cpp; sourceTree = "<group>"; };
    10698                 836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLTableDataCellElement.h; sourceTree = "<group>"; };
    10699                 836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLTableDataCellElement.cpp; sourceTree = "<group>"; };
    1070010686                836DAA051CEAB7CD00A2B707 /* RenderDescendantIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderDescendantIterator.h; sourceTree = "<group>"; };
    1070110687                836FBCE9178C113200B21A15 /* SVGAnimatedTypeAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedTypeAnimator.cpp; sourceTree = "<group>"; };
     
    1074210728                83F570AD1C53268E007FD6CB /* JSXMLDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSXMLDocument.h; sourceTree = "<group>"; };
    1074310729                83F570AE1C53268E007FD6CB /* JSXMLDocument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLDocument.cpp; sourceTree = "<group>"; };
    10744                 83FE5F1F1BD1C55E0038BEEC /* HTMLTableHeaderCellElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLTableHeaderCellElement.idl; sourceTree = "<group>"; };
    10745                 83FE5F201BD1C55E0038BEEC /* HTMLTableDataCellElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLTableDataCellElement.idl; sourceTree = "<group>"; };
    1074610730                8419D2A4120D92D000141F8F /* SVGPathByteStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGPathByteStream.h; sourceTree = "<group>"; };
    1074710731                8419D2A5120D92D000141F8F /* SVGPathByteStreamBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGPathByteStreamBuilder.cpp; sourceTree = "<group>"; };
     
    1960119585                                A871DB210A150BD600B12A68 /* HTMLTableColElement.h */,
    1960219586                                855542590AA48B1E00BA89F2 /* HTMLTableColElement.idl */,
    19603                                 836BAD201BD1CA670037356A /* HTMLTableDataCellElement.h */,
    19604                                 83FE5F201BD1C55E0038BEEC /* HTMLTableDataCellElement.idl */,
    1960519587                                A871DB1A0A150BD600B12A68 /* HTMLTableElement.cpp */,
    1960619588                                A871DB190A150BD600B12A68 /* HTMLTableElement.h */,
    1960719589                                8555425A0AA48B1E00BA89F2 /* HTMLTableElement.idl */,
    19608                                 46DCFDBF1C768A150025B868 /* HTMLTableHeaderCellElement.cpp */,
    19609                                 836BAD1F1BD1CA670037356A /* HTMLTableHeaderCellElement.h */,
    19610                                 83FE5F1F1BD1C55E0038BEEC /* HTMLTableHeaderCellElement.idl */,
    1961119590                                A871DB1F0A150BD600B12A68 /* HTMLTablePartElement.cpp */,
    1961219591                                A871DB1E0A150BD600B12A68 /* HTMLTablePartElement.h */,
     
    2054720526                                BC06ED990BFD660600856E9D /* JSHTMLTableColElement.cpp */,
    2054820527                                BC06ED9A0BFD660600856E9D /* JSHTMLTableColElement.h */,
    20549                                 836CB1F51BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp */,
    20550                                 836CB1F41BD1E41800AF1591 /* JSHTMLTableDataCellElement.h */,
    2055120528                                BC06EE020BFD71AA00856E9D /* JSHTMLTableElement.cpp */,
    2055220529                                BC06EE030BFD71AA00856E9D /* JSHTMLTableElement.h */,
    20553                                 836CB1F31BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp */,
    20554                                 836CB1F21BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h */,
    2055520530                                BC06ED9B0BFD660600856E9D /* JSHTMLTableRowElement.cpp */,
    2055620531                                BC06ED9C0BFD660600856E9D /* JSHTMLTableRowElement.h */,
     
    2658826563                                A871DB2A0A150BD600B12A68 /* HTMLTableCellElement.h in Headers */,
    2658926564                                A871DB2F0A150BD600B12A68 /* HTMLTableColElement.h in Headers */,
    26590                                 836BAD221BD1CA670037356A /* HTMLTableDataCellElement.h in Headers */,
    2659126565                                A871DB270A150BD600B12A68 /* HTMLTableElement.h in Headers */,
    26592                                 836BAD211BD1CA670037356A /* HTMLTableHeaderCellElement.h in Headers */,
    2659326566                                A871DB2C0A150BD600B12A68 /* HTMLTablePartElement.h in Headers */,
    2659426567                                A871DB310A150BD600B12A68 /* HTMLTableRowElement.h in Headers */,
     
    2698826961                                BC06EDE40BFD6D0D00856E9D /* JSHTMLTableCellElement.h in Headers */,
    2698926962                                BC06ED9E0BFD660600856E9D /* JSHTMLTableColElement.h in Headers */,
    26990                                 836CB1F81BD1E41800AF1591 /* JSHTMLTableDataCellElement.h in Headers */,
    2699126963                                BC06EE050BFD71AA00856E9D /* JSHTMLTableElement.h in Headers */,
    26992                                 836CB1F61BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.h in Headers */,
    2699326964                                BC06EDA00BFD660600856E9D /* JSHTMLTableRowElement.h in Headers */,
    2699426965                                BC06ED070BFD5BAE00856E9D /* JSHTMLTableSectionElement.h in Headers */,
     
    3032230293                                A871DB290A150BD600B12A68 /* HTMLTableColElement.cpp in Sources */,
    3032330294                                A871DB280A150BD600B12A68 /* HTMLTableElement.cpp in Sources */,
    30324                                 46DCFDC01C768A150025B868 /* HTMLTableHeaderCellElement.cpp in Sources */,
    3032530295                                A871DB2D0A150BD600B12A68 /* HTMLTablePartElement.cpp in Sources */,
    3032630296                                A871DB300A150BD600B12A68 /* HTMLTableRowElement.cpp in Sources */,
     
    3075530725                                BC06EDE30BFD6D0D00856E9D /* JSHTMLTableCellElement.cpp in Sources */,
    3075630726                                BC06ED9D0BFD660600856E9D /* JSHTMLTableColElement.cpp in Sources */,
    30757                                 836CB1F91BD1E41800AF1591 /* JSHTMLTableDataCellElement.cpp in Sources */,
    3075830727                                BC06EE040BFD71AA00856E9D /* JSHTMLTableElement.cpp in Sources */,
    30759                                 836CB1F71BD1E41800AF1591 /* JSHTMLTableHeaderCellElement.cpp in Sources */,
    3076030728                                BC06ED9F0BFD660600856E9D /* JSHTMLTableRowElement.cpp in Sources */,
    3076130729                                BC06ED060BFD5BAE00856E9D /* JSHTMLTableSectionElement.cpp in Sources */,
  • trunk/Source/WebCore/html/HTMLElementsAllInOne.cpp

    r201084 r202937  
    103103#include "HTMLTableColElement.cpp"
    104104#include "HTMLTableElement.cpp"
    105 #include "HTMLTableHeaderCellElement.cpp"
    106105#include "HTMLTablePartElement.cpp"
    107106#include "HTMLTableRowElement.cpp"
  • trunk/Source/WebCore/html/HTMLTableCellElement.cpp

    r197779 r202937  
    3737using namespace HTMLNames;
    3838
     39Ref<HTMLTableCellElement> HTMLTableCellElement::create(const QualifiedName& tagName, Document& document)
     40{
     41    return adoptRef(*new HTMLTableCellElement(tagName, document));
     42}
     43
    3944HTMLTableCellElement::HTMLTableCellElement(const QualifiedName& tagName, Document& document)
    4045    : HTMLTablePartElement(tagName, document)
     
    155160}
    156161
    157 String HTMLTableCellElement::scope() const
    158 {
    159     return fastGetAttribute(scopeAttr);
     162const AtomicString& HTMLTableCellElement::scope() const
     163{
     164    // https://html.spec.whatwg.org/multipage/tables.html#attr-th-scope
     165    static NeverDestroyed<const AtomicString> row("row", AtomicString::ConstructFromLiteral);
     166    static NeverDestroyed<const AtomicString> col("col", AtomicString::ConstructFromLiteral);
     167    static NeverDestroyed<const AtomicString> rowgroup("rowgroup", AtomicString::ConstructFromLiteral);
     168    static NeverDestroyed<const AtomicString> colgroup("colgroup", AtomicString::ConstructFromLiteral);
     169
     170    const AtomicString& value = fastGetAttribute(HTMLNames::scopeAttr);
     171
     172    // Only conforming for th elements.
     173    if (!hasTagName(thTag))
     174        return value;
     175
     176    if (equalIgnoringASCIICase(value, row))
     177        return row;
     178    if (equalIgnoringASCIICase(value, col))
     179        return col;
     180    if (equalIgnoringASCIICase(value, rowgroup))
     181        return rowgroup;
     182    if (equalIgnoringASCIICase(value, colgroup))
     183        return colgroup;
     184    return emptyAtom;
     185}
     186
     187void HTMLTableCellElement::setScope(const AtomicString& scope)
     188{
     189    setAttributeWithoutSynchronization(scopeAttr, scope);
    160190}
    161191
  • trunk/Source/WebCore/html/HTMLTableCellElement.h

    r197779 r202937  
    3131namespace WebCore {
    3232
    33 class HTMLTableCellElement : public HTMLTablePartElement {
     33class HTMLTableCellElement final : public HTMLTablePartElement {
    3434public:
     35    static Ref<HTMLTableCellElement> create(const QualifiedName&, Document&);
     36
    3537    int cellIndex() const;
    3638    unsigned colSpan() const;
     
    4648    String axis() const;
    4749    String headers() const;
    48     String scope() const;
     50    const AtomicString& scope() const;
     51    void setScope(const AtomicString&);
    4952
    5053    WEBCORE_EXPORT HTMLTableCellElement* cellAbove() const;
    5154
    52 protected:
     55private:
    5356    HTMLTableCellElement(const QualifiedName&, Document&);
    5457
  • trunk/Source/WebCore/html/HTMLTableCellElement.idl

    r197354 r202937  
    4444    [Reflect] attribute DOMString width;
    4545
    46 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C || defined(LANGUAGE_GOBJECT) && LANGUAGE_GOBJECT
    4746    [Reflect] attribute DOMString abbr;
    48     [Reflect] attribute DOMString scope;
    49 #endif
     47    attribute DOMString scope;
    5048};
    5149
  • trunk/Source/WebCore/html/HTMLTableRowElement.cpp

    r200696 r202937  
    2929#include "GenericCachedHTMLCollection.h"
    3030#include "HTMLNames.h"
    31 #include "HTMLTableDataCellElement.h"
     31#include "HTMLTableCellElement.h"
    3232#include "HTMLTableElement.h"
    3333#include "HTMLTableSectionElement.h"
     
    113113    }
    114114
    115     auto cell = HTMLTableDataCellElement::create(document());
     115    auto cell = HTMLTableCellElement::create(tdTag, document());
    116116    if (index < 0 || index >= numCells)
    117117        appendChild(cell, ec);
  • trunk/Source/WebCore/html/HTMLTagNames.in

    r202091 r202937  
    126126table
    127127tbody interfaceName=HTMLTableSectionElement
    128 td interfaceName=HTMLTableDataCellElement
     128td interfaceName=HTMLTableCellElement
    129129template
    130130textarea interfaceName=HTMLTextAreaElement, constructorNeedsFormElement
    131131tfoot interfaceName=HTMLTableSectionElement
    132 th interfaceName=HTMLTableHeaderCellElement
     132th interfaceName=HTMLTableCellElement
    133133thead interfaceName=HTMLTableSectionElement
    134134time
Note: See TracChangeset for help on using the changeset viewer.