summaryrefslogtreecommitdiffstats
path: root/content/common/accessibility_node_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/common/accessibility_node_data.h')
-rw-r--r--content/common/accessibility_node_data.h33
1 files changed, 30 insertions, 3 deletions
diff --git a/content/common/accessibility_node_data.h b/content/common/accessibility_node_data.h
index 2fd9271..94eeb2e 100644
--- a/content/common/accessibility_node_data.h
+++ b/content/common/accessibility_node_data.h
@@ -264,10 +264,10 @@ struct CONTENT_EXPORT AccessibilityNodeData {
};
AccessibilityNodeData();
- ~AccessibilityNodeData();
+ virtual ~AccessibilityNodeData();
#ifndef NDEBUG
- std::string DebugString(bool recursive) const;
+ virtual std::string DebugString(bool recursive) const;
#endif
// This is a simple serializable struct. All member variables should be
@@ -282,7 +282,7 @@ struct CONTENT_EXPORT AccessibilityNodeData {
std::map<IntAttribute, int32> int_attributes;
std::map<FloatAttribute, float> float_attributes;
std::map<BoolAttribute, bool> bool_attributes;
- std::vector<AccessibilityNodeData> children;
+ std::vector<int32> child_ids;
std::vector<int32> indirect_child_ids;
std::vector<std::pair<string16, string16> > html_attributes;
std::vector<int32> line_breaks;
@@ -297,6 +297,33 @@ struct CONTENT_EXPORT AccessibilityNodeData {
std::vector<int32> unique_cell_ids;
};
+// For testing and debugging only: this subclass of AccessibilityNodeData
+// is used to represent a whole tree of accessibility nodes, where each
+// node owns its children. This makes it easy to print the tree structure
+// or search it recursively.
+struct CONTENT_EXPORT AccessibilityNodeDataTreeNode
+ : public AccessibilityNodeData {
+ AccessibilityNodeDataTreeNode();
+ virtual ~AccessibilityNodeDataTreeNode();
+
+ AccessibilityNodeDataTreeNode& operator=(const AccessibilityNodeData& src);
+
+ #ifndef NDEBUG
+ virtual std::string DebugString(bool recursive) const OVERRIDE;
+ #endif
+
+ std::vector<AccessibilityNodeDataTreeNode> children;
+};
+
+// Given a vector of accessibility nodes that represent a complete
+// accessibility tree, where each node appears before its children,
+// build a tree of AccessibilityNodeDataTreeNode objects for easier
+// testing and debugging, where each node contains its children.
+// The |dst| argument will become the root of the new tree.
+void MakeAccessibilityNodeDataTree(
+ const std::vector<AccessibilityNodeData>& src,
+ AccessibilityNodeDataTreeNode* dst);
+
} // namespace content
#endif // CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_