Index: ui/accessibility/ax_tree.h |
diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h |
index 84108e05910d99572c0423e20579388b9d0691af..a56a0b2754130d48b4f624083d883aa2067f55c7 100644 |
--- a/ui/accessibility/ax_tree.h |
+++ b/ui/accessibility/ax_tree.h |
@@ -5,8 +5,9 @@ |
#ifndef UI_ACCESSIBILITY_AX_TREE_H_ |
#define UI_ACCESSIBILITY_AX_TREE_H_ |
-#include "base/containers/hash_tables.h" |
+#include <set> |
+#include "base/containers/hash_tables.h" |
#include "ui/accessibility/ax_export.h" |
#include "ui/accessibility/ax_tree.h" |
#include "ui/accessibility/ax_tree_update.h" |
@@ -29,15 +30,23 @@ class AX_EXPORT AXTree { |
virtual AXNode* GetRoot() const; |
virtual AXNode* GetFromId(int32 id) const; |
+ // Returns true on success. If it returns false, it's a fatal error |
+ // and this tree should be destroyed, and the source of the tree update |
+ // should not be trusted any longer. |
virtual bool Unserialize(const AXTreeUpdate& update); |
+ // A string describing the error from an unsuccessful Unserialize, |
+ // for testing and debugging. |
+ const std::string& error() { return error_; } |
+ |
protected: |
// Subclasses can override this to use a subclass of AXNode. |
virtual AXNode* CreateNode(AXNode* parent, int32 id, int32 index_in_parent); |
// This is called from within Unserialize(), it returns true on success. |
// Subclasses can override this to do additional processing. |
aboxhall
2013/12/02 17:18:08
Could you comment what orphaned_nodes is used for?
dmazzoni
2013/12/03 08:35:04
Done. Sorry, I renamed it to pending_nodes in the
|
- virtual bool UpdateNode(const AXNodeData& src); |
+ virtual bool UpdateNode(const AXNodeData& src, |
+ std::set<AXNode*>* orphaned_nodes); |
// Subclasses can override this to do special behavior when the root changes. |
virtual void OnRootChanged(); |
@@ -64,10 +73,12 @@ class AX_EXPORT AXTree { |
// error. Returns true on success, false on fatal error. |
aboxhall
2013/12/02 17:18:08
Could you comment what pending_nodes is used for?
dmazzoni
2013/12/03 08:35:04
Done.
|
bool CreateNewChildVector(AXNode* node, |
const std::vector<int32> new_child_ids, |
- std::vector<AXNode*>* new_children); |
+ std::vector<AXNode*>* new_children, |
+ std::set<AXNode*>* pending_nodes); |
AXNode* root_; |
base::hash_map<int32, AXNode*> id_map_; |
+ std::string error_; |
}; |
} // namespace ui |