Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: Source/core/dom/Position.h

Issue 1212253002: [CodeHealth] Use PositionStrategy<Strategy> instead of using ::PositionType (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: nit Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/core/dom/Position.cpp » ('j') | Source/core/dom/Position.cpp » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/Position.h
diff --git a/Source/core/dom/Position.h b/Source/core/dom/Position.h
index cb4e4ad1a7173f4a335c3ebdcf8884fc48cd2547..017c7594380f017644a65fd3cea26235f6239efd 100644
--- a/Source/core/dom/Position.h
+++ b/Source/core/dom/Position.h
@@ -57,7 +57,6 @@ template <typename Strategy>
class CORE_TEMPLATE_CLASS_EXPORT PositionAlgorithm {
DISALLOW_ALLOCATION();
public:
- using PositionType = typename Strategy::PositionType;
using StrategyType = Strategy;
enum AnchorType : unsigned char {
@@ -86,8 +85,8 @@ public:
int m_offset;
};
- static const TreeScope* commonAncestorTreeScope(const PositionType&, const PositionType& b);
- static PositionType createLegacyEditingPosition(PassRefPtrWillBeRawPtr<Node> anchorNode, int offset);
+ static const TreeScope* commonAncestorTreeScope(const PositionAlgorithm<Strategy>&, const PositionAlgorithm<Strategy>& b);
+ static PositionAlgorithm<Strategy> createLegacyEditingPosition(PassRefPtrWillBeRawPtr<Node> anchorNode, int offset);
PositionAlgorithm(PassRefPtrWillBeRawPtr<Node> anchorNode, LegacyEditingOffset);
@@ -111,13 +110,13 @@ public:
Text* containerText() const;
int computeOffsetInContainerNode() const; // O(n) for before/after-anchored positions, O(1) for parent-anchored positions
- PositionType parentAnchoredEquivalent() const; // Convenience method for DOM positions that also fixes up some positions for editing
+ PositionAlgorithm<Strategy> parentAnchoredEquivalent() const; // Convenience method for DOM positions that also fixes up some positions for editing
// Returns |PositionIsAnchor| type |Position| which is compatible with
// |RangeBoundaryPoint| as safe to pass |Range| constructor. Return value
// of this function is different from |parentAnchoredEquivalent()| which
// returns editing specific position.
- PositionType toOffsetInAnchor() const;
+ PositionAlgorithm<Strategy> toOffsetInAnchor() const;
// Inline O(1) access for Positions which callers know to be parent-anchored
int offsetInContainerNode() const
@@ -151,7 +150,7 @@ public:
// behave as |Range| boundary point.
Node* nodeAsRangePastLastNode() const;
- Node* commonAncestorContainer(const PositionType&) const;
+ Node* commonAncestorContainer(const PositionAlgorithm<Strategy>&) const;
Node* anchorNode() const { return m_anchorNode.get(); }
@@ -183,13 +182,13 @@ public:
// Move up or down the DOM by one position.
// Offsets are computed using layout text for nodes that have layoutObjects - but note that even when
// using composed characters, the result may be inside a single user-visible character if a ligature is formed.
- PositionType previous(PositionMoveType = CodePoint) const;
- PositionType next(PositionMoveType = CodePoint) const;
+ PositionAlgorithm<Strategy> previous(PositionMoveType = CodePoint) const;
+ PositionAlgorithm<Strategy> next(PositionMoveType = CodePoint) const;
static int uncheckedPreviousOffset(const Node*, int current);
static int uncheckedPreviousOffsetForBackwardDeletion(const Node*, int current);
static int uncheckedNextOffset(const Node*, int current);
- int compareTo(const PositionType&) const;
+ int compareTo(const PositionAlgorithm<Strategy>&) const;
// These can be either inside or just before/after the node, depending on
// if the node is ignored by editing or not.
@@ -205,13 +204,13 @@ public:
bool atEndOfTree() const;
// These return useful visually equivalent positions.
- PositionType upstream(EditingBoundaryCrossingRule = CannotCrossEditingBoundary) const;
- PositionType downstream(EditingBoundaryCrossingRule = CannotCrossEditingBoundary) const;
+ PositionAlgorithm<Strategy> upstream(EditingBoundaryCrossingRule = CannotCrossEditingBoundary) const;
+ PositionAlgorithm<Strategy> downstream(EditingBoundaryCrossingRule = CannotCrossEditingBoundary) const;
bool isCandidate() const;
bool inRenderedText() const;
bool isRenderedCharacter() const;
- bool rendersInDifferentPosition(const PositionType&) const;
+ bool rendersInDifferentPosition(const PositionAlgorithm<Strategy>&) const;
void getInlineBoxAndOffset(EAffinity, InlineBox*&, int& caretOffset) const;
void getInlineBoxAndOffset(EAffinity, TextDirection primaryDirection, InlineBox*&, int& caretOffset) const;
@@ -222,17 +221,17 @@ public:
static bool nodeIsUserSelectNone(Node*);
static bool nodeIsUserSelectAll(const Node*);
static Node* rootUserSelectAllForNode(Node*);
- static PositionType beforeNode(Node* anchorNode);
- static PositionType afterNode(Node* anchorNode);
- static PositionType inParentBeforeNode(const Node& anchorNode);
- static PositionType inParentAfterNode(const Node& anchorNode);
+ static PositionAlgorithm<Strategy> beforeNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> afterNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> inParentBeforeNode(const Node& anchorNode);
+ static PositionAlgorithm<Strategy> inParentAfterNode(const Node& anchorNode);
static int lastOffsetInNode(Node* anchorNode);
- static PositionType firstPositionInNode(Node* anchorNode);
- static PositionType lastPositionInNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> firstPositionInNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> lastPositionInNode(Node* anchorNode);
static int minOffsetForNode(Node* anchorNode, int offset);
static bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode);
- static PositionType firstPositionInOrBeforeNode(Node* anchorNode);
- static PositionType lastPositionInOrAfterNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> firstPositionInOrBeforeNode(Node* anchorNode);
+ static PositionAlgorithm<Strategy> lastPositionInOrAfterNode(Node* anchorNode);
void debugPosition(const char* msg = "") const;
@@ -271,9 +270,9 @@ using Position = PositionAlgorithm<EditingStrategy>;
using PositionInComposedTree = PositionAlgorithm<EditingInComposedTreeStrategy>;
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::createLegacyEditingPosition(PassRefPtrWillBeRawPtr<Node> node, int offset)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::createLegacyEditingPosition(PassRefPtrWillBeRawPtr<Node> node, int offset)
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.
{
- return PositionType(node, PositionAlgorithm::LegacyEditingOffset(offset));
+ return PositionAlgorithm<Strategy>(node, PositionAlgorithm::LegacyEditingOffset(offset));
}
inline Position createLegacyEditingPosition(PassRefPtrWillBeRawPtr<Node> node, int offset)
@@ -311,13 +310,13 @@ bool operator!=(const PositionAlgorithm<Strategy>& a, const PositionAlgorithm<St
// If we ever add a PassPosition we can make these non-inline.
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::inParentBeforeNode(const Node& node)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::inParentBeforeNode(const Node& node)
{
// FIXME: This should ASSERT(node.parentNode())
// At least one caller currently hits this ASSERT though, which indicates
// that the caller is trying to make a position relative to a disconnected node (which is likely an error)
// Specifically, editing/deleting/delete-ligature-001.html crashes with ASSERT(node->parentNode())
- return PositionType(Strategy::parent(node), Strategy::index(node), PositionIsOffsetInAnchor);
+ return PositionAlgorithm<Strategy>(Strategy::parent(node), Strategy::index(node), PositionIsOffsetInAnchor);
}
inline Position positionInParentBeforeNode(const Node& node)
@@ -326,10 +325,10 @@ inline Position positionInParentBeforeNode(const Node& node)
}
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::inParentAfterNode(const Node& node)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::inParentAfterNode(const Node& node)
{
ASSERT(node.parentNode());
- return PositionType(Strategy::parent(node), Strategy::index(node) + 1, PositionIsOffsetInAnchor);
+ return PositionAlgorithm<Strategy>(Strategy::parent(node), Strategy::index(node) + 1, PositionIsOffsetInAnchor);
}
inline Position positionInParentAfterNode(const Node& node)
@@ -339,10 +338,10 @@ inline Position positionInParentAfterNode(const Node& node)
// positionBeforeNode and positionAfterNode return neighbor-anchored positions, construction is O(1)
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::beforeNode(Node* anchorNode)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::beforeNode(Node* anchorNode)
{
ASSERT(anchorNode);
- return PositionType(anchorNode, PositionIsBeforeAnchor);
+ return PositionAlgorithm<Strategy>(anchorNode, PositionIsBeforeAnchor);
}
inline Position positionBeforeNode(Node* anchorNode)
@@ -351,10 +350,10 @@ inline Position positionBeforeNode(Node* anchorNode)
}
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::afterNode(Node* anchorNode)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::afterNode(Node* anchorNode)
{
ASSERT(anchorNode);
- return PositionType(anchorNode, PositionIsAfterAnchor);
+ return PositionAlgorithm<Strategy>(anchorNode, PositionIsAfterAnchor);
}
inline Position positionAfterNode(Node* anchorNode)
@@ -375,11 +374,11 @@ inline int lastOffsetInNode(Node* node)
// firstPositionInNode and lastPositionInNode return parent-anchored positions, lastPositionInNode construction is O(n) due to countChildren()
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::firstPositionInNode(Node* anchorNode)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::firstPositionInNode(Node* anchorNode)
{
if (anchorNode->isTextNode())
- return PositionType(anchorNode, 0, PositionIsOffsetInAnchor);
- return PositionType(anchorNode, PositionIsBeforeChildren);
+ return PositionAlgorithm<Strategy>(anchorNode, 0, PositionIsOffsetInAnchor);
+ return PositionAlgorithm<Strategy>(anchorNode, PositionIsBeforeChildren);
}
inline Position firstPositionInNode(Node* anchorNode)
@@ -388,11 +387,11 @@ inline Position firstPositionInNode(Node* anchorNode)
}
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::lastPositionInNode(Node* anchorNode)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::lastPositionInNode(Node* anchorNode)
{
if (anchorNode->isTextNode())
- return PositionType(anchorNode, lastOffsetInNode(anchorNode), PositionIsOffsetInAnchor);
- return PositionType(anchorNode, PositionIsAfterChildren);
+ return PositionAlgorithm<Strategy>(anchorNode, lastOffsetInNode(anchorNode), PositionIsOffsetInAnchor);
+ return PositionAlgorithm<Strategy>(anchorNode, PositionIsAfterChildren);
}
inline Position lastPositionInNode(Node* anchorNode)
@@ -437,18 +436,18 @@ inline bool offsetIsBeforeLastNodeOffset(int offset, Node* anchorNode)
}
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::firstPositionInOrBeforeNode(Node* node)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::firstPositionInOrBeforeNode(Node* node)
{
if (!node)
- return PositionType();
+ return PositionAlgorithm<Strategy>();
return Strategy::editingIgnoresContent(node) ? beforeNode(node) : firstPositionInNode(node);
}
template <typename Strategy>
-typename Strategy::PositionType PositionAlgorithm<Strategy>::lastPositionInOrAfterNode(Node* node)
+typename PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::lastPositionInOrAfterNode(Node* node)
{
if (!node)
- return PositionType();
+ return PositionAlgorithm<Strategy>();
return Strategy::editingIgnoresContent(node) ? afterNode(node) : lastPositionInNode(node);
}
« no previous file with comments | « no previous file | Source/core/dom/Position.cpp » ('j') | Source/core/dom/Position.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698