Factor node traversal into standalone functions
https://bugs.webkit.org/show_bug.cgi?id=104507

Source/WebCore: 

Reviewed by Eric Seidel.

Node traversal functions are currently Node and ContainerNode members. Their implementations
are confusingly scattered over multiple header and source files. These functions have no particular
reason to be members as they don't require non-public access. They should be made freestanding
function instead and gathered together.
        
This patch adds NodeTraversal namespace, defined in NodeTraversal.h. It contains freestanding
functions for traversing Nodes. Most popular functions are inlined (as before) and
there are ContainerNode specific specializations (as before).
        
In client code
        
    node = node->traverseNextNode();
    node = node->traverseNextSibling();
        
becomes
        
    node = NodeTraversal::next(node);
    node = NodeTraversal::nextSkippingChildren(node);
            
etc.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::allVisitedStateChanged):
(WebCore::SelectorChecker::visitedStateChanged):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/ContainerNode.h:
(ContainerNode):
(WebCore):
* dom/ContainerNodeAlgorithms.h:
(WebCore::ChildFrameDisconnector::collectDescendant):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::removeAllEventListeners):
(WebCore::Document::updateBaseURL):
(WebCore::Document::processBaseElement):
(WebCore::Document::nodeAbsIndex):
(WebCore::Document::nodeWithAbsIndex):
(WebCore::Document::getFocusableNodes):
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::markersInRange):
(WebCore::DocumentMarkerController::setMarkersActive):
(WebCore::DocumentMarkerController::hasMarkers):
(WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::get):
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::collectSelectFeatureSetFrom):
* dom/Node.cpp:
(WebCore::Node::normalize):
(WebCore::Node::lazyAttach):
(WebCore):
(WebCore::Node::detach):
(WebCore::traverseTreeAndMark):
* dom/Node.h:
(Node):
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodePointer::moveToNext):
(WebCore::NodeIterator::NodePointer::moveToPrevious):
(WebCore::NodeIterator::updateForNodeRemoval):
* dom/NodeTraversal.h: Added.
(WebCore):
(NodeTraversal):
(WebCore::NodeTraversal::traverseNextNodeTemplate):
(WebCore::NodeTraversal::next):
(WebCore::NodeTraversal::traverseNextSiblingTemplate):
(WebCore::NodeTraversal::nextSibling):
* dom/Range.cpp:
(WebCore::Range::toString):
(WebCore::Range::checkDeleteExtract):
(WebCore::Range::firstNode):
(WebCore::Range::pastLastNode):
(WebCore::Range::textRects):
(WebCore::Range::textQuads):
(WebCore::Range::getBorderAndTextQuads):
* dom/TreeScope.cpp:
(WebCore::TreeScope::labelElementForId):
(WebCore::TreeScope::findAnchor):
* dom/TreeScopeAdopter.cpp:
(WebCore::TreeScopeAdopter::moveTreeToNewScope):
(WebCore::TreeScopeAdopter::moveTreeToNewDocument):
* dom/TreeWalker.cpp:
(WebCore::TreeWalker::nextNode):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
(WebCore::containsNonEditableRegion):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle):
(WebCore::ApplyStyleCommand::removeInlineStyle):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/DeleteSelectionCommand.cpp:
(WebCore::firstEditablePositionInNode):
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
* editing/EditCommand.cpp:
(WebCore::SimpleEditCommand::addNodeAndDescendants):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::triStateOfStyle):
(WebCore::EditingStyle::textDirectionForSelection):
* editing/Editor.cpp:
(WebCore::Editor::simplifyMarkup):
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
(WebCore::FrameSelection::setSelectionFromNone):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeUnrenderedNodes):
(WebCore::ReplacementFragment::removeInterchangeNodes):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::removeHeadContents):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
* editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
* editing/TextIterator.cpp:
(WebCore::TextIterator::advance):
(WebCore::shouldEmitNewlineAfterNode):
* editing/htmlediting.cpp:
(WebCore::hasARenderedDescendant):
* editing/mac/EditorMac.mm:
(WebCore::Editor::fontForSelection):
* editing/markup.cpp:
(WebCore::completeURLs):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::findNodesSurroundingContext):
(WebCore::trimFragment):
* editing/visible_units.cpp:
(WebCore::startOfParagraph):
(WebCore::endOfParagraph):
* html/HTMLCollection.cpp:
(WebCore::nextNode):
* html/HTMLElement.cpp:
(WebCore::setHasDirAutoFlagRecursively):
(WebCore::HTMLElement::directionality):
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
(WebCore::HTMLElement::getItemRefElements):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::invalidateDisabledStateUnder):
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::control):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::associatedControl):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::mapMouseEvent):
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::virtualItemAfter):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::collectOptionInnerText):
* html/HTMLPropertiesCollection.cpp:
(WebCore::nextNodeWithProperty):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selection):
(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
* html/RadioInputType.cpp:
(WebCore::RadioInputType::handleKeydownEvent):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):
* inspector/InspectorMemoryAgent.cpp:
* page/FocusController.cpp:
(WebCore::FocusController::findFocusCandidateInContainer):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsAboveCell):
(WebCore::Frame::searchForLabelsBeforeElement):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):
(WebCore::SVGSVGElement::getElementById):
* svg/SVGUseElement.cpp:
(WebCore::removeDisallowedElementsFromSubtree):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateDocumentOrderIndexes):
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::traversalSort):
* xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
* xml/XPathUtil.cpp:
(WebCore::XPath::stringValue):

Source/WebKit/chromium: 

Reviewed by Eric Seidel.

* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::setFindEndstateFocusAndSelection):

Source/WebKit/mac: 

Reviewed by Eric Seidel.
    
* WebView/WebHTMLRepresentation.mm:
(searchForLabelsBeforeElement):

Source/WebKit2: 

Reviewed by Eric Seidel.

* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::containsAnyFormElements):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137221 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove WebKit2 tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=104607

Reviewed by Tim Horton.

Stop building WebKit2 tests and remove associated files.

* TestWebKitAPI/win/InjectedBundleControllerWin.cpp: Removed.
* TestWebKitAPI/win/PlatformUtilitiesWin.cpp: Removed.
* TestWebKitAPI/win/PlatformWebViewWin.cpp: Removed.
* TestWebKitAPI/win/TestWebKitAPI.sln: Removed.
* TestWebKitAPI/win/TestWebKitAPI.vcproj:
* TestWebKitAPI/win/TestWebKitAPIGenerated.vcproj: Removed.
* TestWebKitAPI/win/TestWebKitAPIGeneratedCommon.vsprops: Removed.
* TestWebKitAPI/win/TestWebKitAPIInjectedBundle.vcproj: Removed.
* TestWebKitAPI/win/WindowMessageObserver.h: Removed.
* TestWebKitAPI/win/copy-resources.cmd: Removed.

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