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 |