| 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 "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "content/browser/accessibility/browser_accessibility.h" | 8 #include "content/browser/accessibility/browser_accessibility.h" |
| 9 #include "content/common/accessibility_messages.h" | 9 #include "content/common/accessibility_messages.h" |
| 10 #include "ui/accessibility/ax_tree_serializer.h" | 10 #include "ui/accessibility/ax_tree_serializer.h" |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 ui::AXTreeUpdate BrowserAccessibilityManager::GetEmptyDocument() { | 122 ui::AXTreeUpdate BrowserAccessibilityManager::GetEmptyDocument() { |
| 123 ui::AXNodeData empty_document; | 123 ui::AXNodeData empty_document; |
| 124 empty_document.id = 0; | 124 empty_document.id = 0; |
| 125 empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA; | 125 empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA; |
| 126 ui::AXTreeUpdate update; | 126 ui::AXTreeUpdate update; |
| 127 update.nodes.push_back(empty_document); | 127 update.nodes.push_back(empty_document); |
| 128 return update; | 128 return update; |
| 129 } | 129 } |
| 130 | 130 |
| 131 BrowserAccessibility* BrowserAccessibilityManager::GetRoot() { | 131 BrowserAccessibility* BrowserAccessibilityManager::GetRoot() { |
| 132 return GetFromAXNode(tree_->root()); | 132 // tree_->root() can be null during AXTreeDelegate callbacks. |
| 133 ui::AXNode* root = tree_->root(); |
| 134 return root ? GetFromAXNode(root) : nullptr; |
| 133 } | 135 } |
| 134 | 136 |
| 135 BrowserAccessibility* BrowserAccessibilityManager::GetFromAXNode( | 137 BrowserAccessibility* BrowserAccessibilityManager::GetFromAXNode( |
| 136 ui::AXNode* node) { | 138 ui::AXNode* node) { |
| 137 return GetFromID(node->id()); | 139 return GetFromID(node->id()); |
| 138 } | 140 } |
| 139 | 141 |
| 140 BrowserAccessibility* BrowserAccessibilityManager::GetFromID(int32 id) { | 142 BrowserAccessibility* BrowserAccessibilityManager::GetFromID(int32 id) { |
| 141 base::hash_map<int32, BrowserAccessibility*>::iterator iter = | 143 base::hash_map<int32, BrowserAccessibility*>::iterator iter = |
| 142 id_wrapper_map_.find(id); | 144 id_wrapper_map_.find(id); |
| (...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() { | 481 ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() { |
| 480 scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source( | 482 scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source( |
| 481 tree_->CreateTreeSource()); | 483 tree_->CreateTreeSource()); |
| 482 ui::AXTreeSerializer<const ui::AXNode*> serializer(tree_source.get()); | 484 ui::AXTreeSerializer<const ui::AXNode*> serializer(tree_source.get()); |
| 483 ui::AXTreeUpdate update; | 485 ui::AXTreeUpdate update; |
| 484 serializer.SerializeChanges(tree_->root(), &update); | 486 serializer.SerializeChanges(tree_->root(), &update); |
| 485 return update; | 487 return update; |
| 486 } | 488 } |
| 487 | 489 |
| 488 } // namespace content | 490 } // namespace content |
| OLD | NEW |