diff options
Diffstat (limited to 'content/common/accessibility_node_data.h')
-rw-r--r-- | content/common/accessibility_node_data.h | 33 |
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_ |