Index: ui/accessibility/ax_tree.cc |
diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc |
index 62e31e87e642e6de19bfb1b1fee0b7ad7e4c4003..a50a469adc61e1b1e206cada98f0a794b36393cc 100644 |
--- a/ui/accessibility/ax_tree.cc |
+++ b/ui/accessibility/ax_tree.cc |
@@ -53,12 +53,12 @@ AXTree::AXTree() |
root.id = -1; |
root.role = AX_ROLE_ROOT_WEB_AREA; |
- AXTreeUpdate<AXNodeData> initial_state; |
+ AXTreeUpdate initial_state; |
initial_state.nodes.push_back(root); |
CHECK(Unserialize(initial_state)) << error(); |
} |
-AXTree::AXTree(const AXTreeUpdate<AXNodeData>& initial_state) |
+AXTree::AXTree(const AXTreeUpdate& initial_state) |
: delegate_(NULL), root_(NULL) { |
CHECK(Unserialize(initial_state)) << error(); |
} |
@@ -77,10 +77,19 @@ AXNode* AXTree::GetFromId(int32 id) const { |
return iter != id_map_.end() ? iter->second : NULL; |
} |
-bool AXTree::Unserialize(const AXTreeUpdate<AXNodeData>& update) { |
+void AXTree::UpdateData(const AXTreeData& data) { |
+ data_ = data; |
+ if (delegate_) |
+ delegate_->OnTreeDataChanged(this); |
+} |
+ |
+bool AXTree::Unserialize(const AXTreeUpdate& update) { |
AXTreeUpdateState update_state; |
int32 old_root_id = root_ ? root_->id() : 0; |
+ if (update.has_tree_data) |
+ UpdateData(update.tree_data); |
+ |
if (update.node_id_to_clear != 0) { |
AXNode* node = GetFromId(update.node_id_to_clear); |
if (!node) { |
@@ -144,7 +153,7 @@ bool AXTree::Unserialize(const AXTreeUpdate<AXNodeData>& update) { |
} |
std::string AXTree::ToString() const { |
- return TreeToStringHelper(root_, 0); |
+ return "AXTree" + data_.ToString() + "\n" + TreeToStringHelper(root_, 0); |
} |
AXNode* AXTree::CreateNode(AXNode* parent, int32 id, int32 index_in_parent) { |