Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1124)

Unified Diff: content/browser/accessibility/browser_accessibility.cc

Issue 1768753003: Implemented the reporting of text style and language information on Windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed test expectations. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility.cc
diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc
index b45b196e1b2d5318cf6f745a58cc6b457dbeba23..4afad6bfe73d80ba0d0fd2bf9a450dd19c6eb8d9 100644
--- a/content/browser/accessibility/browser_accessibility.cc
+++ b/content/browser/accessibility/browser_accessibility.cc
@@ -252,8 +252,9 @@ BrowserAccessibility* BrowserAccessibility::InternalGetChild(
}
BrowserAccessibility* BrowserAccessibility::GetParent() const {
- if (!node_ || !manager_)
- return NULL;
+ if (!instance_active())
+ return nullptr;
+
ui::AXNode* parent = node_->parent();
if (parent)
return manager_->GetFromAXNode(parent);
@@ -384,8 +385,8 @@ gfx::Rect BrowserAccessibility::GetLocalBoundsForRange(int start, int len)
int local_end = overlap_end - child_start;
gfx::Rect child_rect = child->GetLocation();
- int text_direction = child->GetIntAttribute(
- ui::AX_ATTR_TEXT_DIRECTION);
+ auto text_direction = static_cast<ui::AXTextDirection>(
+ child->GetIntAttribute(ui::AX_ATTR_TEXT_DIRECTION));
const std::vector<int32_t>& character_offsets =
child->GetIntListAttribute(ui::AX_ATTR_CHARACTER_OFFSETS);
int start_pixel_offset =
@@ -657,6 +658,72 @@ bool BrowserAccessibility::GetFloatAttribute(
return GetData().GetFloatAttribute(attribute, value);
}
+bool BrowserAccessibility::HasInheritedStringAttribute(
+ ui::AXStringAttribute attribute) const {
+ if (!instance_active())
+ return false;
+
+ if (GetData().HasStringAttribute(attribute))
+ return true;
+ return GetParent() && GetParent()->HasInheritedStringAttribute(attribute);
+}
+
+const std::string& BrowserAccessibility::GetInheritedStringAttribute(
+ ui::AXStringAttribute attribute) const {
+ if (!instance_active())
+ return base::EmptyString();
+
+ const BrowserAccessibility* current_object = this;
+ do {
+ if (current_object->GetData().HasStringAttribute(attribute))
+ return current_object->GetData().GetStringAttribute(attribute);
+ current_object = current_object->GetParent();
+ } while (current_object);
+ return base::EmptyString();
+}
+
+bool BrowserAccessibility::GetInheritedStringAttribute(
+ ui::AXStringAttribute attribute,
+ std::string* value) const {
+ if (!instance_active()) {
+ *value = std::string();
+ return false;
+ }
+
+ if (GetData().GetStringAttribute(attribute, value))
+ return true;
+ return GetParent() &&
+ GetParent()->GetData().GetStringAttribute(attribute, value);
+}
+
+base::string16 BrowserAccessibility::GetInheritedString16Attribute(
+ ui::AXStringAttribute attribute) const {
+ if (!instance_active())
+ return base::string16();
+
+ const BrowserAccessibility* current_object = this;
+ do {
+ if (current_object->GetData().HasStringAttribute(attribute))
+ return current_object->GetData().GetString16Attribute(attribute);
+ current_object = current_object->GetParent();
+ } while (current_object);
+ return base::string16();
+}
+
+bool BrowserAccessibility::GetInheritedString16Attribute(
+ ui::AXStringAttribute attribute,
+ base::string16* value) const {
+ if (!instance_active()) {
+ *value = base::string16();
+ return false;
+ }
+
+ if (GetData().GetString16Attribute(attribute, value))
+ return true;
+ return GetParent() &&
+ GetParent()->GetData().GetString16Attribute(attribute, value);
+}
+
bool BrowserAccessibility::HasIntAttribute(
ui::AXIntAttribute attribute) const {
return GetData().HasIntAttribute(attribute);
@@ -691,9 +758,8 @@ base::string16 BrowserAccessibility::GetString16Attribute(
return GetData().GetString16Attribute(attribute);
}
-bool BrowserAccessibility::GetString16Attribute(
- ui::AXStringAttribute attribute,
- base::string16* value) const {
+bool BrowserAccessibility::GetString16Attribute(ui::AXStringAttribute attribute,
+ base::string16* value) const {
return GetData().GetString16Attribute(attribute, value);
}
« no previous file with comments | « content/browser/accessibility/browser_accessibility.h ('k') | content/browser/accessibility/browser_accessibility_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698