Chromium Code Reviews| Index: content/renderer/accessibility/renderer_accessibility.cc |
| diff --git a/content/renderer/accessibility/renderer_accessibility.cc b/content/renderer/accessibility/renderer_accessibility.cc |
| index 812af620fca0a7fe15f92977ab3117e9351f41d8..aeea0752288cae03a4d255f257b6bf9fbb8c4cb3 100644 |
| --- a/content/renderer/accessibility/renderer_accessibility.cc |
| +++ b/content/renderer/accessibility/renderer_accessibility.cc |
| @@ -102,7 +102,7 @@ bool RendererAccessibility::OnMessageReceived(const IPC::Message& message) { |
| OnScrollToMakeVisible) |
| IPC_MESSAGE_HANDLER(AccessibilityMsg_ScrollToPoint, OnScrollToPoint) |
| IPC_MESSAGE_HANDLER(AccessibilityMsg_SetScrollOffset, OnSetScrollOffset) |
| - IPC_MESSAGE_HANDLER(AccessibilityMsg_SetTextSelection, OnSetTextSelection) |
| + IPC_MESSAGE_HANDLER(AccessibilityMsg_SetSelection, OnSetSelection) |
| IPC_MESSAGE_HANDLER(AccessibilityMsg_SetValue, OnSetValue) |
| IPC_MESSAGE_HANDLER(AccessibilityMsg_ShowContextMenu, OnShowContextMenu) |
| IPC_MESSAGE_HANDLER(AccessibilityMsg_HitTest, OnHitTest) |
| @@ -502,21 +502,34 @@ void RendererAccessibility::OnSetFocus(int acc_obj_id) { |
| obj.setFocused(true); |
| } |
| -void RendererAccessibility::OnSetTextSelection( |
| - int acc_obj_id, int start_offset, int end_offset) { |
| +void RendererAccessibility::OnSetSelection( |
| + int anchor_acc_obj_id, int anchor_offset, |
|
nasko
2015/09/23 16:08:34
Each parameter on a new line.
|
| + int focus_acc_obj_id, int focus_offset) { |
| const WebDocument& document = GetMainDocument(); |
| if (document.isNull()) |
| return; |
| - WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id); |
| - if (obj.isDetached()) { |
| + WebAXObject anchor_obj = |
| + document.accessibilityObjectFromID(anchor_acc_obj_id); |
| + if (anchor_obj.isDetached()) { |
| #ifndef NDEBUG |
| - LOG(WARNING) << "SetTextSelection on invalid object id " << acc_obj_id; |
| + LOG(WARNING) << "SetTextSelection on invalid object id " |
| + << anchor_acc_obj_id; |
| +#endif |
| + return; |
| + } |
| + |
| + WebAXObject focus_obj = |
| + document.accessibilityObjectFromID(focus_acc_obj_id); |
| + if (focus_obj.isDetached()) { |
| +#ifndef NDEBUG |
| + LOG(WARNING) << "SetTextSelection on invalid object id " |
| + << focus_acc_obj_id; |
| #endif |
| return; |
| } |
| - obj.setSelectedTextRange(start_offset, end_offset); |
| + anchor_obj.setSelection(anchor_obj, anchor_offset, focus_obj, focus_offset); |
| WebAXObject root = document.accessibilityObject(); |
| if (root.isDetached()) { |
| #ifndef NDEBUG |