Chromium Code Reviews| 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 |