| Index: third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| diff --git a/third_party/WebKit/Source/core/editing/SelectionController.cpp b/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| index d8383c49c95d47414bc2ac2fa4fbbff8c4a79458..79d43e54169fab9189a6e3e5fd59249023152792 100644
|
| --- a/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| +++ b/third_party/WebKit/Source/core/editing/SelectionController.cpp
|
| @@ -140,7 +140,7 @@ Document& SelectionController::GetDocument() const {
|
| }
|
|
|
| void SelectionController::ContextDestroyed(Document*) {
|
| - original_base_in_flat_tree_ = VisiblePositionInFlatTree();
|
| + original_base_in_flat_tree_ = PositionInFlatTreeWithAffinity();
|
| }
|
|
|
| static PositionInFlatTree AdjustPositionRespectUserSelectAll(
|
| @@ -729,8 +729,10 @@ void SelectionController::SetNonDirectionalSelectionIfNeeded(
|
|
|
| const VisibleSelectionInFlatTree& new_selection =
|
| CreateVisibleSelection(passed_selection);
|
| + // TODO(editing-dev): We should use |PositionWithAffinity| to pass affinity
|
| + // to |CreateVisiblePosition()| for |original_base|.
|
| const PositionInFlatTree& base_position =
|
| - original_base_in_flat_tree_.DeepEquivalent();
|
| + original_base_in_flat_tree_.GetPosition();
|
| const VisiblePositionInFlatTree& original_base =
|
| base_position.IsConnected() ? CreateVisiblePosition(base_position)
|
| : VisiblePositionInFlatTree();
|
| @@ -750,7 +752,7 @@ void SelectionController::SetNonDirectionalSelectionIfNeeded(
|
| SelectionInFlatTree::Builder builder(new_selection.AsSelection());
|
| if (adjusted_selection.Base() != base.DeepEquivalent() ||
|
| adjusted_selection.Extent() != extent.DeepEquivalent()) {
|
| - original_base_in_flat_tree_ = base;
|
| + original_base_in_flat_tree_ = base.ToPositionWithAffinity();
|
| SetContext(&GetDocument());
|
| builder.SetBaseAndExtent(adjusted_selection.Base(),
|
| adjusted_selection.Extent());
|
| @@ -760,7 +762,7 @@ void SelectionController::SetNonDirectionalSelectionIfNeeded(
|
| builder.SetBaseAndExtent(original_base.DeepEquivalent(),
|
| new_selection.Extent());
|
| }
|
| - original_base_in_flat_tree_ = VisiblePositionInFlatTree();
|
| + original_base_in_flat_tree_ = PositionInFlatTreeWithAffinity();
|
| }
|
|
|
| builder.SetIsHandleVisible(handle_visibility == HandleVisibility::kVisible)
|
|
|