Index: third_party/WebKit/Source/core/editing/SelectionAdjuster.cpp |
diff --git a/third_party/WebKit/Source/core/editing/SelectionAdjuster.cpp b/third_party/WebKit/Source/core/editing/SelectionAdjuster.cpp |
index e9fd2739281d74793dc5f32256271d1ae51c63dc..9d9ea95f5040feec7ebf9794627f590d1496fca5 100644 |
--- a/third_party/WebKit/Source/core/editing/SelectionAdjuster.cpp |
+++ b/third_party/WebKit/Source/core/editing/SelectionAdjuster.cpp |
@@ -33,21 +33,21 @@ namespace { |
Node* enclosingShadowHost(Node* node) |
{ |
- for (Node* runner = node; runner; runner = ComposedTreeTraversal::parent(*runner)) { |
+ for (Node* runner = node; runner; runner = FlatTreeTraversal::parent(*runner)) { |
if (isShadowHost(runner)) |
return runner; |
} |
return nullptr; |
} |
-bool isEnclosedBy(const PositionInComposedTree& position, const Node& node) |
+bool isEnclosedBy(const PositionInFlatTree& position, const Node& node) |
{ |
ASSERT(position.isNotNull()); |
Node* anchorNode = position.anchorNode(); |
if (anchorNode == node) |
return !position.isAfterAnchor() && !position.isBeforeAnchor(); |
- return ComposedTreeTraversal::isDescendantOf(*anchorNode, node); |
+ return FlatTreeTraversal::isDescendantOf(*anchorNode, node); |
} |
bool isSelectionBoundary(const Node& node) |
@@ -55,7 +55,7 @@ bool isSelectionBoundary(const Node& node) |
return isHTMLTextAreaElement(node) || isHTMLInputElement(node) || isHTMLSelectElement(node); |
} |
-Node* enclosingShadowHostForStart(const PositionInComposedTree& position) |
+Node* enclosingShadowHostForStart(const PositionInFlatTree& position) |
{ |
Node* node = position.nodeAsRangeFirstNode(); |
if (!node) |
@@ -68,7 +68,7 @@ Node* enclosingShadowHostForStart(const PositionInComposedTree& position) |
return isSelectionBoundary(*shadowHost) ? shadowHost : nullptr; |
} |
-Node* enclosingShadowHostForEnd(const PositionInComposedTree& position) |
+Node* enclosingShadowHostForEnd(const PositionInFlatTree& position) |
{ |
Node* node = position.nodeAsRangeLastNode(); |
if (!node) |
@@ -81,20 +81,20 @@ Node* enclosingShadowHostForEnd(const PositionInComposedTree& position) |
return isSelectionBoundary(*shadowHost) ? shadowHost : nullptr; |
} |
-PositionInComposedTree adjustPositionInComposedTreeForStart(const PositionInComposedTree& position, Node* shadowHost) |
+PositionInFlatTree adjustPositionInFlatTreeForStart(const PositionInFlatTree& position, Node* shadowHost) |
{ |
if (isEnclosedBy(position, *shadowHost)) { |
if (position.isBeforeChildren()) |
- return PositionInComposedTree::beforeNode(shadowHost); |
- return PositionInComposedTree::afterNode(shadowHost); |
+ return PositionInFlatTree::beforeNode(shadowHost); |
+ return PositionInFlatTree::afterNode(shadowHost); |
} |
// We use |firstChild|'s after instead of beforeAllChildren for backward |
// compatibility. The positions are same but the anchors would be different, |
// and selection painting uses anchor nodes. |
- if (Node* firstChild = ComposedTreeTraversal::firstChild(*shadowHost)) |
- return PositionInComposedTree::beforeNode(firstChild); |
- return PositionInComposedTree(); |
+ if (Node* firstChild = FlatTreeTraversal::firstChild(*shadowHost)) |
+ return PositionInFlatTree::beforeNode(firstChild); |
+ return PositionInFlatTree(); |
} |
Position adjustPositionForEnd(const Position& currentPosition, Node* startContainerNode) |
@@ -115,20 +115,20 @@ Position adjustPositionForEnd(const Position& currentPosition, Node* startContai |
return Position(); |
} |
-PositionInComposedTree adjustPositionInComposedTreeForEnd(const PositionInComposedTree& position, Node* shadowHost) |
+PositionInFlatTree adjustPositionInFlatTreeForEnd(const PositionInFlatTree& position, Node* shadowHost) |
{ |
if (isEnclosedBy(position, *shadowHost)) { |
if (position.isAfterChildren()) |
- return PositionInComposedTree::afterNode(shadowHost); |
- return PositionInComposedTree::beforeNode(shadowHost); |
+ return PositionInFlatTree::afterNode(shadowHost); |
+ return PositionInFlatTree::beforeNode(shadowHost); |
} |
// We use |lastChild|'s after instead of afterAllChildren for backward |
// compatibility. The positions are same but the anchors would be different, |
// and selection painting uses anchor nodes. |
- if (Node* lastChild = ComposedTreeTraversal::lastChild(*shadowHost)) |
- return PositionInComposedTree::afterNode(lastChild); |
- return PositionInComposedTree(); |
+ if (Node* lastChild = FlatTreeTraversal::lastChild(*shadowHost)) |
+ return PositionInFlatTree::afterNode(lastChild); |
+ return PositionInFlatTree(); |
} |
Position adjustPositionForStart(const Position& currentPosition, Node* endContainerNode) |
@@ -151,39 +151,39 @@ Position adjustPositionForStart(const Position& currentPosition, Node* endContai |
} // namespace |
-// Updates |selectionInComposedTree| to match with |selection|. |
-void SelectionAdjuster::adjustSelectionInComposedTree(VisibleSelectionInComposedTree* selectionInComposedTree, const VisibleSelection& selection) |
+// Updates |selectionInFlatTree| to match with |selection|. |
+void SelectionAdjuster::adjustSelectionInFlatTree(VisibleSelectionInFlatTree* selectionInFlatTree, const VisibleSelection& selection) |
{ |
if (selection.isNone()) { |
- *selectionInComposedTree = VisibleSelectionInComposedTree(); |
+ *selectionInFlatTree = VisibleSelectionInFlatTree(); |
return; |
} |
- const PositionInComposedTree& base = toPositionInComposedTree(selection.base()); |
- const PositionInComposedTree& extent = toPositionInComposedTree(selection.extent()); |
- const PositionInComposedTree& position1 = toPositionInComposedTree(selection.start()); |
- const PositionInComposedTree& position2 = toPositionInComposedTree(selection.end()); |
+ const PositionInFlatTree& base = toPositionInFlatTree(selection.base()); |
+ const PositionInFlatTree& extent = toPositionInFlatTree(selection.extent()); |
+ const PositionInFlatTree& position1 = toPositionInFlatTree(selection.start()); |
+ const PositionInFlatTree& position2 = toPositionInFlatTree(selection.end()); |
position1.anchorNode()->updateDistribution(); |
position2.anchorNode()->updateDistribution(); |
- selectionInComposedTree->m_base = base; |
- selectionInComposedTree->m_extent = extent; |
- selectionInComposedTree->m_affinity = selection.m_affinity; |
- selectionInComposedTree->m_isDirectional = selection.m_isDirectional; |
- selectionInComposedTree->m_granularity = selection.m_granularity; |
- selectionInComposedTree->m_hasTrailingWhitespace = selection.m_hasTrailingWhitespace; |
- selectionInComposedTree->m_baseIsFirst = base.isNull() || base.compareTo(extent) <= 0; |
+ selectionInFlatTree->m_base = base; |
+ selectionInFlatTree->m_extent = extent; |
+ selectionInFlatTree->m_affinity = selection.m_affinity; |
+ selectionInFlatTree->m_isDirectional = selection.m_isDirectional; |
+ selectionInFlatTree->m_granularity = selection.m_granularity; |
+ selectionInFlatTree->m_hasTrailingWhitespace = selection.m_hasTrailingWhitespace; |
+ selectionInFlatTree->m_baseIsFirst = base.isNull() || base.compareTo(extent) <= 0; |
if (position1.compareTo(position2) <= 0) { |
- selectionInComposedTree->m_start = position1; |
- selectionInComposedTree->m_end = position2; |
+ selectionInFlatTree->m_start = position1; |
+ selectionInFlatTree->m_end = position2; |
} else { |
- selectionInComposedTree->m_start = position2; |
- selectionInComposedTree->m_end = position1; |
+ selectionInFlatTree->m_start = position2; |
+ selectionInFlatTree->m_end = position1; |
} |
- selectionInComposedTree->updateSelectionType(); |
- selectionInComposedTree->didChange(); |
+ selectionInFlatTree->updateSelectionType(); |
+ selectionInFlatTree->didChange(); |
} |
-static bool isCrossingShadowBoundaries(const VisibleSelectionInComposedTree& selection) |
+static bool isCrossingShadowBoundaries(const VisibleSelectionInFlatTree& selection) |
{ |
if (!selection.isRange()) |
return false; |
@@ -193,29 +193,29 @@ static bool isCrossingShadowBoundaries(const VisibleSelectionInComposedTree& sel |
|| selection.end().anchorNode()->treeScope() != treeScope; |
} |
-void SelectionAdjuster::adjustSelectionInDOMTree(VisibleSelection* selection, const VisibleSelectionInComposedTree& selectionInComposedTree) |
+void SelectionAdjuster::adjustSelectionInDOMTree(VisibleSelection* selection, const VisibleSelectionInFlatTree& selectionInFlatTree) |
{ |
- if (selectionInComposedTree.isNone()) { |
+ if (selectionInFlatTree.isNone()) { |
*selection = VisibleSelection(); |
return; |
} |
- const Position& base = toPositionInDOMTree(selectionInComposedTree.base()); |
- const Position& extent = toPositionInDOMTree(selectionInComposedTree.extent()); |
+ const Position& base = toPositionInDOMTree(selectionInFlatTree.base()); |
+ const Position& extent = toPositionInDOMTree(selectionInFlatTree.extent()); |
- if (isCrossingShadowBoundaries(selectionInComposedTree)) { |
+ if (isCrossingShadowBoundaries(selectionInFlatTree)) { |
*selection = VisibleSelection(base, extent); |
return; |
} |
- const Position& position1 = toPositionInDOMTree(selectionInComposedTree.start()); |
- const Position& position2 = toPositionInDOMTree(selectionInComposedTree.end()); |
+ const Position& position1 = toPositionInDOMTree(selectionInFlatTree.start()); |
+ const Position& position2 = toPositionInDOMTree(selectionInFlatTree.end()); |
selection->m_base = base; |
selection->m_extent = extent; |
- selection->m_affinity = selectionInComposedTree.m_affinity; |
- selection->m_isDirectional = selectionInComposedTree.m_isDirectional; |
- selection->m_granularity = selectionInComposedTree.m_granularity; |
- selection->m_hasTrailingWhitespace = selectionInComposedTree.m_hasTrailingWhitespace; |
+ selection->m_affinity = selectionInFlatTree.m_affinity; |
+ selection->m_isDirectional = selectionInFlatTree.m_isDirectional; |
+ selection->m_granularity = selectionInFlatTree.m_granularity; |
+ selection->m_hasTrailingWhitespace = selectionInFlatTree.m_hasTrailingWhitespace; |
selection->m_baseIsFirst = base.isNull() || base.compareTo(extent) <= 0; |
if (position1.compareTo(position2) <= 0) { |
selection->m_start = position1; |
@@ -256,7 +256,7 @@ void SelectionAdjuster::adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSe |
// This function is called twice. The first is called when |m_start| and |m_end| |
// or |m_extent| are same, and the second when |m_start| and |m_end| are changed |
// after downstream/upstream. |
-void SelectionAdjuster::adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSelectionInComposedTree* selection) |
+void SelectionAdjuster::adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSelectionInFlatTree* selection) |
{ |
Node* const shadowHostStart = enclosingShadowHostForStart(selection->start()); |
Node* const shadowHostEnd = enclosingShadowHostForEnd(selection->end()); |
@@ -265,13 +265,13 @@ void SelectionAdjuster::adjustSelectionToAvoidCrossingShadowBoundaries(VisibleSe |
if (selection->isBaseFirst()) { |
Node* const shadowHost = shadowHostStart ? shadowHostStart : shadowHostEnd; |
- const PositionInComposedTree& newEnd = adjustPositionInComposedTreeForEnd(selection->end(), shadowHost); |
+ const PositionInFlatTree& newEnd = adjustPositionInFlatTreeForEnd(selection->end(), shadowHost); |
selection->m_extent = newEnd; |
selection->m_end = newEnd; |
return; |
} |
Node* const shadowHost = shadowHostEnd ? shadowHostEnd : shadowHostStart; |
- const PositionInComposedTree& newStart = adjustPositionInComposedTreeForStart(selection->start(), shadowHost); |
+ const PositionInFlatTree& newStart = adjustPositionInFlatTreeForStart(selection->start(), shadowHost); |
selection->m_extent = newStart; |
selection->m_start = newStart; |
} |