| Index: Source/core/editing/Position.cpp
|
| diff --git a/Source/core/editing/Position.cpp b/Source/core/editing/Position.cpp
|
| index 8867439f73ea045d302dd24d7505f2afa5d21f2b..1fc731fd055c8229debfb37bfd840b0b29581dd7 100644
|
| --- a/Source/core/editing/Position.cpp
|
| +++ b/Source/core/editing/Position.cpp
|
| @@ -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
|
|
|