Microdata: Implement PropertyNodeList interface.
https://bugs.webkit.org/show_bug.cgi?id=80269

Reviewed by Ryosuke Niwa.

Source/WebCore: 

Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
returns NodeList object. Made changes so that it will return PropertyNodeList object.

Implemented propertyNodeList.getValues() method. It returns an array of various values. Its
values are obtained from the "itemValue" DOM property of each of the elements represented by
the object, in tree order.

Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist

Tests: fast/dom/MicroData/nameditem-returns-propertynodelist.html
       fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
       fast/dom/MicroData/propertynodelist-getvalues-test.html
       fast/dom/MicroData/propertynodelist-test-add-remove-element.html

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* UseJSC.cmake:
* UseV8.cmake:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/gobject/GNUmakefile.am:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSMicroDataItemValueCustom.cpp: Added.
(WebCore):
(WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
* bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
(WebCore):
(WebCore::toV8): Added toV8 custom code.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
(WebCore):
(WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute): Returns true if owner node has itemref attribute
specified with root type NodeListRootedAtDocumentIfOwnerHasItemrefAttr.
(WebCore::DynamicNodeListCacheBase::invalidateCache):
(WebCore::DynamicNodeList::itemWithName): Update itemrefElements cache if root type is
NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
* dom/DynamicNodeList.h: Added m_hasItemRefElements in DynamicNodeListCacheBase to check if itemRefElmenets cache
is valid.
(WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
(DynamicNodeListCacheBase):
(WebCore::DynamicNodeListCacheBase::isItemRefElementsCacheValid):
(WebCore::DynamicNodeListCacheBase::setItemRefElementsCacheValid):
(WebCore::DynamicNodeListCacheBase::rootType): Returns cached root type.
(WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Invalidate NodeListCache on itemref
attribute change.
* dom/Node.cpp:
(WebCore::Node::propertyNodeList):
* dom/Node.h:
(WebCore):
(Node):
* dom/PropertyNodeList.cpp: Added.
(WebCore):
(WebCore::PropertyNodeList::PropertyNodeList):
(WebCore::PropertyNodeList::~PropertyNodeList):
(WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
item.
(WebCore::PropertyNodeList::updateRefElements):
(WebCore::PropertyNodeList::nodeMatches):
(WebCore::PropertyNodeList::getValues): Returns PropertyValueArray whose values are obtained from the
itemValue DOM property of each of the elements represented by the object, in tree order.
* dom/PropertyNodeList.h: Added.
(WebCore):
(PropertyNodeList):
(WebCore::PropertyNodeList::create):
* dom/PropertyNodeList.idl: Added.
* html/HTMLCollection.cpp:
(WebCore::DynamicNodeListCacheBase::itemCommon): Update itemrefElements cache if its a NodeListCollectionType with
root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::properties):
(WebCore):
(WebCore::HTMLElement::getItemRefElements): Returns the ItemRefElements list of given element. Added this
method to share the code between HTMLPropertiesCollection and PropertyNodeList to update itemRefElements.
* html/HTMLElement.h:
(HTMLElement):
* html/HTMLPropertiesCollection.cpp:
(WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::updateRefElements):
(WebCore::HTMLPropertiesCollection::updateNameCache):
(WebCore::HTMLPropertiesCollection::namedItem): Return PropertyNodeList object instead of NodeList.
(WebCore::HTMLPropertiesCollection::hasNamedItem): Return true if it finds an item with given
name in the properties collection.
* html/HTMLPropertiesCollection.h: Removed m_hasItemRefElements member variable, now DynamicNodeListCacheBase
has isItemRefElementsCacheValid. Also removed m_hasPropertyNameCache, as DynamicNodeListCacheBase already has
hasNameCache() and setHasNameCache().
(WebCore):
(HTMLPropertiesCollection):
(WebCore::HTMLPropertiesCollection::invalidateCache):
(WebCore::HTMLPropertiesCollection::updatePropertyCache):
* html/HTMLPropertiesCollection.idl:
* html/MicroDataItemValue.idl: Added.
* page/DOMWindow.idl:

LayoutTests: 

Added test cases for PropertyNodeList interface and PropertyNodeList.getValues() method.
Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist

* fast/dom/MicroData/nameditem-returns-propertynodelist-expected.txt: Added.
* fast/dom/MicroData/nameditem-returns-propertynodelist.html: Added.
* fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt: Added.
* fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html: Added.
* fast/dom/MicroData/propertynodelist-getvalues-test-expected.txt: Added.
* fast/dom/MicroData/propertynodelist-getvalues-test.html: Added.
* fast/dom/MicroData/propertynodelist-test-add-remove-element-expected.txt: Added.
* fast/dom/MicroData/propertynodelist-test-add-remove-element.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Fix conversion from GregorianDateTime to QTime
https://bugs.webkit.org/show_bug.cgi?id=92068

Reviewed by Simon Hausmann.

* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
* bridge/qt/qt_runtime_qt4.cpp:
(JSC::Bindings::convertValueToQVariant):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123435 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening. Skipped a test because of a missing feature.

Patch by János Badics <jbadics@inf.u-szeged.hu> on 2012-07-24

* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreview gardening.

Patch by Szilard Ledan <szledan@inf.u-szeged.hu> on 2012-07-24

* platform/qt/Skipped:

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