Index: third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
diff --git a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
index 2cccbc35bf9f0e8bf1c4a3d7fa8f155c876f9869..a5bec35539ccae9822b74c3afc8e2c8aecba86a4 100644 |
--- a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
+++ b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
@@ -1951,8 +1951,16 @@ void AXLayoutObject::setSelection(const AXRange& selection) { |
if (anchorVisiblePosition.isNull() || focusVisiblePosition.isNull()) |
return; |
- frame->selection().setSelection( |
- createVisibleSelection(anchorVisiblePosition, focusVisiblePosition)); |
+ SelectionInDOMTree::Builder builder; |
+ if (anchorVisiblePosition.isNotNull() && focusVisiblePosition.isNotNull()) { |
Xiaocheng
2016/10/21 11:18:36
No need for these branches as L1951 have ensured n
yosin_UTC9
2016/10/24 06:19:44
I missed... :-<
|
+ builder.collapse(anchorVisiblePosition.toPositionWithAffinity()); |
+ builder.extend(focusVisiblePosition.deepEquivalent()); |
+ } else if (anchorVisiblePosition.isNotNull()) { |
+ builder.collapse(anchorVisiblePosition.toPositionWithAffinity()); |
+ } else { |
+ builder.collapse(focusVisiblePosition.toPositionWithAffinity()); |
+ } |
+ frame->selection().setSelection(createVisibleSelection(builder.build())); |
Xiaocheng
2016/10/21 11:18:36
We should use the FrameSelection::setSelection(Sel
yosin_UTC9
2016/10/24 06:19:44
Good catch!
Done
|
} |
bool AXLayoutObject::isValidSelectionBound(const AXObject* boundObject) const { |