Commit 74c5761f authored by yosin@chromium.org's avatar yosin@chromium.org

Move a member function parentEditingBoundary() out from PositionAlgorithm<Strategy> template class

This patch moves a member function |parentEditingBoundary()| in
|PositionAlgorithm<Strategy>| template class for a preparation of making it
as static function in "VisibileUnits.cpp" since it is used only in
"VisibileUnits.cpp".

BUG=518738
TEST=n/a; no behavior changes

Review URL: https://codereview.chromium.org/1298233004

git-svn-id: svn://svn.chromium.org/blink/trunk@200827 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 54d78bab
......@@ -470,22 +470,32 @@ static ContainerNode* nonShadowBoundaryParentNode(Node* node)
}
template <typename Strategy>
Node* PositionAlgorithm<Strategy>::parentEditingBoundary() const
static Node* parentEditingBoundaryAlgorithm(const PositionAlgorithm<Strategy>& position)
{
if (!m_anchorNode)
return 0;
Node* const anchorNode = position.anchorNode();
if (!anchorNode)
return nullptr;
Node* documentElement = m_anchorNode->document().documentElement();
Node* documentElement = anchorNode->document().documentElement();
if (!documentElement)
return 0;
return nullptr;
Node* boundary = computeContainerNode();
while (boundary != documentElement && nonShadowBoundaryParentNode<Strategy>(boundary) && m_anchorNode->hasEditableStyle() == Strategy::parent(*boundary)->hasEditableStyle())
Node* boundary = position.computeContainerNode();
while (boundary != documentElement && nonShadowBoundaryParentNode<Strategy>(boundary) && anchorNode->hasEditableStyle() == Strategy::parent(*boundary)->hasEditableStyle())
boundary = nonShadowBoundaryParentNode<Strategy>(boundary);
return boundary;
}
Node* parentEditingBoundary(const Position& position)
{
return parentEditingBoundaryAlgorithm<EditingStrategy>(position);
}
Node* parentEditingBoundary(const PositionInComposedTree& position)
{
return parentEditingBoundaryAlgorithm<EditingInComposedTreeStrategy>(position);
}
template <typename Strategy>
bool PositionAlgorithm<Strategy>::atStartOfTree() const
......
......@@ -182,8 +182,6 @@ public:
bool atFirstEditingPositionForNode() const;
bool atLastEditingPositionForNode() const;
Node* parentEditingBoundary() const;
bool atStartOfTree() const;
bool atEndOfTree() const;
......@@ -252,6 +250,11 @@ using PositionInComposedTree = PositionAlgorithm<EditingInComposedTreeStrategy>;
// since it is used only in "editing/commands/"
CORE_EXPORT bool isRenderedCharacter(const Position&);
// TODO(yosin) We should make |parentEditingBoundary()| as static function
// in "VisibleUnits.cpp", since it is used only there.
CORE_EXPORT Node* parentEditingBoundary(const Position&);
CORE_EXPORT Node* parentEditingBoundary(const PositionInComposedTree&);
template <typename Strategy>
bool operator==(const PositionAlgorithm<Strategy>& a, const PositionAlgorithm<Strategy>& b)
{
......
......@@ -460,7 +460,7 @@ typedef unsigned (*BoundarySearchFunction)(const UChar*, unsigned length, unsign
static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearchFunction searchFunction)
{
Position pos = c.deepEquivalent();
Node* boundary = pos.parentEditingBoundary();
Node* boundary = parentEditingBoundary(pos);
if (!boundary)
return VisiblePosition();
......@@ -538,7 +538,7 @@ static VisiblePosition previousBoundary(const VisiblePosition& c, BoundarySearch
static VisiblePosition nextBoundary(const VisiblePosition& c, BoundarySearchFunction searchFunction)
{
Position pos = c.deepEquivalent();
Node* boundary = pos.parentEditingBoundary();
Node* boundary = parentEditingBoundary(pos);
if (!boundary)
return VisiblePosition();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment