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/browser/accessibility/browser_accessibility_manager.h" | 5 #include "content/browser/accessibility/browser_accessibility_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
510 } | 510 } |
511 | 511 |
512 if (active_descendant) | 512 if (active_descendant) |
513 return active_descendant; | 513 return active_descendant; |
514 | 514 |
515 return focus; | 515 return focus; |
516 } | 516 } |
517 | 517 |
518 bool BrowserAccessibilityManager::NativeViewHasFocus() { | 518 bool BrowserAccessibilityManager::NativeViewHasFocus() { |
519 BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager(); | 519 BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager(); |
520 if (delegate) | 520 return delegate && delegate->AccessibilityViewHasFocus(); |
521 return delegate->AccessibilityViewHasFocus(); | |
522 return false; | |
523 } | 521 } |
524 | 522 |
525 BrowserAccessibility* BrowserAccessibilityManager::GetFocus() { | 523 BrowserAccessibility* BrowserAccessibilityManager::GetFocus() { |
526 BrowserAccessibilityManager* root_manager = GetRootManager(); | 524 BrowserAccessibilityManager* root_manager = GetRootManager(); |
527 if (!root_manager) | 525 if (!root_manager) |
528 root_manager = this; | 526 root_manager = this; |
529 int32_t focused_tree_id = root_manager->GetTreeData().focused_tree_id; | 527 int32_t focused_tree_id = root_manager->GetTreeData().focused_tree_id; |
530 | 528 |
531 BrowserAccessibilityManager* focused_manager = nullptr; | 529 BrowserAccessibilityManager* focused_manager = nullptr; |
532 if (focused_tree_id) | 530 if (focused_tree_id) |
533 focused_manager =BrowserAccessibilityManager::FromID(focused_tree_id); | 531 focused_manager = BrowserAccessibilityManager::FromID(focused_tree_id); |
534 | 532 |
535 // BrowserAccessibilityManager::FromID(focused_tree_id) may return nullptr | 533 // BrowserAccessibilityManager::FromID(focused_tree_id) may return nullptr |
536 // if the tree is not created or has been destroyed. | 534 // if the tree is not created or has been destroyed. |
537 if (!focused_manager) | 535 if (!focused_manager) |
538 focused_manager = root_manager; | 536 focused_manager = root_manager; |
539 | 537 |
540 return focused_manager->GetFocusFromThisOrDescendantFrame(); | 538 return focused_manager->GetFocusFromThisOrDescendantFrame(); |
541 } | 539 } |
542 | 540 |
543 BrowserAccessibility* | 541 BrowserAccessibility* |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 if (start_offset < static_cast<int>(start_text_object->GetText().length())) { | 844 if (start_offset < static_cast<int>(start_text_object->GetText().length())) { |
847 text += start_text_object->GetText().substr(start_offset); | 845 text += start_text_object->GetText().substr(start_offset); |
848 } else { | 846 } else { |
849 text += start_text_object->GetText(); | 847 text += start_text_object->GetText(); |
850 } | 848 } |
851 | 849 |
852 for (size_t i = 1; i < text_only_objects.size() - 1; ++i) { | 850 for (size_t i = 1; i < text_only_objects.size() - 1; ++i) { |
853 text += text_only_objects[i]->GetText(); | 851 text += text_only_objects[i]->GetText(); |
854 } | 852 } |
855 | 853 |
856 const BrowserAccessibility* end_text_object = | 854 const BrowserAccessibility* end_text_object = text_only_objects.back(); |
857 text_only_objects[text_only_objects.size() - 1]; | |
858 if (end_offset <= static_cast<int>(end_text_object->GetText().length())) { | 855 if (end_offset <= static_cast<int>(end_text_object->GetText().length())) { |
859 text += end_text_object->GetText().substr(0, end_offset); | 856 text += end_text_object->GetText().substr(0, end_offset); |
860 } else { | 857 } else { |
861 text += end_text_object->GetText(); | 858 text += end_text_object->GetText(); |
862 } | 859 } |
863 | 860 |
864 return text; | 861 return text; |
865 } | 862 } |
866 | 863 |
867 void BrowserAccessibilityManager::OnNodeDataWillChange( | 864 void BrowserAccessibilityManager::OnNodeDataWillChange( |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
952 tree_source(tree_->CreateTreeSource()); | 949 tree_source(tree_->CreateTreeSource()); |
953 ui::AXTreeSerializer<const ui::AXNode*, | 950 ui::AXTreeSerializer<const ui::AXNode*, |
954 ui::AXNodeData, | 951 ui::AXNodeData, |
955 ui::AXTreeData> serializer(tree_source.get()); | 952 ui::AXTreeData> serializer(tree_source.get()); |
956 ui::AXTreeUpdate update; | 953 ui::AXTreeUpdate update; |
957 serializer.SerializeChanges(tree_->root(), &update); | 954 serializer.SerializeChanges(tree_->root(), &update); |
958 return update; | 955 return update; |
959 } | 956 } |
960 | 957 |
961 } // namespace content | 958 } // namespace content |
OLD | NEW |