Chromium Code Reviews| Index: Source/core/dom/Position.cpp |
| diff --git a/Source/core/dom/Position.cpp b/Source/core/dom/Position.cpp |
| index 45bf6b8ff03a83fdda2489d769ee3b2a35d2e197..09ac515f2807d1bdc1c5be8ce307185bb7abb13e 100644 |
| --- a/Source/core/dom/Position.cpp |
| +++ b/Source/core/dom/Position.cpp |
| @@ -81,7 +81,7 @@ static Node* previousRenderedEditable(Node* node) |
| } |
| template <typename Strategy> |
| -const TreeScope* PositionAlgorithm<Strategy>::commonAncestorTreeScope(const PositionType& a, const PositionType& b) |
| +const TreeScope* PositionAlgorithm<Strategy>::commonAncestorTreeScope(const PositionAlgorithm<Strategy>& a, const PositionAlgorithm<Strategy>& b) |
| { |
| if (!a.containerNode() || !b.containerNode()) |
| return nullptr; |
| @@ -230,16 +230,16 @@ int PositionAlgorithm<Strategy>::offsetForPositionAfterAnchor() const |
| // Neighbor-anchored positions are invalid DOM positions, so they need to be |
| // fixed up before handing them off to the Range object. |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::parentAnchoredEquivalent() const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::parentAnchoredEquivalent() const |
|
yosin_UTC9
2015/06/26 08:39:24
We don't need to have |typename|.
Apply this comme
yoichio
2015/06/29 06:00:33
Done.
|
| { |
| if (!m_anchorNode) |
| - return PositionType(); |
| + return PositionAlgorithm<Strategy>(); |
| // FIXME: This should only be necessary for legacy positions, but is also needed for positions before and after Tables |
| if (m_offset <= 0 && (m_anchorType != PositionIsAfterAnchor && m_anchorType != PositionIsAfterChildren)) { |
| if (Strategy::parent(*m_anchorNode) && (Strategy::editingIgnoresContent(m_anchorNode.get()) || isRenderedHTMLTableElement(m_anchorNode.get()))) |
| return inParentBeforeNode(*m_anchorNode); |
| - return PositionType(m_anchorNode.get(), 0, PositionIsOffsetInAnchor); |
| + return PositionAlgorithm<Strategy>(m_anchorNode.get(), 0, PositionIsOffsetInAnchor); |
| } |
| if (!m_anchorNode->offsetInCharacters() |
| && (m_anchorType == PositionIsAfterAnchor || m_anchorType == PositionIsAfterChildren || static_cast<unsigned>(m_offset) == m_anchorNode->countChildren()) |
| @@ -248,16 +248,16 @@ typename Strategy::PositionType PositionAlgorithm<Strategy>::parentAnchoredEquiv |
| return inParentAfterNode(*m_anchorNode); |
| } |
| - return PositionType(containerNode(), computeOffsetInContainerNode(), PositionIsOffsetInAnchor); |
| + return PositionAlgorithm<Strategy>(containerNode(), computeOffsetInContainerNode(), PositionIsOffsetInAnchor); |
| } |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::toOffsetInAnchor() const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::toOffsetInAnchor() const |
| { |
| if (isNull()) |
| - return PositionType(); |
| + return PositionAlgorithm<Strategy>(); |
| - return PositionType(containerNode(), computeOffsetInContainerNode(), PositionIsOffsetInAnchor); |
| + return PositionAlgorithm<Strategy>(containerNode(), computeOffsetInContainerNode(), PositionIsOffsetInAnchor); |
| } |
| template <typename Strategy> |
| @@ -346,7 +346,7 @@ Node* PositionAlgorithm<Strategy>::nodeAsRangePastLastNode() const |
| } |
| template <typename Strategy> |
| -Node* PositionAlgorithm<Strategy>::commonAncestorContainer(const PositionType& other) const |
| +Node* PositionAlgorithm<Strategy>::commonAncestorContainer(const PositionAlgorithm<Strategy>& other) const |
| { |
| return Strategy::commonAncestor(*containerNode(), *other.containerNode()); |
| } |
| @@ -395,17 +395,17 @@ int comparePositions(const PositionInComposedTree& positionA, const PositionInCo |
| } |
| template <typename Strategy> |
| -int PositionAlgorithm<Strategy>::compareTo(const PositionType& other) const |
| +int PositionAlgorithm<Strategy>::compareTo(const PositionAlgorithm<Strategy>& other) const |
| { |
| return comparePositions(*this, other); |
| } |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::previous(PositionMoveType moveType) const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::previous(PositionMoveType moveType) const |
| { |
| Node* node = deprecatedNode(); |
| if (!node) |
| - return PositionType(*this); |
| + return PositionAlgorithm<Strategy>(*this); |
| int offset = deprecatedEditingOffset(); |
| // FIXME: Negative offsets shouldn't be allowed. We should catch this earlier. |
| @@ -432,17 +432,17 @@ typename Strategy::PositionType PositionAlgorithm<Strategy>::previous(PositionMo |
| if (ContainerNode* parent = Strategy::parent(*node)) |
| return createLegacyEditingPosition(parent, node->nodeIndex()); |
| - return PositionType(*this); |
| + return PositionAlgorithm<Strategy>(*this); |
| } |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::next(PositionMoveType moveType) const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::next(PositionMoveType moveType) const |
| { |
| ASSERT(moveType != BackwardDeletion); |
| Node* node = deprecatedNode(); |
| if (!node) |
| - return PositionType(*this); |
| + return PositionAlgorithm<Strategy>(*this); |
| int offset = deprecatedEditingOffset(); |
| // FIXME: Negative offsets shouldn't be allowed. We should catch this earlier. |
| @@ -462,7 +462,7 @@ typename Strategy::PositionType PositionAlgorithm<Strategy>::next(PositionMoveTy |
| if (ContainerNode* parent = Strategy::parent(*node)) |
| return createLegacyEditingPosition(parent, node->nodeIndex() + 1); |
| - return PositionType(*this); |
| + return PositionAlgorithm<Strategy>(*this); |
| } |
| template <typename Strategy> |
| @@ -524,11 +524,11 @@ bool PositionAlgorithm<Strategy>::atLastEditingPositionForNode() const |
| template <typename Strategy> |
| bool PositionAlgorithm<Strategy>::atEditingBoundary() const |
| { |
| - PositionType nextPosition = downstream(CanCrossEditingBoundary); |
| + PositionAlgorithm<Strategy> nextPosition = downstream(CanCrossEditingBoundary); |
| if (atFirstEditingPositionForNode() && nextPosition.isNotNull() && !nextPosition.deprecatedNode()->hasEditableStyle()) |
| return true; |
| - PositionType prevPosition = upstream(CanCrossEditingBoundary); |
| + PositionAlgorithm<Strategy> prevPosition = upstream(CanCrossEditingBoundary); |
| if (atLastEditingPositionForNode() && prevPosition.isNotNull() && !prevPosition.deprecatedNode()->hasEditableStyle()) |
| return true; |
| @@ -657,16 +657,16 @@ static bool isStreamer(const typename Strategy::PositionIteratorType& pos) |
| // Also, upstream() will return [boundary, 0] for any of the positions from [boundary, 0] to the first candidate |
| // in boundary, where endsOfNodeAreVisuallyDistinctPositions(boundary) is true. |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::upstream(EditingBoundaryCrossingRule rule) const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::upstream(EditingBoundaryCrossingRule rule) const |
| { |
| Node* startNode = deprecatedNode(); |
| if (!startNode) |
| - return PositionType(); |
| + return PositionAlgorithm<Strategy>(); |
| // iterate backward from there, looking for a qualified position |
| Node* boundary = enclosingVisualBoundary<Strategy>(startNode); |
| // FIXME: PositionIterator should respect Before and After positions. |
| - typename Strategy::PositionIteratorType lastVisible(m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : PositionType(*this)); |
| + typename Strategy::PositionIteratorType lastVisible(m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : PositionAlgorithm<Strategy>(*this)); |
| typename Strategy::PositionIteratorType currentPos = lastVisible; |
| bool startEditable = startNode->hasEditableStyle(); |
| Node* lastNode = startNode; |
| @@ -779,16 +779,16 @@ typename Strategy::PositionType PositionAlgorithm<Strategy>::upstream(EditingBou |
| // in boundary after the last candidate, where endsOfNodeAreVisuallyDistinctPositions(boundary). |
| // FIXME: This function should never be called when the line box tree is dirty. See https://bugs.webkit.org/show_bug.cgi?id=97264 |
| template <typename Strategy> |
| -typename Strategy::PositionType PositionAlgorithm<Strategy>::downstream(EditingBoundaryCrossingRule rule) const |
| +typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::downstream(EditingBoundaryCrossingRule rule) const |
| { |
| Node* startNode = deprecatedNode(); |
| if (!startNode) |
| - return PositionType(); |
| + return PositionAlgorithm<Strategy>(); |
| // iterate forward from there, looking for a qualified position |
| Node* boundary = enclosingVisualBoundary<Strategy>(startNode); |
| // FIXME: PositionIterator should respect Before and After positions. |
| - typename Strategy::PositionIteratorType lastVisible(m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : PositionType(*this)); |
| + typename Strategy::PositionIteratorType lastVisible(m_anchorType == PositionIsAfterAnchor ? createLegacyEditingPosition(m_anchorNode.get(), caretMaxOffset(m_anchorNode.get())) : PositionAlgorithm<Strategy>(*this)); |
| typename Strategy::PositionIteratorType currentPos = lastVisible; |
| bool startEditable = startNode->hasEditableStyle(); |
| Node* lastNode = startNode; |
| @@ -1050,7 +1050,7 @@ bool PositionAlgorithm<Strategy>::isRenderedCharacter() const |
| } |
| template <typename Strategy> |
| -bool PositionAlgorithm<Strategy>::rendersInDifferentPosition(const PositionType &pos) const |
| +bool PositionAlgorithm<Strategy>::rendersInDifferentPosition(const PositionAlgorithm<Strategy> &pos) const |
| { |
| if (isNull() || pos.isNull()) |
| return false; |
| @@ -1178,10 +1178,10 @@ static InlineTextBox* searchAheadForBetterMatch(LayoutObject* layoutObject) |
| return 0; |
| } |
| -template <typename PositionType> |
| -PositionType downstreamIgnoringEditingBoundaries(PositionType position) |
| +template <typename Strategy> |
| +PositionAlgorithm<Strategy> downstreamIgnoringEditingBoundaries(PositionAlgorithm<Strategy> position) |
| { |
| - PositionType lastPosition; |
| + PositionAlgorithm<Strategy> lastPosition; |
| while (position != lastPosition) { |
| lastPosition = position; |
| position = position.downstream(CanCrossEditingBoundary); |
| @@ -1189,10 +1189,10 @@ PositionType downstreamIgnoringEditingBoundaries(PositionType position) |
| return position; |
| } |
| -template <typename PositionType> |
| -PositionType upstreamIgnoringEditingBoundaries(PositionType position) |
| +template <typename Strategy> |
| +PositionAlgorithm<Strategy> upstreamIgnoringEditingBoundaries(PositionAlgorithm<Strategy> position) |
| { |
| - PositionType lastPosition; |
| + PositionAlgorithm<Strategy> lastPosition; |
| while (position != lastPosition) { |
| lastPosition = position; |
| position = position.upstream(CanCrossEditingBoundary); |
| @@ -1212,11 +1212,11 @@ void PositionAlgorithm<Strategy>::getInlineBoxAndOffset(EAffinity affinity, Text |
| // Try a visually equivalent position with possibly opposite editability. This helps in case |this| is in |
| // an editable block but surrounded by non-editable positions. It acts to negate the logic at the beginning |
| // of LayoutObject::createVisiblePosition(). |
| - PositionType thisPosition = PositionType(*this); |
| - PositionType equivalent = downstreamIgnoringEditingBoundaries<typename Strategy::PositionType>(thisPosition); |
| + PositionAlgorithm<Strategy> thisPosition = PositionAlgorithm<Strategy>(*this); |
| + PositionAlgorithm<Strategy> equivalent = downstreamIgnoringEditingBoundaries(thisPosition); |
| if (equivalent == thisPosition) { |
| equivalent = upstreamIgnoringEditingBoundaries(thisPosition); |
| - if (equivalent == thisPosition || downstreamIgnoringEditingBoundaries<typename Strategy::PositionType>(equivalent) == thisPosition) |
| + if (equivalent == thisPosition || downstreamIgnoringEditingBoundaries(equivalent) == thisPosition) |
| return; |
| } |