| Index: ui/accessibility/ax_node_data.cc
|
| diff --git a/ui/accessibility/ax_node_data.cc b/ui/accessibility/ax_node_data.cc
|
| index ffaa3eb7405c963931605cb091fe9a8cd44d221d..2b5884e61893b390646c95e9eb7e3fba81aae82c 100644
|
| --- a/ui/accessibility/ax_node_data.cc
|
| +++ b/ui/accessibility/ax_node_data.cc
|
| @@ -184,6 +184,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;
|
| @@ -201,6 +202,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;
|
| @@ -347,6 +349,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) {
|
| @@ -394,6 +421,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) {
|
|
|