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

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

Issue 1413423003: Move some AX attrs from AXNodeData to AXTreeData. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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_win.cc
diff --git a/content/browser/accessibility/browser_accessibility_win.cc b/content/browser/accessibility/browser_accessibility_win.cc
index a932c4d20c12565aa090ced27c876e902abc6ce7..ed687849c384faf53eabbd953683ad2eca03954b 100644
--- a/content/browser/accessibility/browser_accessibility_win.cc
+++ b/content/browser/accessibility/browser_accessibility_win.cc
@@ -2665,7 +2665,17 @@ STDMETHODIMP BrowserAccessibilityWin::get_URL(BSTR* url) {
if (!url)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(ui::AX_ATTR_DOC_URL, url);
+ if (this != manager()->GetRoot())
+ return E_FAIL;
+
+ std::string str = manager()->GetTreeData().url;
+ if (str.empty())
+ return S_FALSE;
+
+ *url = SysAllocString(base::UTF8ToUTF16(str).c_str());
+ DCHECK(*url);
+
+ return S_OK;
}
STDMETHODIMP BrowserAccessibilityWin::get_title(BSTR* title) {
@@ -2675,7 +2685,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_title(BSTR* title) {
if (!title)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(ui::AX_ATTR_DOC_TITLE, title);
+ std::string str = manager()->GetTreeData().title;
+ if (str.empty())
+ return S_FALSE;
+
+ *title = SysAllocString(base::UTF8ToUTF16(str).c_str());
+ DCHECK(*title);
+
+ return S_OK;
}
STDMETHODIMP BrowserAccessibilityWin::get_mimeType(BSTR* mime_type) {
@@ -2685,8 +2702,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_mimeType(BSTR* mime_type) {
if (!mime_type)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(
- ui::AX_ATTR_DOC_MIMETYPE, mime_type);
+ std::string str = manager()->GetTreeData().mimetype;
+ if (str.empty())
+ return S_FALSE;
+
+ *mime_type = SysAllocString(base::UTF8ToUTF16(str).c_str());
+ DCHECK(*mime_type);
+
+ return S_OK;
}
STDMETHODIMP BrowserAccessibilityWin::get_docType(BSTR* doc_type) {
@@ -2696,8 +2719,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_docType(BSTR* doc_type) {
if (!doc_type)
return E_INVALIDARG;
- return GetStringAttributeAsBstr(
- ui::AX_ATTR_DOC_DOCTYPE, doc_type);
+ std::string str = manager()->GetTreeData().doctype;
+ if (str.empty())
+ return S_FALSE;
+
+ *doc_type = SysAllocString(base::UTF8ToUTF16(str).c_str());
+ DCHECK(*doc_type);
+
+ return S_OK;
}
STDMETHODIMP
@@ -3444,7 +3473,7 @@ void BrowserAccessibilityWin::UpdateStep1ComputeWinAttributes() {
// On Windows, the value of a document should be its url.
if (GetRole() == ui::AX_ROLE_ROOT_WEB_AREA ||
GetRole() == ui::AX_ROLE_WEB_AREA) {
- value = GetString16Attribute(ui::AX_ATTR_DOC_URL);
+ value = base::UTF8ToUTF16(manager()->GetTreeData().url);
}
// For certain roles (listbox option, static text, and list marker)
@@ -3885,38 +3914,24 @@ int BrowserAccessibilityWin::GetHypertextOffsetFromEndpoint(
}
int BrowserAccessibilityWin::GetSelectionAnchor() const {
- BrowserAccessibility* root = manager()->GetRoot();
- int32 anchor_id;
- if (!root || !root->GetIntAttribute(ui::AX_ATTR_ANCHOR_OBJECT_ID, &anchor_id))
- return -1;
-
+ int32 anchor_id = manager()->GetTreeData().sel_anchor_object_id;
BrowserAccessibilityWin* anchor_object = manager()->GetFromID(
anchor_id)->ToBrowserAccessibilityWin();
if (!anchor_object)
return -1;
- int anchor_offset;
- if (!root->GetIntAttribute(ui::AX_ATTR_ANCHOR_OFFSET, &anchor_offset))
- return -1;
-
+ int32 anchor_offset = manager()->GetTreeData().sel_anchor_offset;
return GetHypertextOffsetFromEndpoint(*anchor_object, anchor_offset);
}
int BrowserAccessibilityWin::GetSelectionFocus() const {
- BrowserAccessibility* root = manager()->GetRoot();
- int32 focus_id;
- if (!root || !root->GetIntAttribute(ui::AX_ATTR_FOCUS_OBJECT_ID, &focus_id))
- return -1;
-
+ int32 focus_id = manager()->GetTreeData().sel_focus_object_id;
BrowserAccessibilityWin* focus_object = manager()->GetFromID(
focus_id)->ToBrowserAccessibilityWin();
if (!focus_object)
return -1;
- int focus_offset;
- if (!root->GetIntAttribute(ui::AX_ATTR_FOCUS_OFFSET, &focus_offset))
- return -1;
-
+ int focus_offset = manager()->GetTreeData().sel_focus_offset;
return GetHypertextOffsetFromEndpoint(*focus_object, focus_offset);
}

Powered by Google App Engine
This is Rietveld 408576698