Index: third_party/WebKit/Source/core/editing/GranularityStrategy.cpp |
diff --git a/third_party/WebKit/Source/core/editing/GranularityStrategy.cpp b/third_party/WebKit/Source/core/editing/GranularityStrategy.cpp |
index b5b5fcd9747eb41bddd86a776cd36e8a18f6524f..2b51dcb4ae864b06f008e1d38d382f6621c7c6ef 100644 |
--- a/third_party/WebKit/Source/core/editing/GranularityStrategy.cpp |
+++ b/third_party/WebKit/Source/core/editing/GranularityStrategy.cpp |
@@ -71,7 +71,11 @@ VisibleSelection CharacterGranularityStrategy::updateExtent( |
if (selection.visibleBase().deepEquivalent() == |
extentPosition.deepEquivalent()) |
return selection; |
- return createVisibleSelection(selection.visibleBase(), extentPosition); |
+ return createVisibleSelection(SelectionInDOMTree::Builder() |
+ .collapse(selection.base()) |
+ .extend(extentPosition.deepEquivalent()) |
+ .setAffinity(selection.affinity()) |
+ .build()); |
} |
DirectionGranularityStrategy::DirectionGranularityStrategy() |
@@ -147,8 +151,12 @@ VisibleSelection DirectionGranularityStrategy::updateExtent( |
// without a line change. |
if (verticalChange && |
inSameLine(newOffsetExtentPosition, oldOffsetExtentPosition)) { |
- return createVisibleSelection(selection.visibleBase(), |
- newOffsetExtentPosition); |
+ return createVisibleSelection( |
+ SelectionInDOMTree::Builder() |
+ .collapse(selection.base()) |
+ .extend(newOffsetExtentPosition.deepEquivalent()) |
+ .setAffinity(selection.affinity()) |
+ .build()); |
} |
int oldExtentBaseOrder = selection.isBaseFirst() ? 1 : -1; |