OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/accessibility/renderer_accessibility.h" | 5 #include "content/renderer/accessibility/renderer_accessibility.h" |
6 | 6 |
7 #include <queue> | 7 #include <queue> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
95 bool RendererAccessibility::OnMessageReceived(const IPC::Message& message) { | 95 bool RendererAccessibility::OnMessageReceived(const IPC::Message& message) { |
96 bool handled = true; | 96 bool handled = true; |
97 IPC_BEGIN_MESSAGE_MAP(RendererAccessibility, message) | 97 IPC_BEGIN_MESSAGE_MAP(RendererAccessibility, message) |
98 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetFocus, OnSetFocus) | 98 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetFocus, OnSetFocus) |
99 IPC_MESSAGE_HANDLER(AccessibilityMsg_DoDefaultAction, OnDoDefaultAction) | 99 IPC_MESSAGE_HANDLER(AccessibilityMsg_DoDefaultAction, OnDoDefaultAction) |
100 IPC_MESSAGE_HANDLER(AccessibilityMsg_Events_ACK, OnEventsAck) | 100 IPC_MESSAGE_HANDLER(AccessibilityMsg_Events_ACK, OnEventsAck) |
101 IPC_MESSAGE_HANDLER(AccessibilityMsg_ScrollToMakeVisible, | 101 IPC_MESSAGE_HANDLER(AccessibilityMsg_ScrollToMakeVisible, |
102 OnScrollToMakeVisible) | 102 OnScrollToMakeVisible) |
103 IPC_MESSAGE_HANDLER(AccessibilityMsg_ScrollToPoint, OnScrollToPoint) | 103 IPC_MESSAGE_HANDLER(AccessibilityMsg_ScrollToPoint, OnScrollToPoint) |
104 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetScrollOffset, OnSetScrollOffset) | 104 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetScrollOffset, OnSetScrollOffset) |
105 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetTextSelection, OnSetTextSelection) | 105 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetSelection, OnSetSelection) |
106 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetValue, OnSetValue) | 106 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetValue, OnSetValue) |
107 IPC_MESSAGE_HANDLER(AccessibilityMsg_ShowContextMenu, OnShowContextMenu) | 107 IPC_MESSAGE_HANDLER(AccessibilityMsg_ShowContextMenu, OnShowContextMenu) |
108 IPC_MESSAGE_HANDLER(AccessibilityMsg_HitTest, OnHitTest) | 108 IPC_MESSAGE_HANDLER(AccessibilityMsg_HitTest, OnHitTest) |
109 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetAccessibilityFocus, | 109 IPC_MESSAGE_HANDLER(AccessibilityMsg_SetAccessibilityFocus, |
110 OnSetAccessibilityFocus) | 110 OnSetAccessibilityFocus) |
111 IPC_MESSAGE_HANDLER(AccessibilityMsg_Reset, OnReset) | 111 IPC_MESSAGE_HANDLER(AccessibilityMsg_Reset, OnReset) |
112 IPC_MESSAGE_HANDLER(AccessibilityMsg_FatalError, OnFatalError) | 112 IPC_MESSAGE_HANDLER(AccessibilityMsg_FatalError, OnFatalError) |
113 IPC_MESSAGE_UNHANDLED(handled = false) | 113 IPC_MESSAGE_UNHANDLED(handled = false) |
114 IPC_END_MESSAGE_MAP() | 114 IPC_END_MESSAGE_MAP() |
115 return handled; | 115 return handled; |
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
495 } | 495 } |
496 | 496 |
497 // By convention, calling SetFocus on the root of the tree should clear the | 497 // By convention, calling SetFocus on the root of the tree should clear the |
498 // current focus. Otherwise set the focus to the new node. | 498 // current focus. Otherwise set the focus to the new node. |
499 if (acc_obj_id == root.axID()) | 499 if (acc_obj_id == root.axID()) |
500 render_frame_->GetRenderView()->GetWebView()->clearFocusedElement(); | 500 render_frame_->GetRenderView()->GetWebView()->clearFocusedElement(); |
501 else | 501 else |
502 obj.setFocused(true); | 502 obj.setFocused(true); |
503 } | 503 } |
504 | 504 |
505 void RendererAccessibility::OnSetTextSelection( | 505 void RendererAccessibility::OnSetSelection( |
506 int acc_obj_id, int start_offset, int end_offset) { | 506 int anchor_acc_obj_id, int anchor_offset, |
nasko
2015/09/23 16:08:34
Each parameter on a new line.
| |
507 int focus_acc_obj_id, int focus_offset) { | |
507 const WebDocument& document = GetMainDocument(); | 508 const WebDocument& document = GetMainDocument(); |
508 if (document.isNull()) | 509 if (document.isNull()) |
509 return; | 510 return; |
510 | 511 |
511 WebAXObject obj = document.accessibilityObjectFromID(acc_obj_id); | 512 WebAXObject anchor_obj = |
512 if (obj.isDetached()) { | 513 document.accessibilityObjectFromID(anchor_acc_obj_id); |
514 if (anchor_obj.isDetached()) { | |
513 #ifndef NDEBUG | 515 #ifndef NDEBUG |
514 LOG(WARNING) << "SetTextSelection on invalid object id " << acc_obj_id; | 516 LOG(WARNING) << "SetTextSelection on invalid object id " |
517 << anchor_acc_obj_id; | |
515 #endif | 518 #endif |
516 return; | 519 return; |
517 } | 520 } |
518 | 521 |
519 obj.setSelectedTextRange(start_offset, end_offset); | 522 WebAXObject focus_obj = |
523 document.accessibilityObjectFromID(focus_acc_obj_id); | |
524 if (focus_obj.isDetached()) { | |
525 #ifndef NDEBUG | |
526 LOG(WARNING) << "SetTextSelection on invalid object id " | |
527 << focus_acc_obj_id; | |
528 #endif | |
529 return; | |
530 } | |
531 | |
532 anchor_obj.setSelection(anchor_obj, anchor_offset, focus_obj, focus_offset); | |
520 WebAXObject root = document.accessibilityObject(); | 533 WebAXObject root = document.accessibilityObject(); |
521 if (root.isDetached()) { | 534 if (root.isDetached()) { |
522 #ifndef NDEBUG | 535 #ifndef NDEBUG |
523 LOG(WARNING) << "OnSetAccessibilityFocus but root is invalid"; | 536 LOG(WARNING) << "OnSetAccessibilityFocus but root is invalid"; |
524 #endif | 537 #endif |
525 return; | 538 return; |
526 } | 539 } |
527 HandleAXEvent(root, ui::AX_EVENT_LAYOUT_COMPLETE); | 540 HandleAXEvent(root, ui::AX_EVENT_LAYOUT_COMPLETE); |
528 } | 541 } |
529 | 542 |
(...skipping 26 matching lines...) Expand all Loading... | |
556 #ifndef NDEBUG | 569 #ifndef NDEBUG |
557 LOG(WARNING) << "ShowContextMenu on invalid object id " << acc_obj_id; | 570 LOG(WARNING) << "ShowContextMenu on invalid object id " << acc_obj_id; |
558 #endif | 571 #endif |
559 return; | 572 return; |
560 } | 573 } |
561 | 574 |
562 obj.showContextMenu(); | 575 obj.showContextMenu(); |
563 } | 576 } |
564 | 577 |
565 } // namespace content | 578 } // namespace content |
OLD | NEW |