Index: ui/accessibility/ax_node_data.cc |
diff --git a/ui/accessibility/ax_node_data.cc b/ui/accessibility/ax_node_data.cc |
index 2cb05046ad47b8227fde6ac603fe3c9f5fa079e1..c8a283c05f5f7c67ae257a28938987b8a2402074 100644 |
--- a/ui/accessibility/ax_node_data.cc |
+++ b/ui/accessibility/ax_node_data.cc |
@@ -205,6 +205,7 @@ AXNodeData::AXNodeData(const AXNodeData& other) { |
float_attributes = other.float_attributes; |
bool_attributes = other.bool_attributes; |
intlist_attributes = other.intlist_attributes; |
+ stringlist_attributes = other.stringlist_attributes; |
html_attributes = other.html_attributes; |
child_ids = other.child_ids; |
location = other.location; |
@@ -223,6 +224,7 @@ AXNodeData& AXNodeData::operator=(AXNodeData other) { |
float_attributes = other.float_attributes; |
bool_attributes = other.bool_attributes; |
intlist_attributes = other.intlist_attributes; |
+ stringlist_attributes = other.stringlist_attributes; |
html_attributes = other.html_attributes; |
child_ids = other.child_ids; |
location = other.location; |
@@ -369,6 +371,31 @@ bool AXNodeData::GetIntListAttribute(AXIntListAttribute attribute, |
return false; |
} |
+bool AXNodeData::HasStringListAttribute(AXStringListAttribute attribute) const { |
+ auto iter = FindInVectorOfPairs(attribute, stringlist_attributes); |
+ return iter != stringlist_attributes.end(); |
+} |
+ |
+const std::vector<std::string>& AXNodeData::GetStringListAttribute( |
+ AXStringListAttribute attribute) const { |
+ CR_DEFINE_STATIC_LOCAL(std::vector<std::string>, empty_vector, ()); |
+ auto iter = FindInVectorOfPairs(attribute, stringlist_attributes); |
+ if (iter != stringlist_attributes.end()) |
+ return iter->second; |
+ return empty_vector; |
+} |
+ |
+bool AXNodeData::GetStringListAttribute(AXStringListAttribute attribute, |
+ std::vector<std::string>* value) const { |
+ auto iter = FindInVectorOfPairs(attribute, stringlist_attributes); |
+ if (iter != stringlist_attributes.end()) { |
+ *value = iter->second; |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
bool AXNodeData::GetHtmlAttribute( |
const char* html_attr, std::string* value) const { |
for (size_t i = 0; i < html_attributes.size(); ++i) { |
@@ -416,6 +443,11 @@ void AXNodeData::AddIntListAttribute(AXIntListAttribute attribute, |
intlist_attributes.push_back(std::make_pair(attribute, value)); |
} |
+void AXNodeData::AddStringListAttribute(AXStringListAttribute attribute, |
+ const std::vector<std::string>& value) { |
+ stringlist_attributes.push_back(std::make_pair(attribute, value)); |
+} |
+ |
void AXNodeData::SetName(const std::string& name) { |
for (size_t i = 0; i < string_attributes.size(); ++i) { |
if (string_attributes[i].first == AX_ATTR_NAME) { |