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 |