Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendant...
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 31 Aug 2013 14:12:00 +0000 (14:12 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 31 Aug 2013 14:12:00 +0000 (14:12 +0000)
https://bugs.webkit.org/show_bug.cgi?id=120561

Reviewed by Andreas Kling.

New names are more descriptive and consistent. They also put related iterator files close by in file lists.
The types are always used with auto so longer names don't make them any clumsier to use.

For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
to be included by the clients.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityTable.cpp:
* css/CSSFontFaceSource.cpp:
* dom/ChildIterator.h: Removed.
* dom/DescendantIterator.h: Removed.
* dom/Document.cpp:
* dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.
(WebCore::::ElementChildIterator):
(WebCore::::operator):
(WebCore::::ElementChildConstIterator):
(WebCore::::ElementChildIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementChildConstIteratorAdapter):
(WebCore::elementChildren):
(WebCore::childrenOfType):
* dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.
(WebCore::::ElementDescendantIterator):
(WebCore::::operator):
(WebCore::::ElementDescendantConstIterator):
(WebCore::::ElementDescendantIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementDescendantConstIteratorAdapter):
(WebCore::elementDescendants):
(WebCore::descendantsOfType):
* dom/ElementIterator.h:
* dom/Node.cpp:
* dom/TreeScope.cpp:
* editing/ApplyStyleCommand.cpp:
* editing/markup.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLFieldSetElement.cpp:
* html/HTMLLabelElement.cpp:
* html/HTMLMapElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLObjectElement.cpp:
* loader/PlaceholderDocument.cpp:
* rendering/FilterEffectRenderer.cpp:
* style/StyleResolveTree.cpp:
* svg/SVGElement.cpp:
* svg/SVGSVGElement.cpp:
* svg/animation/SMILTimeContainer.cpp:
* svg/graphics/SVGImage.cpp:

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

32 files changed:
Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.list.am
Source/WebCore/Target.pri
Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/accessibility/AccessibilityNodeObject.cpp
Source/WebCore/accessibility/AccessibilityRenderObject.cpp
Source/WebCore/accessibility/AccessibilityTable.cpp
Source/WebCore/css/CSSFontFaceSource.cpp
Source/WebCore/dom/ChildIterator.h [deleted file]
Source/WebCore/dom/DescendantIterator.h [deleted file]
Source/WebCore/dom/Document.cpp
Source/WebCore/dom/ElementChildIterator.h [new file with mode: 0644]
Source/WebCore/dom/ElementDescendantIterator.h [new file with mode: 0644]
Source/WebCore/dom/ElementIterator.h
Source/WebCore/dom/Node.cpp
Source/WebCore/dom/TreeScope.cpp
Source/WebCore/editing/ApplyStyleCommand.cpp
Source/WebCore/editing/markup.cpp
Source/WebCore/html/HTMLAppletElement.cpp
Source/WebCore/html/HTMLFieldSetElement.cpp
Source/WebCore/html/HTMLLabelElement.cpp
Source/WebCore/html/HTMLMapElement.cpp
Source/WebCore/html/HTMLMediaElement.cpp
Source/WebCore/html/HTMLObjectElement.cpp
Source/WebCore/loader/PlaceholderDocument.cpp
Source/WebCore/rendering/FilterEffectRenderer.cpp
Source/WebCore/style/StyleResolveTree.cpp
Source/WebCore/svg/SVGElement.cpp
Source/WebCore/svg/SVGSVGElement.cpp
Source/WebCore/svg/animation/SMILTimeContainer.cpp
Source/WebCore/svg/graphics/SVGImage.cpp

index d02c8d2..a627426 100644 (file)
@@ -1,3 +1,66 @@
+2013-08-31  Antti Koivisto  <antti@apple.com>
+
+        Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendantIterator
+        https://bugs.webkit.org/show_bug.cgi?id=120561
+
+        Reviewed by Andreas Kling.
+
+        New names are more descriptive and consistent. They also put related iterator files close by in file lists.
+        The types are always used with auto so longer names don't make them any clumsier to use.
+
+        For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
+        to be included by the clients.
+
+        * GNUmakefile.list.am:
+        * Target.pri:
+        * WebCore.vcxproj/WebCore.vcxproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * accessibility/AccessibilityNodeObject.cpp:
+        * accessibility/AccessibilityRenderObject.cpp:
+        * accessibility/AccessibilityTable.cpp:
+        * css/CSSFontFaceSource.cpp:
+        * dom/ChildIterator.h: Removed.
+        * dom/DescendantIterator.h: Removed.
+        * dom/Document.cpp:
+        * dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.
+        (WebCore::::ElementChildIterator):
+        (WebCore::::operator):
+        (WebCore::::ElementChildConstIterator):
+        (WebCore::::ElementChildIteratorAdapter):
+        (WebCore::::begin):
+        (WebCore::::end):
+        (WebCore::::ElementChildConstIteratorAdapter):
+        (WebCore::elementChildren):
+        (WebCore::childrenOfType):
+        * dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.
+        (WebCore::::ElementDescendantIterator):
+        (WebCore::::operator):
+        (WebCore::::ElementDescendantConstIterator):
+        (WebCore::::ElementDescendantIteratorAdapter):
+        (WebCore::::begin):
+        (WebCore::::end):
+        (WebCore::::ElementDescendantConstIteratorAdapter):
+        (WebCore::elementDescendants):
+        (WebCore::descendantsOfType):
+        * dom/ElementIterator.h:
+        * dom/Node.cpp:
+        * dom/TreeScope.cpp:
+        * editing/ApplyStyleCommand.cpp:
+        * editing/markup.cpp:
+        * html/HTMLAppletElement.cpp:
+        * html/HTMLFieldSetElement.cpp:
+        * html/HTMLLabelElement.cpp:
+        * html/HTMLMapElement.cpp:
+        * html/HTMLMediaElement.cpp:
+        * html/HTMLObjectElement.cpp:
+        * loader/PlaceholderDocument.cpp:
+        * rendering/FilterEffectRenderer.cpp:
+        * style/StyleResolveTree.cpp:
+        * svg/SVGElement.cpp:
+        * svg/SVGSVGElement.cpp:
+        * svg/animation/SMILTimeContainer.cpp:
+        * svg/graphics/SVGImage.cpp:
+
 2013-08-31  Andreas Kling  <akling@apple.com>
 
         Don't do document style recalc unless there's a RenderView.
index da5f07e..c4626d9 100644 (file)
@@ -2775,7 +2775,6 @@ webcore_sources += \
        Source/WebCore/dom/CharacterData.h \
        Source/WebCore/dom/CheckedRadioButtons.cpp \
        Source/WebCore/dom/CheckedRadioButtons.h \
-       Source/WebCore/dom/ChildIterator.h \
        Source/WebCore/dom/ChildListMutationScope.cpp \
        Source/WebCore/dom/ChildListMutationScope.h \
        Source/WebCore/dom/ChildNodeList.cpp \
@@ -2820,7 +2819,6 @@ webcore_sources += \
        Source/WebCore/dom/DecodedDataDocumentParser.h \
        Source/WebCore/dom/default/PlatformMessagePortChannel.cpp \
        Source/WebCore/dom/default/PlatformMessagePortChannel.h \
-       Source/WebCore/dom/DescendantIterator.h \
        Source/WebCore/dom/DeviceMotionClient.h \
        Source/WebCore/dom/DeviceMotionController.cpp \
        Source/WebCore/dom/DeviceMotionController.h \
@@ -2871,8 +2869,10 @@ webcore_sources += \
        Source/WebCore/dom/DOMTimeStamp.h \
        Source/WebCore/dom/Element.cpp \
        Source/WebCore/dom/Element.h \
+       Source/WebCore/dom/ElementChildIterator.h \
        Source/WebCore/dom/ElementData.cpp \
        Source/WebCore/dom/ElementData.h \
+       Source/WebCore/dom/ElementDescendantIterator.h \
        Source/WebCore/dom/ElementIterator.h \
        Source/WebCore/dom/ElementIteratorAssertions.h \
        Source/WebCore/dom/ElementRareData.cpp \
index dae14ff..aa4a2c5 100644 (file)
@@ -1574,7 +1574,6 @@ HEADERS += \
     dom/CDATASection.h \
     dom/CharacterData.h \
     dom/CheckedRadioButtons.h \
-    dom/ChildIterator.h \
     dom/ChildNodeList.h \
     dom/ClassNodeList.h \
     dom/ClientRect.h \
@@ -1588,7 +1587,6 @@ HEADERS += \
     dom/ContextFeatures.h \
     dom/CustomEvent.h \
     dom/default/PlatformMessagePortChannel.h \
-    dom/DescendantIterator.h \
     dom/DeviceMotionClient.h \
     dom/DeviceMotionController.h \
     dom/DeviceMotionData.h \
@@ -1612,7 +1610,9 @@ HEADERS += \
     dom/DOMTimeStamp.h \
     dom/DatasetDOMStringMap.h \
     dom/Element.h \
+    dom/ElementChildIterator.h \
     dom/ElementData.h \
+    dom/ElementDescendantIterator.h \
     dom/ElementIterator.h \
     dom/ElementIteratorAssertions.h \
     dom/ElementTraversal.h \
index 2ccb74a..c2e44f8 100644 (file)
     <ClInclude Include="..\dom\CDATASection.h" />
     <ClInclude Include="..\dom\CharacterData.h" />
     <ClInclude Include="..\dom\CheckedRadioButtons.h" />
-    <ClInclude Include="..\dom\ChildIterator.h" />
     <ClInclude Include="..\dom\ChildListMutationScope.h" />
     <ClInclude Include="..\dom\ChildNodeList.h" />
     <ClInclude Include="..\dom\ClassNodeList.h" />
     <ClInclude Include="..\dom\DataTransferItem.h" />
     <ClInclude Include="..\dom\DataTransferItemList.h" />
     <ClInclude Include="..\dom\DecodedDataDocumentParser.h" />
-    <ClInclude Include="..\dom\DescendantIterator.h" />
     <ClInclude Include="..\dom\DeviceMotionClient.h" />
     <ClInclude Include="..\dom\DeviceMotionController.h" />
     <ClInclude Include="..\dom\DeviceMotionData.h" />
     <ClInclude Include="..\dom\DOMStringMap.h" />
     <ClInclude Include="..\dom\DOMTimeStamp.h" />
     <ClInclude Include="..\dom\Element.h" />
+    <ClInclude Include="..\dom\ElementChildIterator.h" />
     <ClInclude Include="..\dom\ElementData.h" />
+    <ClInclude Include="..\dom\ElementDescendantIterator.h" />
     <ClInclude Include="..\dom\ElementIterator.h" />
     <ClInclude Include="..\dom\ElementIteratorAssertions.h" />
     <ClInclude Include="..\dom\ElementTraversal.h" />
index b3c10e4..ef31f6f 100644 (file)
                E453901E0EAFCACA003695C8 /* PasteboardIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = E45390190EAFCACA003695C8 /* PasteboardIOS.mm */; };
                E45390460EAFD637003695C8 /* SharedTimerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = E45390350EAFD637003695C8 /* SharedTimerIOS.mm */; };
                E462A4A1113E71BE004A4220 /* IntPointHash.h in Headers */ = {isa = PBXBuildFile; fileRef = E462A4A0113E71BE004A4220 /* IntPointHash.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               E46A2B1C17CA65B9000DBCD8 /* DescendantIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E46A2B1B17CA65B9000DBCD8 /* DescendantIterator.h */; };
-               E46A2B1E17CA76B1000DBCD8 /* ChildIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E46A2B1D17CA76B1000DBCD8 /* ChildIterator.h */; };
+               E46A2B1C17CA65B9000DBCD8 /* ElementDescendantIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E46A2B1B17CA65B9000DBCD8 /* ElementDescendantIterator.h */; };
+               E46A2B1E17CA76B1000DBCD8 /* ElementChildIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = E46A2B1D17CA76B1000DBCD8 /* ElementChildIterator.h */; };
                E47127CA163438A100ED6F5A /* StyleInvalidationAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E47A97CE163059FC005DCD99 /* StyleInvalidationAnalysis.cpp */; };
                E47127CB163438AE00ED6F5A /* StyleInvalidationAnalysis.h in Headers */ = {isa = PBXBuildFile; fileRef = E47A97CF163059FC005DCD99 /* StyleInvalidationAnalysis.h */; };
                E4778B7F115A581A00B5D372 /* JSCustomEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4778B7D115A581A00B5D372 /* JSCustomEvent.cpp */; };
                E45390190EAFCACA003695C8 /* PasteboardIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PasteboardIOS.mm; path = ios/PasteboardIOS.mm; sourceTree = "<group>"; };
                E45390350EAFD637003695C8 /* SharedTimerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SharedTimerIOS.mm; path = ios/SharedTimerIOS.mm; sourceTree = "<group>"; };
                E462A4A0113E71BE004A4220 /* IntPointHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntPointHash.h; sourceTree = "<group>"; };
-               E46A2B1B17CA65B9000DBCD8 /* DescendantIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DescendantIterator.h; sourceTree = "<group>"; };
-               E46A2B1D17CA76B1000DBCD8 /* ChildIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildIterator.h; sourceTree = "<group>"; };
+               E46A2B1B17CA65B9000DBCD8 /* ElementDescendantIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementDescendantIterator.h; sourceTree = "<group>"; };
+               E46A2B1D17CA76B1000DBCD8 /* ElementChildIterator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementChildIterator.h; sourceTree = "<group>"; };
                E4778B7D115A581A00B5D372 /* JSCustomEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomEvent.cpp; sourceTree = "<group>"; };
                E4778B7E115A581A00B5D372 /* JSCustomEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomEvent.h; sourceTree = "<group>"; };
                E47A97CE163059FC005DCD99 /* StyleInvalidationAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleInvalidationAnalysis.cpp; sourceTree = "<group>"; };
                                93EEC1E609C2877700C515D1 /* CharacterData.idl */,
                                93F925420F7EF5B8007E37C9 /* CheckedRadioButtons.cpp */,
                                93F925410F7EF5B8007E37C9 /* CheckedRadioButtons.h */,
-                               E46A2B1D17CA76B1000DBCD8 /* ChildIterator.h */,
                                D619A305144E00BE004BC302 /* ChildListMutationScope.cpp */,
                                D619A306144E00BE004BC302 /* ChildListMutationScope.h */,
                                A818721A0977D3C0005826D9 /* ChildNodeList.cpp */,
                                81AC5AE91316392E0009A7E0 /* DataTransferItemList.idl */,
                                A8C228A011D5722E00D5A7D3 /* DecodedDataDocumentParser.cpp */,
                                A8C2289F11D5722E00D5A7D3 /* DecodedDataDocumentParser.h */,
-                               E46A2B1B17CA65B9000DBCD8 /* DescendantIterator.h */,
                                31FB1A4F120A5D0600DC02A0 /* DeviceMotionClient.h */,
                                31FB1A50120A5D0600DC02A0 /* DeviceMotionController.cpp */,
                                31FB1A51120A5D0600DC02A0 /* DeviceMotionController.h */,
                                A8C4A7F609D563270003AC8D /* Element.cpp */,
                                A8C4A7F509D563270003AC8D /* Element.h */,
                                93EEC1EA09C2877700C515D1 /* Element.idl */,
+                               E46A2B1D17CA76B1000DBCD8 /* ElementChildIterator.h */,
                                B5B7A16F17C1080600E4AA0A /* ElementData.cpp */,
                                B5B7A16E17C1048000E4AA0A /* ElementData.h */,
-                               4FAB48641643A66D00F70C07 /* ElementRareData.cpp */,
-                               637B7ADE0E8767B800E32194 /* ElementRareData.h */,
+                               E46A2B1B17CA65B9000DBCD8 /* ElementDescendantIterator.h */,
                                E4AE7C1517D1BB950009FB31 /* ElementIterator.h */,
                                E401C27417CE53EC00C41A35 /* ElementIteratorAssertions.h */,
+                               4FAB48641643A66D00F70C07 /* ElementRareData.cpp */,
+                               637B7ADE0E8767B800E32194 /* ElementRareData.h */,
                                E4D58EBA17B8F12800CBDCA8 /* ElementTraversal.h */,
                                A8EA7EBA0A1945D000A8EF5F /* Entity.h */,
                                93EEC1EB09C2877700C515D1 /* Entity.idl */,
                                A80E6CE60A1989CA007FB8C5 /* CSSPrimitiveValue.h in Headers */,
                                E1ED8AC30CC49BE000BFC557 /* CSSPrimitiveValueMappings.h in Headers */,
                                A80E6CFF0A1989CA007FB8C5 /* CSSProperty.h in Headers */,
-                               E46A2B1E17CA76B1000DBCD8 /* ChildIterator.h in Headers */,
+                               E46A2B1E17CA76B1000DBCD8 /* ElementChildIterator.h in Headers */,
                                78D02BC6154A18DF00B62D05 /* CSSPropertyAnimation.h in Headers */,
                                656580F409D12B20000E61D7 /* CSSPropertyNames.h in Headers */,
                                82E3D8DF122EA0D1003AE5BC /* CSSPropertySourceData.h in Headers */,
                                371E65CC13661EDC00BEEDB0 /* PageSerializer.h in Headers */,
                                A7197F24175689C4007B9442 /* PageThrottler.h in Headers */,
                                E1284AE110447D4500EAEB52 /* PageTransitionEvent.h in Headers */,
-                               E46A2B1C17CA65B9000DBCD8 /* DescendantIterator.h in Headers */,
+                               E46A2B1C17CA65B9000DBCD8 /* ElementDescendantIterator.h in Headers */,
                                51E1ECC30C91C90400DC255B /* PageURLRecord.h in Headers */,
                                FFD5B97B135CC97800D5E92A /* PageVisibilityState.h in Headers */,
                                9377ABA015DEFEEF0031FD04 /* Pagination.h in Headers */,
index 15cd815..e7dfd9b 100644 (file)
@@ -34,7 +34,7 @@
 #include "AccessibilityListBox.h"
 #include "AccessibilitySpinButton.h"
 #include "AccessibilityTable.h"
-#include "ChildIterator.h"
+#include "ElementIterator.h"
 #include "EventNames.h"
 #include "FloatRect.h"
 #include "Frame.h"
index 4c59f33..2053172 100644 (file)
@@ -37,7 +37,7 @@
 #include "AccessibilityTable.h"
 #include "CachedImage.h"
 #include "Chrome.h"
-#include "DescendantIterator.h"
+#include "ElementIterator.h"
 #include "EventNames.h"
 #include "FloatRect.h"
 #include "Frame.h"
index b35aeb0..379dcb6 100644 (file)
@@ -34,7 +34,7 @@
 #include "AccessibilityTableColumn.h"
 #include "AccessibilityTableHeaderContainer.h"
 #include "AccessibilityTableRow.h"
-#include "ChildIterator.h"
+#include "ElementIterator.h"
 #include "HTMLNames.h"
 #include "HTMLTableCaptionElement.h"
 #include "HTMLTableCellElement.h"
index a627e56..0d82a55 100644 (file)
@@ -30,8 +30,8 @@
 #include "CSSFontSelector.h"
 #include "CachedFont.h"
 #include "CachedResourceLoader.h"
-#include "ChildIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "FontCache.h"
 #include "FontDescription.h"
 #include "SimpleFontData.h"
diff --git a/Source/WebCore/dom/ChildIterator.h b/Source/WebCore/dom/ChildIterator.h
deleted file mode 100644 (file)
index afd5016..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#ifndef ChildIterator_h
-#define ChildIterator_h
-
-#include "ElementIterator.h"
-
-namespace WebCore {
-
-template <typename ElementType>
-class ChildIterator : public ElementIterator<ElementType> {
-public:
-    ChildIterator(const ContainerNode* root);
-    ChildIterator(const ContainerNode* root, ElementType* current);
-    ChildIterator& operator++();
-};
-
-template <typename ElementType>
-class ChildConstIterator : public ElementConstIterator<ElementType> {
-public:
-    ChildConstIterator(const ContainerNode* root);
-    ChildConstIterator(const ContainerNode* root, const ElementType* current);
-    ChildConstIterator& operator++();
-};
-
-template <typename ElementType>
-class ChildIteratorAdapter {
-public:
-    ChildIteratorAdapter(ContainerNode* root);
-    ChildIterator<ElementType> begin();
-    ChildIterator<ElementType> end();
-
-private:
-    const ContainerNode* m_root;
-};
-
-template <typename ElementType>
-class ChildConstIteratorAdapter {
-public:
-    ChildConstIteratorAdapter(const ContainerNode* root);
-    ChildConstIterator<ElementType> begin() const;
-    ChildConstIterator<ElementType> end() const;
-
-private:
-    const ContainerNode* m_root;
-};
-
-ChildIteratorAdapter<Element> elementChildren(ContainerNode* root);
-ChildConstIteratorAdapter<Element> elementChildren(const ContainerNode* root);
-template <typename ElementType> ChildIteratorAdapter<ElementType> childrenOfType(ContainerNode* root);
-template <typename ElementType> ChildConstIteratorAdapter<ElementType> childrenOfType(const ContainerNode* root);
-
-// ChildIterator
-
-template <typename ElementType>
-inline ChildIterator<ElementType>::ChildIterator(const ContainerNode* root)
-    : ElementIterator<ElementType>(root)
-{
-}
-
-template <typename ElementType>
-inline ChildIterator<ElementType>::ChildIterator(const ContainerNode* root, ElementType* current)
-    : ElementIterator<ElementType>(root, current)
-{
-}
-
-template <typename ElementType>
-inline ChildIterator<ElementType>& ChildIterator<ElementType>::operator++()
-{
-    return static_cast<ChildIterator<ElementType>&>(ElementIterator<ElementType>::traverseNextSibling());
-}
-
-// ChildConstIterator
-
-template <typename ElementType>
-inline ChildConstIterator<ElementType>::ChildConstIterator(const ContainerNode* root)
-    : ElementConstIterator<ElementType>(root)
-{
-}
-
-template <typename ElementType>
-inline ChildConstIterator<ElementType>::ChildConstIterator(const ContainerNode* root, const ElementType* current)
-    : ElementConstIterator<ElementType>(root, current)
-{
-}
-
-template <typename ElementType>
-inline ChildConstIterator<ElementType>& ChildConstIterator<ElementType>::operator++()
-{
-    return static_cast<ChildConstIterator<ElementType>&>(ElementConstIterator<ElementType>::traverseNextSibling());
-}
-
-// ChildIteratorAdapter
-
-template <typename ElementType>
-inline ChildIteratorAdapter<ElementType>::ChildIteratorAdapter(ContainerNode* root)
-    : m_root(root)
-{
-}
-
-template <typename ElementType>
-inline ChildIterator<ElementType> ChildIteratorAdapter<ElementType>::begin()
-{
-    return ChildIterator<ElementType>(m_root, Traversal<ElementType>::firstChild(m_root));
-}
-
-template <typename ElementType>
-inline ChildIterator<ElementType> ChildIteratorAdapter<ElementType>::end()
-{
-    return ChildIterator<ElementType>(m_root);
-}
-
-// ChildConstIteratorAdapter
-
-template <typename ElementType>
-inline ChildConstIteratorAdapter<ElementType>::ChildConstIteratorAdapter(const ContainerNode* root)
-    : m_root(root)
-{
-}
-
-template <typename ElementType>
-inline ChildConstIterator<ElementType> ChildConstIteratorAdapter<ElementType>::begin() const
-{
-    return ChildConstIterator<ElementType>(m_root, Traversal<ElementType>::firstChild(m_root));
-}
-
-template <typename ElementType>
-inline ChildConstIterator<ElementType> ChildConstIteratorAdapter<ElementType>::end() const
-{
-    return ChildConstIterator<ElementType>(m_root);
-}
-
-// Standalone functions
-
-inline ChildIteratorAdapter<Element> elementChildren(ContainerNode* root)
-{
-    return ChildIteratorAdapter<Element>(root);
-}
-
-template <typename ElementType>
-inline ChildIteratorAdapter<ElementType> childrenOfType(ContainerNode* root)
-{
-    return ChildIteratorAdapter<ElementType>(root);
-}
-
-inline ChildConstIteratorAdapter<Element> elementChildren(const ContainerNode* root)
-{
-    return ChildConstIteratorAdapter<Element>(root);
-}
-
-template <typename ElementType>
-inline ChildConstIteratorAdapter<ElementType> childrenOfType(const ContainerNode* root)
-{
-    return ChildConstIteratorAdapter<ElementType>(root);
-}
-
-}
-
-#endif
diff --git a/Source/WebCore/dom/DescendantIterator.h b/Source/WebCore/dom/DescendantIterator.h
deleted file mode 100644 (file)
index 70b7fd1..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#ifndef DescendantIterator_h
-#define DescendantIterator_h
-
-#include "ElementIterator.h"
-
-namespace WebCore {
-
-template <typename ElementType>
-class DescendantIterator : public ElementIterator<ElementType> {
-public:
-    DescendantIterator(const ContainerNode* root);
-    DescendantIterator(const ContainerNode* root, ElementType* current);
-    DescendantIterator& operator++();
-};
-
-template <typename ElementType>
-class DescendantConstIterator : public ElementConstIterator<ElementType>  {
-public:
-    DescendantConstIterator(const ContainerNode* root);
-    DescendantConstIterator(const ContainerNode* root, const ElementType* current);
-    DescendantConstIterator& operator++();
-};
-
-template <typename ElementType>
-class DescendantIteratorAdapter {
-public:
-    DescendantIteratorAdapter(ContainerNode* root);
-    DescendantIterator<ElementType> begin();
-    DescendantIterator<ElementType> end();
-
-private:
-    ContainerNode* m_root;
-};
-
-template <typename ElementType>
-class DescendantConstIteratorAdapter {
-public:
-    DescendantConstIteratorAdapter(const ContainerNode* root);
-    DescendantConstIterator<ElementType> begin() const;
-    DescendantConstIterator<ElementType> end() const;
-
-private:
-    const ContainerNode* m_root;
-};
-
-DescendantIteratorAdapter<Element> elementDescendants(ContainerNode* root);
-DescendantConstIteratorAdapter<Element> elementDescendants(const ContainerNode* root);
-template <typename ElementType> DescendantIteratorAdapter<ElementType> descendantsOfType(ContainerNode* root);
-template <typename ElementType> DescendantConstIteratorAdapter<ElementType> descendantsOfType(const ContainerNode* root);
-
-// DescendantIterator
-
-template <typename ElementType>
-inline DescendantIterator<ElementType>::DescendantIterator(const ContainerNode* root)
-    : ElementIterator<ElementType>(root)
-{
-}
-
-template <typename ElementType>
-inline DescendantIterator<ElementType>::DescendantIterator(const ContainerNode* root, ElementType* current)
-    : ElementIterator<ElementType>(root, current)
-{
-}
-
-template <typename ElementType>
-inline DescendantIterator<ElementType>& DescendantIterator<ElementType>::operator++()
-{
-    return static_cast<DescendantIterator<ElementType>&>(ElementIterator<ElementType>::traverseNext());
-}
-
-// DescendantConstIterator
-
-template <typename ElementType>
-inline DescendantConstIterator<ElementType>::DescendantConstIterator(const ContainerNode* root)
-    : ElementConstIterator<ElementType>(root)
-
-{
-}
-
-template <typename ElementType>
-inline DescendantConstIterator<ElementType>::DescendantConstIterator(const ContainerNode* root, const ElementType* current)
-    : ElementConstIterator<ElementType>(root, current)
-{
-}
-
-template <typename ElementType>
-inline DescendantConstIterator<ElementType>& DescendantConstIterator<ElementType>::operator++()
-{
-    return static_cast<DescendantConstIterator<ElementType>&>(ElementConstIterator<ElementType>::traverseNext());
-}
-
-// DescendantIteratorAdapter
-
-template <typename ElementType>
-inline DescendantIteratorAdapter<ElementType>::DescendantIteratorAdapter(ContainerNode* root)
-    : m_root(root)
-{
-}
-
-template <typename ElementType>
-inline DescendantIterator<ElementType> DescendantIteratorAdapter<ElementType>::begin()
-{
-    return DescendantIterator<ElementType>(m_root, Traversal<ElementType>::firstWithin(m_root));
-}
-
-template <typename ElementType>
-inline DescendantIterator<ElementType> DescendantIteratorAdapter<ElementType>::end()
-{
-    return DescendantIterator<ElementType>(m_root);
-}
-
-// DescendantConstIteratorAdapter
-
-template <typename ElementType>
-inline DescendantConstIteratorAdapter<ElementType>::DescendantConstIteratorAdapter(const ContainerNode* root)
-    : m_root(root)
-{
-}
-
-template <typename ElementType>
-inline DescendantConstIterator<ElementType> DescendantConstIteratorAdapter<ElementType>::begin() const
-{
-    return DescendantConstIterator<ElementType>(m_root, Traversal<ElementType>::firstWithin(m_root));
-}
-
-template <typename ElementType>
-inline DescendantConstIterator<ElementType> DescendantConstIteratorAdapter<ElementType>::end() const
-{
-    return DescendantConstIterator<ElementType>(m_root);
-}
-
-// Standalone functions
-
-inline DescendantIteratorAdapter<Element> elementDescendants(ContainerNode* root)
-{
-    return DescendantIteratorAdapter<Element>(root);
-}
-
-template <typename ElementType>
-inline DescendantIteratorAdapter<ElementType> descendantsOfType(ContainerNode* root)
-{
-    return DescendantIteratorAdapter<ElementType>(root);
-}
-
-inline DescendantConstIteratorAdapter<Element> elementDescendants(const ContainerNode* root)
-{
-    return DescendantConstIteratorAdapter<Element>(root);
-}
-
-template <typename ElementType>
-inline DescendantConstIteratorAdapter<ElementType> descendantsOfType(const ContainerNode* root)
-{
-    return DescendantConstIteratorAdapter<ElementType>(root);
-}
-
-}
-
-#endif
index 9e5d7dc..e346822 100644 (file)
@@ -37,7 +37,6 @@
 #include "CSSStyleSheet.h"
 #include "CachedCSSStyleSheet.h"
 #include "CachedResourceLoader.h"
-#include "ChildIterator.h"
 #include "Chrome.h"
 #include "ChromeClient.h"
 #include "Comment.h"
@@ -50,7 +49,6 @@
 #include "DOMNamedFlowCollection.h"
 #include "DOMWindow.h"
 #include "DateComponents.h"
-#include "DescendantIterator.h"
 #include "Dictionary.h"
 #include "DocumentEventQueue.h"
 #include "DocumentFragment.h"
@@ -61,6 +59,7 @@
 #include "DocumentType.h"
 #include "Editor.h"
 #include "Element.h"
+#include "ElementIterator.h"
 #include "EntityReference.h"
 #include "Event.h"
 #include "EventFactory.h"
diff --git a/Source/WebCore/dom/ElementChildIterator.h b/Source/WebCore/dom/ElementChildIterator.h
new file mode 100644 (file)
index 0000000..13a6544
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#ifndef ElementChildIterator_h
+#define ElementChildIterator_h
+
+#include "ElementIterator.h"
+
+namespace WebCore {
+
+template <typename ElementType>
+class ElementChildIterator : public ElementIterator<ElementType> {
+public:
+    ElementChildIterator(const ContainerNode* root);
+    ElementChildIterator(const ContainerNode* root, ElementType* current);
+    ElementChildIterator& operator++();
+};
+
+template <typename ElementType>
+class ElementChildConstIterator : public ElementConstIterator<ElementType> {
+public:
+    ElementChildConstIterator(const ContainerNode* root);
+    ElementChildConstIterator(const ContainerNode* root, const ElementType* current);
+    ElementChildConstIterator& operator++();
+};
+
+template <typename ElementType>
+class ElementChildIteratorAdapter {
+public:
+    ElementChildIteratorAdapter(ContainerNode* root);
+    ElementChildIterator<ElementType> begin();
+    ElementChildIterator<ElementType> end();
+
+private:
+    const ContainerNode* m_root;
+};
+
+template <typename ElementType>
+class ElementChildConstIteratorAdapter {
+public:
+    ElementChildConstIteratorAdapter(const ContainerNode* root);
+    ElementChildConstIterator<ElementType> begin() const;
+    ElementChildConstIterator<ElementType> end() const;
+
+private:
+    const ContainerNode* m_root;
+};
+
+ElementChildIteratorAdapter<Element> elementChildren(ContainerNode* root);
+ElementChildConstIteratorAdapter<Element> elementChildren(const ContainerNode* root);
+template <typename ElementType> ElementChildIteratorAdapter<ElementType> childrenOfType(ContainerNode* root);
+template <typename ElementType> ElementChildConstIteratorAdapter<ElementType> childrenOfType(const ContainerNode* root);
+
+// ElementChildIterator
+
+template <typename ElementType>
+inline ElementChildIterator<ElementType>::ElementChildIterator(const ContainerNode* root)
+    : ElementIterator<ElementType>(root)
+{
+}
+
+template <typename ElementType>
+inline ElementChildIterator<ElementType>::ElementChildIterator(const ContainerNode* root, ElementType* current)
+    : ElementIterator<ElementType>(root, current)
+{
+}
+
+template <typename ElementType>
+inline ElementChildIterator<ElementType>& ElementChildIterator<ElementType>::operator++()
+{
+    return static_cast<ElementChildIterator<ElementType>&>(ElementIterator<ElementType>::traverseNextSibling());
+}
+
+// ElementChildConstIterator
+
+template <typename ElementType>
+inline ElementChildConstIterator<ElementType>::ElementChildConstIterator(const ContainerNode* root)
+    : ElementConstIterator<ElementType>(root)
+{
+}
+
+template <typename ElementType>
+inline ElementChildConstIterator<ElementType>::ElementChildConstIterator(const ContainerNode* root, const ElementType* current)
+    : ElementConstIterator<ElementType>(root, current)
+{
+}
+
+template <typename ElementType>
+inline ElementChildConstIterator<ElementType>& ElementChildConstIterator<ElementType>::operator++()
+{
+    return static_cast<ElementChildConstIterator<ElementType>&>(ElementConstIterator<ElementType>::traverseNextSibling());
+}
+
+// ElementChildIteratorAdapter
+
+template <typename ElementType>
+inline ElementChildIteratorAdapter<ElementType>::ElementChildIteratorAdapter(ContainerNode* root)
+    : m_root(root)
+{
+}
+
+template <typename ElementType>
+inline ElementChildIterator<ElementType> ElementChildIteratorAdapter<ElementType>::begin()
+{
+    return ElementChildIterator<ElementType>(m_root, Traversal<ElementType>::firstChild(m_root));
+}
+
+template <typename ElementType>
+inline ElementChildIterator<ElementType> ElementChildIteratorAdapter<ElementType>::end()
+{
+    return ElementChildIterator<ElementType>(m_root);
+}
+
+// ElementChildConstIteratorAdapter
+
+template <typename ElementType>
+inline ElementChildConstIteratorAdapter<ElementType>::ElementChildConstIteratorAdapter(const ContainerNode* root)
+    : m_root(root)
+{
+}
+
+template <typename ElementType>
+inline ElementChildConstIterator<ElementType> ElementChildConstIteratorAdapter<ElementType>::begin() const
+{
+    return ElementChildConstIterator<ElementType>(m_root, Traversal<ElementType>::firstChild(m_root));
+}
+
+template <typename ElementType>
+inline ElementChildConstIterator<ElementType> ElementChildConstIteratorAdapter<ElementType>::end() const
+{
+    return ElementChildConstIterator<ElementType>(m_root);
+}
+
+// Standalone functions
+
+inline ElementChildIteratorAdapter<Element> elementChildren(ContainerNode* root)
+{
+    return ElementChildIteratorAdapter<Element>(root);
+}
+
+template <typename ElementType>
+inline ElementChildIteratorAdapter<ElementType> childrenOfType(ContainerNode* root)
+{
+    return ElementChildIteratorAdapter<ElementType>(root);
+}
+
+inline ElementChildConstIteratorAdapter<Element> elementChildren(const ContainerNode* root)
+{
+    return ElementChildConstIteratorAdapter<Element>(root);
+}
+
+template <typename ElementType>
+inline ElementChildConstIteratorAdapter<ElementType> childrenOfType(const ContainerNode* root)
+{
+    return ElementChildConstIteratorAdapter<ElementType>(root);
+}
+
+}
+
+#endif
diff --git a/Source/WebCore/dom/ElementDescendantIterator.h b/Source/WebCore/dom/ElementDescendantIterator.h
new file mode 100644 (file)
index 0000000..522c147
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2013 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.
+ */
+
+#ifndef ElementDescendantIterator_h
+#define ElementDescendantIterator_h
+
+#include "ElementIterator.h"
+
+namespace WebCore {
+
+template <typename ElementType>
+class ElementDescendantIterator : public ElementIterator<ElementType> {
+public:
+    ElementDescendantIterator(const ContainerNode* root);
+    ElementDescendantIterator(const ContainerNode* root, ElementType* current);
+    ElementDescendantIterator& operator++();
+};
+
+template <typename ElementType>
+class ElementDescendantConstIterator : public ElementConstIterator<ElementType>  {
+public:
+    ElementDescendantConstIterator(const ContainerNode* root);
+    ElementDescendantConstIterator(const ContainerNode* root, const ElementType* current);
+    ElementDescendantConstIterator& operator++();
+};
+
+template <typename ElementType>
+class ElementDescendantIteratorAdapter {
+public:
+    ElementDescendantIteratorAdapter(ContainerNode* root);
+    ElementDescendantIterator<ElementType> begin();
+    ElementDescendantIterator<ElementType> end();
+
+private:
+    ContainerNode* m_root;
+};
+
+template <typename ElementType>
+class ElementDescendantConstIteratorAdapter {
+public:
+    ElementDescendantConstIteratorAdapter(const ContainerNode* root);
+    ElementDescendantConstIterator<ElementType> begin() const;
+    ElementDescendantConstIterator<ElementType> end() const;
+
+private:
+    const ContainerNode* m_root;
+};
+
+ElementDescendantIteratorAdapter<Element> elementDescendants(ContainerNode* root);
+ElementDescendantConstIteratorAdapter<Element> elementDescendants(const ContainerNode* root);
+template <typename ElementType> ElementDescendantIteratorAdapter<ElementType> descendantsOfType(ContainerNode* root);
+template <typename ElementType> ElementDescendantConstIteratorAdapter<ElementType> descendantsOfType(const ContainerNode* root);
+
+// ElementDescendantIterator
+
+template <typename ElementType>
+inline ElementDescendantIterator<ElementType>::ElementDescendantIterator(const ContainerNode* root)
+    : ElementIterator<ElementType>(root)
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantIterator<ElementType>::ElementDescendantIterator(const ContainerNode* root, ElementType* current)
+    : ElementIterator<ElementType>(root, current)
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantIterator<ElementType>& ElementDescendantIterator<ElementType>::operator++()
+{
+    return static_cast<ElementDescendantIterator<ElementType>&>(ElementIterator<ElementType>::traverseNext());
+}
+
+// ElementDescendantConstIterator
+
+template <typename ElementType>
+inline ElementDescendantConstIterator<ElementType>::ElementDescendantConstIterator(const ContainerNode* root)
+    : ElementConstIterator<ElementType>(root)
+
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantConstIterator<ElementType>::ElementDescendantConstIterator(const ContainerNode* root, const ElementType* current)
+    : ElementConstIterator<ElementType>(root, current)
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantConstIterator<ElementType>& ElementDescendantConstIterator<ElementType>::operator++()
+{
+    return static_cast<ElementDescendantConstIterator<ElementType>&>(ElementConstIterator<ElementType>::traverseNext());
+}
+
+// ElementDescendantIteratorAdapter
+
+template <typename ElementType>
+inline ElementDescendantIteratorAdapter<ElementType>::ElementDescendantIteratorAdapter(ContainerNode* root)
+    : m_root(root)
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantIterator<ElementType> ElementDescendantIteratorAdapter<ElementType>::begin()
+{
+    return ElementDescendantIterator<ElementType>(m_root, Traversal<ElementType>::firstWithin(m_root));
+}
+
+template <typename ElementType>
+inline ElementDescendantIterator<ElementType> ElementDescendantIteratorAdapter<ElementType>::end()
+{
+    return ElementDescendantIterator<ElementType>(m_root);
+}
+
+// ElementDescendantConstIteratorAdapter
+
+template <typename ElementType>
+inline ElementDescendantConstIteratorAdapter<ElementType>::ElementDescendantConstIteratorAdapter(const ContainerNode* root)
+    : m_root(root)
+{
+}
+
+template <typename ElementType>
+inline ElementDescendantConstIterator<ElementType> ElementDescendantConstIteratorAdapter<ElementType>::begin() const
+{
+    return ElementDescendantConstIterator<ElementType>(m_root, Traversal<ElementType>::firstWithin(m_root));
+}
+
+template <typename ElementType>
+inline ElementDescendantConstIterator<ElementType> ElementDescendantConstIteratorAdapter<ElementType>::end() const
+{
+    return ElementDescendantConstIterator<ElementType>(m_root);
+}
+
+// Standalone functions
+
+inline ElementDescendantIteratorAdapter<Element> elementDescendants(ContainerNode* root)
+{
+    return ElementDescendantIteratorAdapter<Element>(root);
+}
+
+template <typename ElementType>
+inline ElementDescendantIteratorAdapter<ElementType> descendantsOfType(ContainerNode* root)
+{
+    return ElementDescendantIteratorAdapter<ElementType>(root);
+}
+
+inline ElementDescendantConstIteratorAdapter<Element> elementDescendants(const ContainerNode* root)
+{
+    return ElementDescendantConstIteratorAdapter<Element>(root);
+}
+
+template <typename ElementType>
+inline ElementDescendantConstIteratorAdapter<ElementType> descendantsOfType(const ContainerNode* root)
+{
+    return ElementDescendantConstIteratorAdapter<ElementType>(root);
+}
+
+}
+
+#endif
index d35725e..42680c5 100644 (file)
@@ -284,4 +284,7 @@ inline bool ElementConstIterator<ElementType>::operator!=(const ElementConstIter
 
 }
 
+#include "ElementChildIterator.h"
+#include "ElementDescendantIterator.h"
+
 #endif
index 47b52c5..c18e48b 100644 (file)
 #include "ContextMenuController.h"
 #include "DOMImplementation.h"
 #include "DOMSettableTokenList.h"
-#include "DescendantIterator.h"
 #include "Document.h"
 #include "DocumentFragment.h"
 #include "DocumentType.h"
 #include "Element.h"
+#include "ElementIterator.h"
 #include "ElementRareData.h"
 #include "Event.h"
 #include "EventContext.h"
index 20cf76a..27094ec 100644 (file)
@@ -30,9 +30,9 @@
 #include "ContainerNode.h"
 #include "DOMSelection.h"
 #include "DOMWindow.h"
-#include "DescendantIterator.h"
 #include "Document.h"
 #include "Element.h"
+#include "ElementIterator.h"
 #include "FocusController.h"
 #include "Frame.h"
 #include "FrameView.h"
index 5b42edc..6fa89e6 100644 (file)
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
 #include "CSSValuePool.h"
-#include "ChildIterator.h"
 #include "Document.h"
 #include "EditingStyle.h"
 #include "Editor.h"
+#include "ElementIterator.h"
 #include "Frame.h"
 #include "HTMLFontElement.h"
 #include "HTMLInterchange.h"
index 62f5e0d..80d81f7 100644 (file)
 #include "CSSValueKeywords.h"
 #include "ChildListMutationScope.h"
 #include "ContextFeatures.h"
-#include "DescendantIterator.h"
 #include "DocumentFragment.h"
 #include "DocumentType.h"
 #include "Editor.h"
+#include "ElementIterator.h"
 #include "ExceptionCode.h"
 #include "ExceptionCodePlaceholder.h"
 #include "Frame.h"
index e08af3e..bcc2741 100644 (file)
@@ -24,7 +24,7 @@
 #include "config.h"
 #include "HTMLAppletElement.h"
 
-#include "ChildIterator.h"
+#include "ElementIterator.h"
 #include "Frame.h"
 #include "FrameLoader.h"
 #include "HTMLDocument.h"
index 904f871..66fe923 100644 (file)
@@ -25,8 +25,7 @@
 #include "config.h"
 #include "HTMLFieldSetElement.h"
 
-#include "ChildIterator.h"
-#include "DescendantIterator.h"
+#include "ElementIterator.h"
 #include "HTMLCollection.h"
 #include "HTMLLegendElement.h"
 #include "HTMLNames.h"
index 88392d3..32226e0 100644 (file)
@@ -25,8 +25,8 @@
 #include "config.h"
 #include "HTMLLabelElement.h"
 
-#include "DescendantIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "Event.h"
 #include "EventNames.h"
 #include "FormAssociatedElement.h"
index c5f822a..c7514fd 100644 (file)
@@ -23,8 +23,8 @@
 #include "HTMLMapElement.h"
 
 #include "Attribute.h"
-#include "DescendantIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "HTMLAreaElement.h"
 #include "HTMLCollection.h"
 #include "HTMLImageElement.h"
index 04c05e0..e2e925c 100644 (file)
@@ -30,7 +30,6 @@
 #include "ApplicationCacheHost.h"
 #include "ApplicationCacheResource.h"
 #include "Attribute.h"
-#include "ChildIterator.h"
 #include "Chrome.h"
 #include "ChromeClient.h"
 #include "ClientRect.h"
@@ -39,9 +38,9 @@
 #include "ContentType.h"
 #include "CSSPropertyNames.h"
 #include "CSSValueKeywords.h"
-#include "DescendantIterator.h"
 #include "DiagnosticLoggingKeys.h"
 #include "DocumentLoader.h"
+#include "ElementIterator.h"
 #include "Event.h"
 #include "EventNames.h"
 #include "ExceptionCode.h"
index b682548..0ecbe2c 100644 (file)
@@ -27,9 +27,9 @@
 #include "Attribute.h"
 #include "CSSValueKeywords.h"
 #include "CachedImage.h"
-#include "ChildIterator.h"
 #include "Chrome.h"
 #include "ChromeClient.h"
+#include "ElementIterator.h"
 #include "EventNames.h"
 #include "ExceptionCode.h"
 #include "FormDataList.h"
index 08cbcd8..9a8f3a0 100644 (file)
@@ -26,7 +26,7 @@
 #include "config.h"
 #include "PlaceholderDocument.h"
 
-#include "ChildIterator.h"
+#include "ElementIterator.h"
 
 namespace WebCore {
 
index 081ea77..16575b0 100644 (file)
@@ -29,9 +29,9 @@
 
 #include "FilterEffectRenderer.h"
 
-#include "ChildIterator.h"
 #include "ColorSpace.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "FEColorMatrix.h"
 #include "FEComponentTransfer.h"
 #include "FEDropShadow.h"
index a5a26b2..b3ff956 100644 (file)
@@ -27,8 +27,8 @@
 #include "StyleResolveTree.h"
 
 #include "AXObjectCache.h"
-#include "ChildIterator.h"
 #include "Element.h"
+#include "ElementIterator.h"
 #include "ElementRareData.h"
 #include "ElementTraversal.h"
 #include "FlowThreadController.h"
index ab2e5f1..2052873 100644 (file)
@@ -31,8 +31,8 @@
 #include "CSSCursorImageValue.h"
 #include "CSSParser.h"
 #include "DOMImplementation.h"
-#include "DescendantIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "Event.h"
 #include "EventNames.h"
 #include "HTMLNames.h"
index b9b2936..5ff372c 100644 (file)
@@ -27,8 +27,8 @@
 #include "AffineTransform.h"
 #include "Attribute.h"
 #include "CSSHelper.h"
-#include "DescendantIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "EventListener.h"
 #include "EventNames.h"
 #include "FloatConversion.h"
index 358a9e7..82ad317 100644 (file)
@@ -27,8 +27,8 @@
 #include "SMILTimeContainer.h"
 
 #if ENABLE(SVG)
-#include "DescendantIterator.h"
 #include "Document.h"
+#include "ElementIterator.h"
 #include "SVGNames.h"
 #include "SVGSMILElement.h"
 #include "SVGSVGElement.h"
index f5940f7..7c9d5e9 100644 (file)
@@ -31,8 +31,8 @@
 #include "SVGImage.h"
 
 #include "Chrome.h"
-#include "DescendantIterator.h"
 #include "DocumentLoader.h"
+#include "ElementIterator.h"
 #include "FrameView.h"
 #include "ImageBuffer.h"
 #include "ImageObserver.h"