| Index: content/renderer/accessibility/renderer_accessibility.cc
|
| diff --git a/content/renderer/accessibility/renderer_accessibility.cc b/content/renderer/accessibility/renderer_accessibility.cc
|
| index 7452337f341aed11d7f8c65aae60272294940962..84b8a10823722a0b79d02039d660ffc2bf52b7ab 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,
|
| + 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
|
|
|