Remove EAffinity, UPSTREAM, DOWNSTREAM, SEL_DEFAULT_AFFINITY, and VisibleSelection::selectionType
https://bugs.webkit.org/show_bug.cgi?id=216102

Reviewed by Sam Weinig.

Source/WebCore:

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::characterOffsetForTextMarkerData): Use Affinity.
* accessibility/AXObjectCache.h: Ditto.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::performTextOperation): Ditto.
(WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions const): Ditto.
(WebCore::AccessibilityObject::visiblePositionRangeForRange const): Ditto.
(WebCore::AccessibilityObject::replaceTextInRange): Ditto.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine const): Removed unneeded
call to Position::equal, simplified code.
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange const): Use Affinity.
(WebCore::AccessibilityRenderObject::visiblePositionForIndex const): Ditto.
(WebCore::AccessibilityRenderObject::doAXRangeForLine const): Ditto.

* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getSelectionOffsetsForObject): Use Affinity.
(wordAtPositionForAtkBoundary): Ditto.
(sentenceAtPositionForAtkBoundary): Ditto.
(lineAtPositionForAtkBoundary): Ditto.

* accessibility/atk/WebKitAccessibleUtil.cpp:
(objectFocusedAndCaretOffsetUnignored): Rely on default affinity.

* dom/Element.cpp:
(WebCore::Element::updateFocusAppearance): Rely on default affinity.

* dom/Position.cpp:
(WebCore::Position::previousCharacterPosition const): Use Affinity.
(WebCore::Position::nextCharacterPosition const): Ditto.
(WebCore::Position::leadingWhitespacePosition const): Ditto.
(WebCore::Position::trailingWhitespacePosition const): Ditto.
(WebCore::Position::inlineBoxAndOffset const): Ditto.
* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::formatSelection): Ditto.
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply): Ditto.

* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphWithClones): Rely on default affinity.
(WebCore::CompositeEditCommand::moveParagraphs): Ditto.

* editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply): Use Affinity.
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::smartDeleteParagraphSpacers): Ditto.
(WebCore::DeleteSelectionCommand::doApply): Ditto.

* editing/Editing.cpp:
(WebCore::firstInSpecialElement): Rely on default affinity.
(WebCore::lastInSpecialElement): Ditto.
(WebCore::visiblePositionBeforeNode): Ditto.
(WebCore::visiblePositionAfterNode): Ditto.
(WebCore::visiblePositionForIndexUsingCharacterIterator): Use Affinity.

* editing/Editor.cpp:
(WebCore::Editor::selectionForCommand): Use Affinity.
(WebCore::Editor::canDeleteRange const): Rely on default affinity.
(WebCore::Editor::applyStyle): Use isNone and isCaret.
(WebCore::Editor::applyParagraphStyle): Ditto.
(WebCore::Editor::setComposition): Use Affinity.
(WebCore::Editor::advanceToNextMisspelling): Rely on default affinity.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Ditto.
(WebCore::Editor::markAndReplaceFor): Ditto. Use isCaret.
(WebCore::Editor::transpose): Rely on default affinity.
(WebCore::Editor::insertTextPlaceholder): Ditto.
(WebCore::Editor::removeTextPlaceholder): Ditto.
(WebCore::Editor::firstRectForRange const): Ditto. Also simplify
rectangle calculation at the end of the function.
(WebCore::Editor::shouldChangeSelection const): Use Affinity.
(WebCore::Editor::findString): Rely on default affinity.

* editing/Editor.h: Use Affinity.
* editing/EditorCommand.cpp:
(WebCore::executeDeleteToMark): Ditto.
(WebCore::executeSelectToMark): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo): Ditto.
(WebCore::FrameSelection::modify): Ditto.
(WebCore::FrameSelection::setBase): Ditto.
(WebCore::FrameSelection::setExtent): Ditto.
(WebCore::FrameSelection::setSelectedRange): Ditto.
(WebCore::FrameSelection::revealSelection): Use isNone and isCaret.
(WebCore::FrameSelection::setSelectionFromNone): Rely on default affinity.
(WebCore::FrameSelection::expandSelectionToElementContainingCaretSelection): Ditto.

* editing/FrameSelection.h: Use Affinity.

* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::outdentRegion): Rely on default affinity.

* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply): Use Affinity.
* editing/InsertNestedListCommand.cpp:
(WebCore::InsertNestedListCommand::doApply): Ditto.

* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Use Affinity.

* editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::insertTab): Rely on default affinity.

* editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::RenderedPosition): Use Affinity.
* editing/RenderedPosition.h: Ditto.

* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply): Rely on default affinity.
(WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
Use VisibleSelection::defaultAffinity.

* editing/TextAffinity.h: Removed EAffinity, UPSTREAM, DOWNSTREAM.

* editing/TextIterator.cpp:
(WebCore::TextIterator::shouldRepresentNodeOffsetZero): Rely on
default affinity.

* editing/TypingCommand.cpp:
(WebCore::TypingCommand::makeEditableRootEmpty): Use Affinity.
(WebCore::TypingCommand::deleteKeyPressed): Use isCaretOrRange and isRange.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.

* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::VisiblePosition): Use Affinity.
(WebCore::VisiblePosition::previous const): Rely on default affinity.
(WebCore::VisiblePosition::left const): Ditto.
(WebCore::VisiblePosition::right const): Ditto.
(WebCore::operator<<): Use Affinity.

* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::VisibleSelection): Use Affinity. Also use
initialize in the class definition.
(WebCore::VisibleSelection::selectionFromContentsOfNode): Rely on
default affinity.
(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
Rename from "pos" to "position".
(WebCore::VisibleSelection::updateSelectionType): Update from
m_selectionType to m_type and use Affinity.
(WebCore::VisibleSelection::validate): Use isRange.
(WebCore::VisibleSelection::setWithoutValidation): Use Affinity and
m_type.

* editing/VisibleSelection.h: Removed SEL_DEFAULT_AFFINITY, replacing
it with VisibleSelection::defaultAffinity. Removed both
VisibleSelection::SelectionType and VisibleSelection::selectionType,
replacing with private VisibleSelection::Type. Also renamed
m_selectionType to m_type.

* editing/VisibleUnits.cpp:
(WebCore::logicallyPreviousBox): Use Affinity.
(WebCore::logicallyNextBox): Ditto.
(WebCore::previousLinePosition): Rely on default affinity.
(WebCore::nextLinePosition): Ditto.
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
(WebCore::withinTextUnitOfGranularity): Use Affinity.
(WebCore::enclosingTextUnitOfGranularity): Ditto.

* editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeAtHitTestResult): Use isRange.

* loader/EmptyClients.cpp: Use Affinity.
* page/DOMSelection.cpp:
(WebCore::DOMSelection::collapse): Ditto.
(WebCore::DOMSelection::collapseToEnd): Ditto.
(WebCore::DOMSelection::collapseToStart): Ditto.
(WebCore::DOMSelection::setBaseAndExtent): Ditto.
(WebCore::DOMSelection::setPosition): Ditto.
(WebCore::DOMSelection::extend): Ditto.
* page/EditorClient.h: Ditto.

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick):
Rely on default affinity.

* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
Use constructor that takes a single Position and Affinity.

* page/Page.cpp:
(WebCore::replaceRanges): Use Affinity.

* page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot const): Use isNone.

* rendering/RenderBlock.cpp:
(WebCore::positionForPointRespectingEditingBoundaries): Use Affinity.
(WebCore::RenderBlock::positionForPoint): Ditto.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren): Ditto.
* rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::positionForPoint): Ditto.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::positionForPoint): Ditto.
(WebCore::RenderObject::createVisiblePosition const): Ditto.
* rendering/RenderObject.h: Ditto.
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint): Ditto.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::positionForPoint const): Ditto.
* rendering/RenderTreeAsText.cpp:
(WebCore::writeSelection): Ditto.
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::positionForPoint): Ditto.
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::positionForPoint): Ditto.

Source/WebKit:

* WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h:
(API::InjectedBundle::EditorClient::shouldChangeSelectedRange): Use Affinity.
* WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
(WebKit::toAPI): Dito.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
(WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange): Ditto.
* WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h: Ditto.
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
* WebProcess/WebCoreSupport/WebEditorClient.h: Ditto.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::insertDictatedTextAsync): Rely on default affinity.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::insertTextAsync): Ditto.
(WebKit::WebPage::setCompositionAsync): Ditto.
(WebKit::WebPage::deleteSurrounding): Ditto.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::didConcludeEditDrag): Use Affinity.
(WebKit::WebPage::selectPositionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPoint): Ditto.
(WebKit::WebPage::replaceSelectedText): Ditto.
(WebKit::WebPage::replaceDictatedText): Ditto.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.
(WebKit::WebPage::updateSelectionWithDelta): Ditto.

Source/WebKitLegacy/ios:

* WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]): Use Affinity.
(-[WebFrame smartExtendRangedSelection:]): Use visibleStart/End/Extent so we don't
need to write explicit code to handle affinity.

* WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition setAffinity:]): Use Affinity.

Source/WebKitLegacy/mac:

* DOM/DOMUIKitExtensions.mm:
(-[DOMNode rangeOfContainingParagraph]): Rely on default affinity.

* WebCoreSupport/WebEditorClient.h:
(kit): Use Affinity.
(core): Ditto.
* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::shouldChangeSelectedRange): Ditto.
* WebView/WebFrame.mm:
(-[WebFrame _caretRectAtPosition:affinity:]): Ditto.
(-[WebFrame _selectNSRange:]): Rely on default affinity.
(-[WebFrame getDictationResultRanges:andMetadatas:]): Use isNone.

* WebView/WebHTMLView.mm:
(-[WebHTMLView insertText:]): Rely on default affinity.

Source/WebKitLegacy/win:

* WebCoreSupport/WebEditorClient.cpp:
(toWebSelectionAffinity): Added.
(WebEditorClient::shouldChangeSelectedRange): Use Affinity.
* WebCoreSupport/WebEditorClient.h: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@266557 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/editing/DeleteSelectionCommand.cpp b/Source/WebCore/editing/DeleteSelectionCommand.cpp
index baa7e97..d0f56ad 100644
--- a/Source/WebCore/editing/DeleteSelectionCommand.cpp
+++ b/Source/WebCore/editing/DeleteSelectionCommand.cpp
@@ -213,7 +213,7 @@
         auto position = endOfParagraphBeforeStart.deepEquivalent();
         m_upstreamStart = position.upstream();
         m_downstreamStart = position.downstream();
-        m_leadingWhitespace = m_upstreamStart.leadingWhitespacePosition(DOWNSTREAM);
+        m_leadingWhitespace = m_upstreamStart.leadingWhitespacePosition(Affinity::Downstream);
         setStartingSelectionOnSmartDelete(m_upstreamStart, m_upstreamEnd);
     }
 }
@@ -900,8 +900,8 @@
     }
 
     // save this to later make the selection with
-    EAffinity affinity = m_selectionToDelete.affinity();
-    
+    auto affinity = m_selectionToDelete.affinity();
+
     Position downstreamEnd = m_selectionToDelete.end().downstream();
     m_needPlaceholder = isStartOfParagraph(m_selectionToDelete.visibleStart(), CanCrossEditingBoundary)
             && isEndOfParagraph(m_selectionToDelete.visibleEnd(), CanCrossEditingBoundary)