Changeset 101144 in webkit


Ignore:
Timestamp:
Nov 24, 2011 12:03:01 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Microdata: Support for properties attribute.
https://bugs.webkit.org/show_bug.cgi?id=71050

Patch by Arko Saha <arko@motorola.com> on 2011-11-24
Reviewed by Adam Barth.

Source/WebCore:

The properties attribute returns an HTMLPropertiesCollection object with all the element's
properties. Otherwise, an empty HTMLPropertiesCollection object.

Tests: fast/dom/MicroData/itemref-refers-first-element-with-given-id.html

fast/dom/MicroData/names-property-must-be-correct.html
fast/dom/MicroData/names-property-test.html
fast/dom/MicroData/properties-collection-add-remove-itemref.html
fast/dom/MicroData/properties-collection-add-remove-property.html
fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html
fast/dom/MicroData/properties-collection-must-be-correct.html
fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html
fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
fast/dom/MicroData/properties-collection-test.html

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/gobject/GNUmakefile.am:
  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::toJS):

  • dom/MicroDataItemList.cpp:
  • dom/Node.cpp:

(WebCore::Node::itemProp):
(WebCore::Node::setItemProp):
(WebCore::Node::itemRef):
(WebCore::Node::setItemRef):
(WebCore::Node::itemType):
(WebCore::Node::setItemType):
(WebCore::Node::properties):

  • dom/Node.h:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::itemProp):
(WebCore::NodeRareData::setItemProp):
(WebCore::NodeRareData::itemRef):
(WebCore::NodeRareData::setItemRef):
(WebCore::NodeRareData::itemType):
(WebCore::NodeRareData::setItemType):
(WebCore::NodeRareData::properties):

  • html/CollectionType.h:
  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::itemAfter):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setItemValueText):

  • html/HTMLElement.h:
  • html/HTMLElement.idl:
  • html/HTMLPropertiesCollection.cpp: Added.

(WebCore::compareTreeOrder):
(WebCore::HTMLPropertiesCollection::create):
(WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::~HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::findPropetiesOfAnItem): Finds the properties of an item.
(WebCore::HTMLPropertiesCollection::length): Returns the number of elements in the properties collection.
(WebCore::HTMLPropertiesCollection::item): Returns the element with index 'index' from the collection. The items are sorted in tree order.
(WebCore::HTMLPropertiesCollection::names): Returns a DOMStringList with the property names of the elements in the collection with the order preserved but with duplicates removed.

  • html/HTMLPropertiesCollection.h: Added.
  • html/HTMLPropertiesCollection.idl: Added.
  • page/DOMWindow.idl:

LayoutTests:

Added test for html properties collections.

  • fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt: Added.
  • fast/dom/MicroData/itemref-refers-first-element-with-given-id.html: Added.
  • fast/dom/MicroData/names-property-must-be-correct-expected.txt: Added.
  • fast/dom/MicroData/names-property-must-be-correct.html: Added.
  • fast/dom/MicroData/names-property-test-expected.txt: Added.
  • fast/dom/MicroData/names-property-test.html: Added.
  • fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-add-remove-itemref.html: Added.
  • fast/dom/MicroData/properties-collection-add-remove-property-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-add-remove-property.html: Added.
  • fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html: Added.
  • fast/dom/MicroData/properties-collection-must-be-correct-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-must-be-correct.html: Added.
  • fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html: Added.
  • fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html: Added.
  • fast/dom/MicroData/properties-collection-test-expected.txt: Added.
  • fast/dom/MicroData/properties-collection-test.html: Added.
Location:
trunk
Files:
23 added
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r101142 r101144  
     12011-11-24  Arko Saha  <arko@motorola.com>
     2
     3        Microdata: Support for properties attribute.
     4        https://bugs.webkit.org/show_bug.cgi?id=71050
     5
     6        Reviewed by Adam Barth.
     7
     8        Added test for html properties collections.
     9
     10        * fast/dom/MicroData/itemref-refers-first-element-with-given-id-expected.txt: Added.
     11        * fast/dom/MicroData/itemref-refers-first-element-with-given-id.html: Added.
     12        * fast/dom/MicroData/names-property-must-be-correct-expected.txt: Added.
     13        * fast/dom/MicroData/names-property-must-be-correct.html: Added.
     14        * fast/dom/MicroData/names-property-test-expected.txt: Added.
     15        * fast/dom/MicroData/names-property-test.html: Added.
     16        * fast/dom/MicroData/properties-collection-add-remove-itemref-expected.txt: Added.
     17        * fast/dom/MicroData/properties-collection-add-remove-itemref.html: Added.
     18        * fast/dom/MicroData/properties-collection-add-remove-property-expected.txt: Added.
     19        * fast/dom/MicroData/properties-collection-add-remove-property.html: Added.
     20        * fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr-expected.txt: Added.
     21        * fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html: Added.
     22        * fast/dom/MicroData/properties-collection-must-be-correct-expected.txt: Added.
     23        * fast/dom/MicroData/properties-collection-must-be-correct.html: Added.
     24        * fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items-expected.txt: Added.
     25        * fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html: Added.
     26        * fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref-expected.txt: Added.
     27        * fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html: Added.
     28        * fast/dom/MicroData/properties-collection-test-expected.txt: Added.
     29        * fast/dom/MicroData/properties-collection-test.html: Added.
     30
    1312011-11-24  Joshua Bell  <jsbell@chromium.org>
    232
  • trunk/Source/WebCore/CMakeLists.txt

    r101132 r101144  
    258258    html/HTMLPreElement.idl
    259259    html/HTMLProgressElement.idl
     260    html/HTMLPropertiesCollection.idl
    260261    html/HTMLQuoteElement.idl
    261262    html/HTMLScriptElement.idl
     
    770771    html/HTMLPreElement.cpp
    771772    html/HTMLProgressElement.cpp
     773    html/HTMLPropertiesCollection.cpp
    772774    html/HTMLQuoteElement.cpp
    773775    html/HTMLScriptElement.cpp
  • trunk/Source/WebCore/ChangeLog

    r101142 r101144  
     12011-11-24  Arko Saha  <arko@motorola.com>
     2
     3        Microdata: Support for properties attribute.
     4        https://bugs.webkit.org/show_bug.cgi?id=71050
     5
     6        Reviewed by Adam Barth.
     7
     8        The properties attribute returns an HTMLPropertiesCollection object with all the element's
     9        properties. Otherwise, an empty HTMLPropertiesCollection object.
     10
     11        Tests: fast/dom/MicroData/itemref-refers-first-element-with-given-id.html
     12               fast/dom/MicroData/names-property-must-be-correct.html
     13               fast/dom/MicroData/names-property-test.html
     14               fast/dom/MicroData/properties-collection-add-remove-itemref.html
     15               fast/dom/MicroData/properties-collection-add-remove-property.html
     16               fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html
     17               fast/dom/MicroData/properties-collection-must-be-correct.html
     18               fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html
     19               fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
     20               fast/dom/MicroData/properties-collection-test.html
     21
     22        * CMakeLists.txt:
     23        * DerivedSources.cpp:
     24        * DerivedSources.make:
     25        * DerivedSources.pri:
     26        * GNUmakefile.list.am:
     27        * Target.pri:
     28        * WebCore.gypi:
     29        * WebCore.vcproj/WebCore.vcproj:
     30        * WebCore.xcodeproj/project.pbxproj:
     31        * bindings/gobject/GNUmakefile.am:
     32        * bindings/js/JSHTMLCollectionCustom.cpp:
     33        (WebCore::toJS):
     34        * dom/MicroDataItemList.cpp:
     35        * dom/Node.cpp:
     36        (WebCore::Node::itemProp):
     37        (WebCore::Node::setItemProp):
     38        (WebCore::Node::itemRef):
     39        (WebCore::Node::setItemRef):
     40        (WebCore::Node::itemType):
     41        (WebCore::Node::setItemType):
     42        (WebCore::Node::properties):
     43        * dom/Node.h:
     44        * dom/NodeRareData.h:
     45        (WebCore::NodeRareData::itemProp):
     46        (WebCore::NodeRareData::setItemProp):
     47        (WebCore::NodeRareData::itemRef):
     48        (WebCore::NodeRareData::setItemRef):
     49        (WebCore::NodeRareData::itemType):
     50        (WebCore::NodeRareData::setItemType):
     51        (WebCore::NodeRareData::properties):
     52        * html/CollectionType.h:
     53        * html/HTMLCollection.cpp:
     54        (WebCore::HTMLCollection::itemAfter):
     55        * html/HTMLElement.cpp:
     56        (WebCore::HTMLElement::setItemValueText):
     57        * html/HTMLElement.h:
     58        * html/HTMLElement.idl:
     59        * html/HTMLPropertiesCollection.cpp: Added.
     60        (WebCore::compareTreeOrder):
     61        (WebCore::HTMLPropertiesCollection::create):
     62        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
     63        (WebCore::HTMLPropertiesCollection::~HTMLPropertiesCollection):
     64        (WebCore::HTMLPropertiesCollection::findPropetiesOfAnItem): Finds the properties of an item.
     65        (WebCore::HTMLPropertiesCollection::length): Returns the number of elements in the properties collection.
     66        (WebCore::HTMLPropertiesCollection::item): Returns the element with index 'index' from the collection. The items are sorted in tree order.
     67        (WebCore::HTMLPropertiesCollection::names): Returns a DOMStringList with the property names of the elements in the collection with the order preserved but with duplicates removed.
     68        * html/HTMLPropertiesCollection.h: Added.
     69        * html/HTMLPropertiesCollection.idl: Added.
     70        * page/DOMWindow.idl:
     71
    1722011-11-24  Joshua Bell  <jsbell@chromium.org>
    273
  • trunk/Source/WebCore/DerivedSources.cpp

    r100159 r101144  
    136136#include "JSHistory.cpp"
    137137#include "JSHTMLAllCollection.cpp"
     138#include "JSHTMLPropertiesCollection.cpp"
    138139#include "JSHTMLAnchorElement.cpp"
    139140#include "JSHTMLAppletElement.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r100159 r101144  
    180180    Geoposition \
    181181    HTMLAllCollection \
     182    HTMLPropertiesCollection \
    182183    HTMLAnchorElement \
    183184    HTMLAppletElement \
  • trunk/Source/WebCore/DerivedSources.pri

    r101133 r101144  
    296296    html/HTMLPreElement.idl \
    297297    html/HTMLProgressElement.idl \
     298    html/HTMLPropertiesCollection.idl \
    298299    html/HTMLQuoteElement.idl \
    299300    html/HTMLScriptElement.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r101138 r101144  
    304304        DerivedSources/WebCore/JSHTMLProgressElement.cpp \
    305305        DerivedSources/WebCore/JSHTMLProgressElement.h \
     306        DerivedSources/WebCore/JSHTMLPropertiesCollection.cpp \
     307        DerivedSources/WebCore/JSHTMLPropertiesCollection.h \
    306308        DerivedSources/WebCore/JSHTMLQuoteElement.cpp \
    307309        DerivedSources/WebCore/JSHTMLQuoteElement.h \
     
    18181820        Source/WebCore/html/HTMLProgressElement.cpp \
    18191821        Source/WebCore/html/HTMLProgressElement.h \
     1822        Source/WebCore/html/HTMLPropertiesCollection.cpp \
     1823        Source/WebCore/html/HTMLPropertiesCollection.h \
    18201824        Source/WebCore/html/HTMLQuoteElement.cpp \
    18211825        Source/WebCore/html/HTMLQuoteElement.h \
  • trunk/Source/WebCore/Target.pri

    r101081 r101144  
    761761    html/HTMLPreElement.cpp \
    762762    html/HTMLProgressElement.cpp \
     763    html/HTMLPropertiesCollection.cpp \
    763764    html/HTMLQuoteElement.cpp \
    764765    html/HTMLScriptElement.cpp \
     
    18381839    html/HTMLPreElement.h \
    18391840    html/HTMLProgressElement.h \
     1841    html/HTMLPropertiesCollection.h \
    18401842    html/HTMLQuoteElement.h \
    18411843    html/HTMLScriptElement.h \
  • trunk/Source/WebCore/WebCore.gypi

    r101081 r101144  
    13161316            'html/HTMLPreElement.idl',
    13171317            'html/HTMLProgressElement.idl',
     1318            'html/HTMLPropertiesCollection.idl',
    13181319            'html/HTMLQuoteElement.idl',
    13191320            'html/HTMLScriptElement.idl',
     
    55605561            'html/HTMLProgressElement.cpp',
    55615562            'html/HTMLProgressElement.h',
     5563            'html/HTMLPropertiesCollection.cpp',
     5564            'html/HTMLPropertiesCollection.h',
    55625565            'html/HTMLQuoteElement.cpp',
    55635566            'html/HTMLQuoteElement.h',
     
    74927495            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLProgressElement.cpp',
    74937496            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLProgressElement.h',
     7497            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLPropertiesCollection.cpp',
     7498            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLPropertiesCollection.h',
    74947499            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLQuoteElement.cpp',
    74957500            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSHTMLQuoteElement.h',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r101081 r101144  
    85998599                        </File>
    86008600                        <File
     8601                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSHTMLPropertiesCollection.cpp"
     8602                                >
     8603                                <FileConfiguration
     8604                                        Name="Debug|Win32"
     8605                                        ExcludedFromBuild="true"
     8606                                        >
     8607                                        <Tool
     8608                                                Name="VCCLCompilerTool"
     8609                                        />
     8610                                </FileConfiguration>
     8611                                <FileConfiguration
     8612                                        Name="Release|Win32"
     8613                                        ExcludedFromBuild="true"
     8614                                        >
     8615                                        <Tool
     8616                                                Name="VCCLCompilerTool"
     8617                                        />
     8618                                </FileConfiguration>
     8619                                <FileConfiguration
     8620                                        Name="Debug_Cairo_CFLite|Win32"
     8621                                        ExcludedFromBuild="true"
     8622                                        >
     8623                                        <Tool
     8624                                                Name="VCCLCompilerTool"
     8625                                        />
     8626                                </FileConfiguration>
     8627                                <FileConfiguration
     8628                                        Name="Release_Cairo_CFLite|Win32"
     8629                                        ExcludedFromBuild="true"
     8630                                        >
     8631                                        <Tool
     8632                                                Name="VCCLCompilerTool"
     8633                                        />
     8634                                </FileConfiguration>
     8635                                <FileConfiguration
     8636                                        Name="Debug_All|Win32"
     8637                                        ExcludedFromBuild="true"
     8638                                        >
     8639                                        <Tool
     8640                                                Name="VCCLCompilerTool"
     8641                                        />
     8642                                </FileConfiguration>
     8643                                <FileConfiguration
     8644                                        Name="Production|Win32"
     8645                                        ExcludedFromBuild="true"
     8646                                        >
     8647                                        <Tool
     8648                                                Name="VCCLCompilerTool"
     8649                                        />
     8650                                </FileConfiguration>
     8651                        </File>
     8652                        <File
     8653                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSHTMLPropertiesCollection.h"
     8654                                >
     8655                        </File>
     8656                        <File
    86018657                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSHTMLQuoteElement.cpp"
    86028658                                >
     
    5655556611                        </File>
    5655656612                        <File
     56613                                RelativePath="..\html\HTMLPropertiesCollection.cpp"
     56614                                >
     56615                        </File>
     56616                        <File
     56617                                RelativePath="..\html\HTMLPropertiesCollection.h"
     56618                                >
     56619                        </File>
     56620                        <File
    5655756621                                RelativePath="..\html\HTMLQuoteElement.cpp"
    5655856622                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r101081 r101144  
    6767                00D0464A13C4D14500326FCC /* XMLCharacterReferenceParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00D0464813C4D14500326FCC /* XMLCharacterReferenceParser.cpp */; };
    6868                00D0464B13C4D14500326FCC /* XMLCharacterReferenceParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 00D0464913C4D14500326FCC /* XMLCharacterReferenceParser.h */; };
     69                033A6A7C147E07D200509B36 /* HTMLPropertiesCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 033A6A7B147E07D200509B36 /* HTMLPropertiesCollection.h */; };
     70                033A6A7E147E07E700509B36 /* HTMLPropertiesCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 033A6A7D147E07E700509B36 /* HTMLPropertiesCollection.cpp */; };
     71                033A6A81147E088600509B36 /* JSHTMLPropertiesCollection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 033A6A80147E088600509B36 /* JSHTMLPropertiesCollection.cpp */; };
     72                033A6A83147E08A600509B36 /* JSHTMLPropertiesCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 033A6A82147E08A600509B36 /* JSHTMLPropertiesCollection.h */; };
    6973                052BFCE9128ABF1500FD338D /* GeolocationClientMock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 052BFCE8128ABF1500FD338D /* GeolocationClientMock.cpp */; };
    7074                052BFCEB128ABF2100FD338D /* GeolocationClientMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 052BFCEA128ABF2100FD338D /* GeolocationClientMock.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    71057109                00D0464813C4D14500326FCC /* XMLCharacterReferenceParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XMLCharacterReferenceParser.cpp; sourceTree = "<group>"; };
    71067110                00D0464913C4D14500326FCC /* XMLCharacterReferenceParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMLCharacterReferenceParser.h; sourceTree = "<group>"; };
     7111                033A6A7B147E07D200509B36 /* HTMLPropertiesCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLPropertiesCollection.h; sourceTree = "<group>"; };
     7112                033A6A7D147E07E700509B36 /* HTMLPropertiesCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLPropertiesCollection.cpp; sourceTree = "<group>"; };
     7113                033A6A7F147E07F900509B36 /* HTMLPropertiesCollection.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLPropertiesCollection.idl; sourceTree = "<group>"; };
     7114                033A6A80147E088600509B36 /* JSHTMLPropertiesCollection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLPropertiesCollection.cpp; sourceTree = "<group>"; };
     7115                033A6A82147E08A600509B36 /* JSHTMLPropertiesCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLPropertiesCollection.h; sourceTree = "<group>"; };
    71077116                052BFCE8128ABF1500FD338D /* GeolocationClientMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GeolocationClientMock.cpp; path = mock/GeolocationClientMock.cpp; sourceTree = "<group>"; };
    71087117                052BFCEA128ABF2100FD338D /* GeolocationClientMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GeolocationClientMock.h; path = mock/GeolocationClientMock.h; sourceTree = "<group>"; };
     
    1731517324                                A43BF5971149290A00C643CA /* HTMLProgressElement.h */,
    1731617325                                A4226EA51163D84D008B8397 /* HTMLProgressElement.idl */,
     17326                                033A6A7B147E07D200509B36 /* HTMLPropertiesCollection.h */,
     17327                                033A6A7D147E07E700509B36 /* HTMLPropertiesCollection.cpp */,
     17328                                033A6A7F147E07F900509B36 /* HTMLPropertiesCollection.idl */,
    1731717329                                A8CFF79B0A156978000A4234 /* HTMLQuoteElement.cpp */,
    1731817330                                A8CFF7990A156978000A4234 /* HTMLQuoteElement.h */,
     
    1783117843                                A4226E591163D667008B8397 /* JSHTMLProgressElement.cpp */,
    1783217844                                A4226E5B1163D695008B8397 /* JSHTMLProgressElement.h */,
     17845                                033A6A80147E088600509B36 /* JSHTMLPropertiesCollection.cpp */,
     17846                                033A6A82147E08A600509B36 /* JSHTMLPropertiesCollection.h */,
    1783317847                                1AE2AEC30A1D297B00B42B25 /* JSHTMLQuoteElement.cpp */,
    1783417848                                1AE2AEC40A1D297B00B42B25 /* JSHTMLQuoteElement.h */,
     
    2475624770                                F3820897147D35F90010BC06 /* WorkerConsoleAgent.h in Headers */,
    2475724771                                F3820899147D35F90010BC06 /* WorkerRuntimeAgent.h in Headers */,
     24772                                033A6A7C147E07D200509B36 /* HTMLPropertiesCollection.h in Headers */,
     24773                                033A6A83147E08A600509B36 /* JSHTMLPropertiesCollection.h in Headers */,
    2475824774                        );
    2475924775                        runOnlyForDeploymentPostprocessing = 0;
     
    2763427650                                F3820896147D35F90010BC06 /* WorkerConsoleAgent.cpp in Sources */,
    2763527651                                F3820898147D35F90010BC06 /* WorkerRuntimeAgent.cpp in Sources */,
     27652                                033A6A7E147E07E700509B36 /* HTMLPropertiesCollection.cpp in Sources */,
     27653                                033A6A81147E088600509B36 /* JSHTMLPropertiesCollection.cpp in Sources */,
    2763627654                        );
    2763727655                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/gobject/GNUmakefile.am

    r99984 r101144  
    167167        DerivedSources/webkit/WebKitDOMHTMLPreElement.cpp \
    168168        DerivedSources/webkit/WebKitDOMHTMLPreElementPrivate.h \
     169        DerivedSources/webkit/WebKitDOMHTMLPropertiesCollection.cpp \
     170        DerivedSources/webkit/WebKitDOMHTMLPropertiesCollectionPrivate.h \
    169171        DerivedSources/webkit/WebKitDOMHTMLQuoteElement.cpp \
    170172        DerivedSources/webkit/WebKitDOMHTMLQuoteElementPrivate.h \
     
    344346        DerivedSources/webkit/WebKitDOMHTMLParamElement.h \
    345347        DerivedSources/webkit/WebKitDOMHTMLPreElement.h \
     348        DerivedSources/webkit/WebKitDOMHTMLPropertiesCollection.h \
    346349        DerivedSources/webkit/WebKitDOMHTMLQuoteElement.h \
    347350        DerivedSources/webkit/WebKitDOMHTMLScriptElement.h \
  • trunk/Source/WebCore/bindings/js/JSHTMLCollectionCustom.cpp

    r95203 r101144  
    3333#include <wtf/Vector.h>
    3434#include <wtf/text/AtomicString.h>
     35
     36#if ENABLE(MICRODATA)
     37#include "HTMLPropertiesCollection.h"
     38#include "JSHTMLPropertiesCollection.h"
     39#endif
    3540
    3641using namespace JSC;
     
    98103            wrapper = CREATE_DOM_WRAPPER(exec, globalObject, HTMLAllCollection, collection);
    99104            break;
     105#if ENABLE(MICRODATA)
     106        case ItemProperties:
     107            wrapper = CREATE_DOM_WRAPPER(exec, globalObject, HTMLPropertiesCollection, collection);
     108            break;
     109#endif
    100110        default:
    101111            wrapper = CREATE_DOM_WRAPPER(exec, globalObject, HTMLCollection, collection);
  • trunk/Source/WebCore/dom/MicroDataItemList.cpp

    r98353 r101144  
    2929#include "MicroDataItemList.h"
    3030
     31#include "DOMSettableTokenList.h"
    3132#include "Document.h"
    3233#include "HTMLElement.h"
  • trunk/Source/WebCore/dom/Node.cpp

    r99992 r101144  
    4444#include "ContextMenuController.h"
    4545#include "DOMImplementation.h"
     46#include "DOMSettableTokenList.h"
    4647#include "Document.h"
    4748#include "DocumentType.h"
     
    113114#if USE(JSC)
    114115#include <runtime/JSGlobalData.h>
     116#endif
     117
     118#if ENABLE(MICRODATA)
     119#include "HTMLPropertiesCollection.h"
    115120#endif
    116121
     
    29983003}
    29993004
     3005#if ENABLE(MICRODATA)
     3006DOMSettableTokenList* Node::itemProp()
     3007{
     3008    return ensureRareData()->itemProp();
     3009}
     3010
     3011void Node::setItemProp(const String& value)
     3012{
     3013    ensureRareData()->setItemProp(value);
     3014}
     3015
     3016DOMSettableTokenList* Node::itemRef()
     3017{
     3018    return ensureRareData()->itemRef();
     3019}
     3020
     3021void Node::setItemRef(const String& value)
     3022{
     3023    ensureRareData()->setItemRef(value);
     3024}
     3025
     3026DOMSettableTokenList* Node::itemType()
     3027{
     3028    return ensureRareData()->itemType();
     3029}
     3030
     3031void Node::setItemType(const String& value)
     3032{
     3033    ensureRareData()->setItemType(value);
     3034}
     3035
     3036HTMLPropertiesCollection* Node::properties()
     3037{
     3038    return ensureRareData()->properties(this);
     3039}
     3040#endif
     3041
    30003042} // namespace WebCore
    30013043
  • trunk/Source/WebCore/dom/Node.h

    r100307 r101144  
    4949class ClassNodeList;
    5050class ContainerNode;
     51class DOMSettableTokenList;
    5152class Document;
    5253class DynamicNodeList;
     
    8384class TreeScope;
    8485
     86#if ENABLE(MICRODATA)
     87class HTMLPropertiesCollection;
     88#endif
     89
    8590typedef int ExceptionCode;
    8691
     
    589594#if ENABLE(MICRODATA)
    590595    void itemTypeAttributeChanged();
     596
     597    DOMSettableTokenList* itemProp();
     598    DOMSettableTokenList* itemRef();
     599    DOMSettableTokenList* itemType();
     600    HTMLPropertiesCollection* properties();
    591601#endif
    592602
     
    759769    void clearHasRareSVGData() { clearFlag(HasSVGRareDataFlag); }
    760770#endif
     771
     772#if ENABLE(MICRODATA)
     773    void setItemProp(const String&);
     774    void setItemRef(const String&);
     775    void setItemType(const String&);
     776#endif
    761777};
    762778
  • trunk/Source/WebCore/dom/NodeRareData.h

    r99338 r101144  
    2424
    2525#include "ClassNodeList.h"
     26#include "DOMSettableTokenList.h"
    2627#include "DynamicNodeList.h"
    27 
    28 #if ENABLE(MICRODATA)
    29 #include "MicroDataItemList.h"
    30 #endif
    31 
    3228#include "MutationObserverRegistration.h"
    3329#include "NameNodeList.h"
     
    4137#include <wtf/text/StringHash.h>
    4238
     39#if ENABLE(MICRODATA)
     40#include "HTMLPropertiesCollection.h"
     41#include "MicroDataItemList.h"
     42#endif
     43
    4344namespace WebCore {
    4445
     
    158159#endif
    159160
     161#if ENABLE(MICRODATA)
     162    DOMSettableTokenList* itemProp() const
     163    {
     164        if (!m_itemProp)
     165            m_itemProp = DOMSettableTokenList::create();
     166
     167        return m_itemProp.get();
     168    }
     169
     170    void setItemProp(const String& value)
     171    {
     172        if (!m_itemProp)
     173            m_itemProp = DOMSettableTokenList::create();
     174
     175        m_itemProp->setValue(value);
     176    }
     177
     178    DOMSettableTokenList* itemRef() const
     179    {
     180        if (!m_itemRef)
     181            m_itemRef = DOMSettableTokenList::create();
     182
     183        return m_itemRef.get();
     184    }
     185
     186    void setItemRef(const String& value)
     187    {
     188        if (!m_itemRef)
     189            m_itemRef = DOMSettableTokenList::create();
     190
     191        m_itemRef->setValue(value);
     192    }
     193
     194    DOMSettableTokenList* itemType() const
     195    {
     196        if (!m_itemType)
     197            m_itemType = DOMSettableTokenList::create();
     198
     199        return m_itemType.get();
     200    }
     201
     202    void setItemType(const String& value)
     203    {
     204        if (!m_itemType)
     205            m_itemType = DOMSettableTokenList::create();
     206
     207        m_itemType->setValue(value);
     208    }
     209
     210    HTMLPropertiesCollection* properties(Node* node)
     211    {
     212        if (!m_properties)
     213            m_properties = HTMLPropertiesCollection::create(node);
     214
     215        return m_properties.get();
     216    }
     217#endif
     218
    160219    bool isFocused() const { return m_isFocused; }
    161220    void setFocused(bool focused) { m_isFocused = focused; }
     
    179238    OwnPtr<HashSet<MutationObserverRegistration*> > m_transientMutationObserverRegistry;
    180239#endif
     240
     241#if ENABLE(MICRODATA)
     242    mutable RefPtr<DOMSettableTokenList> m_itemProp;
     243    mutable RefPtr<DOMSettableTokenList> m_itemRef;
     244    mutable RefPtr<DOMSettableTokenList> m_itemType;
     245    mutable RefPtr<HTMLPropertiesCollection> m_properties;
     246#endif
    181247};
    182248
  • trunk/Source/WebCore/html/CollectionType.h

    r99995 r101144  
    5555    MapAreas,
    5656
     57#if ENABLE(MICRODATA)
     58    ItemProperties, // Microdata item properties in the document
     59#endif
     60
    5761    OtherCollection
    5862};
  • trunk/Source/WebCore/html/HTMLCollection.cpp

    r100090 r101144  
    106106        case DataListOptions:
    107107        case WindowNamedItems:
     108#if ENABLE(MICRODATA)
     109        case ItemProperties:
     110#endif
    108111            break;
    109112        case NodeChildren:
     
    190193            case NodeChildren:
    191194                return e;
     195#if ENABLE(MICRODATA)
     196            case ItemProperties:
     197                if (e->isHTMLElement() && e->hasAttribute(itempropAttr))
     198                    return e;
     199                break;
     200#endif
    192201            case DocumentNamedItems:
    193202            case OtherCollection:
  • trunk/Source/WebCore/html/HTMLElement.cpp

    r101066 r101144  
    998998
    999999#if ENABLE(MICRODATA)
    1000 PassRefPtr<DOMSettableTokenList> HTMLElement::itemProp() const
    1001 {
    1002     if (!m_itemProp)
    1003         m_itemProp = DOMSettableTokenList::create();
    1004 
    1005     return m_itemProp;
    1006 }
    1007 
    1008 void HTMLElement::setItemProp(const String& value)
    1009 {
    1010     if (!m_itemProp)
    1011         m_itemProp = DOMSettableTokenList::create();
    1012 
    1013     m_itemProp->setValue(value);
    1014 }
    1015 
    1016 PassRefPtr<DOMSettableTokenList> HTMLElement::itemRef() const
    1017 {
    1018     if (!m_itemRef)
    1019         m_itemRef = DOMSettableTokenList::create();
    1020 
    1021     return m_itemRef;
    1022 }
    1023 
    1024 void HTMLElement::setItemRef(const String& value)
    1025 {
    1026     if (!m_itemRef)
    1027         m_itemRef = DOMSettableTokenList::create();
    1028 
    1029     m_itemRef->setValue(value);
    1030 }
    1031 
    10321000void HTMLElement::setItemValue(const String& value, ExceptionCode& ec)
    10331001{
     
    10601028    setTextContent(value, ec);
    10611029}
    1062 
    1063 PassRefPtr<DOMSettableTokenList> HTMLElement::itemType() const
    1064 {
    1065     if (!m_itemType)
    1066         m_itemType = DOMSettableTokenList::create();
    1067 
    1068     return m_itemType;
    1069 }
    1070 
    1071 void HTMLElement::setItemType(const String& value)
    1072 {
    1073     if (!m_itemType)
    1074         m_itemType = DOMSettableTokenList::create();
    1075 
    1076     m_itemType->setValue(value);
    1077 }
    10781030#endif
    10791031
  • trunk/Source/WebCore/html/HTMLElement.h

    r100805 r101144  
    2525
    2626#include "StyledElement.h"
    27 
    28 #if ENABLE(MICRODATA)
    29 #include "DOMSettableTokenList.h"
    30 #endif
    3127
    3228namespace WebCore {
     
    9187
    9288#if ENABLE(MICRODATA)
    93     PassRefPtr<DOMSettableTokenList> itemRef() const;
    94     PassRefPtr<DOMSettableTokenList> itemProp() const;
    95     PassRefPtr<DOMSettableTokenList> itemType() const;
    96 
    9789    void setItemValue(const String&, ExceptionCode&);
    9890    PassRefPtr<MicroDataItemValue> itemValue() const;
     
    129121
    130122#if ENABLE(MICRODATA)
    131     void setItemProp(const String&);
    132     void setItemRef(const String&);
    133     void setItemType(const String&);
    134 
    135123    virtual String itemValueText() const;
    136124    virtual void setItemValueText(const String&, ExceptionCode&);
    137 
    138     mutable RefPtr<DOMSettableTokenList> m_itemProp;
    139     mutable RefPtr<DOMSettableTokenList> m_itemRef;
    140     mutable RefPtr<DOMSettableTokenList> m_itemType;
    141125#endif
    142126};
  • trunk/Source/WebCore/html/HTMLElement.idl

    r100805 r101144  
    7575        readonly attribute [Conditional=MICRODATA] DOMSettableTokenList itemProp;
    7676
     77#if defined(ENABLE_MICRODATA) && ENABLE_MICRODATA
     78        readonly attribute [Conditional=MICRODATA] HTMLPropertiesCollection properties;
     79#endif
     80
    7781#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
    7882#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
  • trunk/Source/WebCore/page/DOMWindow.idl

    r100163 r101144  
    489489        attribute HTMLCollectionConstructor HTMLCollection;
    490490        attribute HTMLAllCollectionConstructor HTMLAllCollection;
     491        attribute [Conditional=MICRODATA] HTMLPropertiesCollectionConstructor HTMLPropertiesCollection;
    491492        attribute HTMLUnknownElementConstructor HTMLUnknownElement;
    492493
Note: See TracChangeset for help on using the changeset viewer.