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 6395d0110d35d49d3433650e290204ff7b599da6..5b6b2460aba5af5a638804ab51e40857fa1e2a8b 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.cc |
+++ b/content/browser/accessibility/browser_accessibility_win.cc |
@@ -682,7 +682,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_accName(VARIANT var_id, BSTR* name) { |
base::string16 name_str = target->name(); |
if (name_str.empty()) { |
- if (target->ia2_role() == ROLE_SYSTEM_DOCUMENT && GetParent()) { |
+ if (target->ia2_role() == ROLE_SYSTEM_DOCUMENT && |
+ GetAccessibilityParent()) { |
// Hack: Some versions of JAWS crash if they get an empty name on |
// a document that's the child of an iframe, so always return a |
// nonempty string for this role. https://crbug.com/583057 |
@@ -706,7 +707,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_accParent(IDispatch** disp_parent) { |
if (!disp_parent) |
return E_INVALIDARG; |
- IAccessible* parent_obj = ToBrowserAccessibilityWin(GetParent()); |
+ IAccessible* parent_obj = ToBrowserAccessibilityWin(GetAccessibilityParent()); |
if (parent_obj == NULL) { |
// This happens if we're the root of the tree; |
// return the IAccessible for the window. |
@@ -1097,8 +1098,9 @@ STDMETHODIMP BrowserAccessibilityWin::scrollToPoint( |
if (coordinate_type == IA2_COORDTYPE_SCREEN_RELATIVE) { |
scroll_to -= manager_->GetViewBounds().OffsetFromOrigin(); |
} else if (coordinate_type == IA2_COORDTYPE_PARENT_RELATIVE) { |
- if (GetParent()) |
- scroll_to += GetParent()->GetFrameBoundsRect().OffsetFromOrigin(); |
+ if (GetAccessibilityParent()) |
+ scroll_to += |
+ GetAccessibilityParent()->GetFrameBoundsRect().OffsetFromOrigin(); |
} else { |
return E_INVALIDARG; |
} |
@@ -1300,7 +1302,8 @@ STDMETHODIMP BrowserAccessibilityWin::get_imagePosition( |
} else if (coordinate_type == IA2_COORDTYPE_PARENT_RELATIVE) { |
gfx::Rect bounds = GetPageBoundsRect(); |
gfx::Rect parent_bounds = |
- GetParent() ? GetParent()->GetPageBoundsRect() : gfx::Rect(); |
+ GetAccessibilityParent() ? GetAccessibilityParent()->GetPageBoundsRect() |
+ : gfx::Rect(); |
*x = bounds.x() - parent_bounds.x(); |
*y = bounds.y() - parent_bounds.y(); |
} else { |
@@ -2040,9 +2043,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_columnHeaderCells( |
return S_FALSE; |
} |
- BrowserAccessibility* table = GetParent(); |
+ BrowserAccessibility* table = GetAccessibilityParent(); |
while (table && table->GetRole() != ui::AX_ROLE_TABLE) |
- table = table->GetParent(); |
+ table = table->GetAccessibilityParent(); |
if (!table) { |
NOTREACHED(); |
return S_FALSE; |
@@ -2143,9 +2146,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_rowHeaderCells( |
return S_FALSE; |
} |
- BrowserAccessibility* table = GetParent(); |
+ BrowserAccessibility* table = GetAccessibilityParent(); |
while (table && table->GetRole() != ui::AX_ROLE_TABLE) |
- table = table->GetParent(); |
+ table = table->GetAccessibilityParent(); |
if (!table) { |
NOTREACHED(); |
return S_FALSE; |
@@ -2274,9 +2277,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_table(IUnknown** table) { |
GetIntAttribute(ui::AX_ATTR_TABLE_CELL_ROW_INDEX, &row); |
GetIntAttribute(ui::AX_ATTR_TABLE_CELL_COLUMN_INDEX, &column); |
- BrowserAccessibility* find_table = GetParent(); |
+ BrowserAccessibility* find_table = GetAccessibilityParent(); |
while (find_table && find_table->GetRole() != ui::AX_ROLE_TABLE) |
- find_table = find_table->GetParent(); |
+ find_table = find_table->GetAccessibilityParent(); |
if (!find_table) { |
NOTREACHED(); |
return S_FALSE; |
@@ -2354,8 +2357,9 @@ STDMETHODIMP BrowserAccessibilityWin::get_characterExtents( |
character_bounds = GetScreenBoundsForRange(offset, 1); |
} else if (coordinate_type == IA2_COORDTYPE_PARENT_RELATIVE) { |
character_bounds = GetPageBoundsForRange(offset, 1); |
- if (GetParent()) |
- character_bounds -= GetParent()->GetPageBoundsRect().OffsetFromOrigin(); |
+ if (GetAccessibilityParent()) |
+ character_bounds -= |
+ GetAccessibilityParent()->GetPageBoundsRect().OffsetFromOrigin(); |
} else { |
return E_INVALIDARG; |
} |
@@ -2908,7 +2912,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_startIndex(long* index) { |
return E_INVALIDARG; |
int32_t hypertext_offset = 0; |
- auto* parent = GetParent(); |
+ auto* parent = GetAccessibilityParent(); |
if (parent) { |
hypertext_offset = |
ToBrowserAccessibilityWin(parent)->GetHypertextOffsetFromChild(*this); |
@@ -3389,7 +3393,7 @@ STDMETHODIMP BrowserAccessibilityWin::get_parentNode(ISimpleDOMNode** node) { |
if (!node) |
return E_INVALIDARG; |
- *node = ToBrowserAccessibilityWin(GetParent())->NewReference(); |
+ *node = ToBrowserAccessibilityWin(GetAccessibilityParent())->NewReference(); |
return S_OK; |
} |
@@ -3437,13 +3441,14 @@ STDMETHODIMP BrowserAccessibilityWin::get_previousSibling( |
if (!node) |
return E_INVALIDARG; |
- if (!GetParent() || GetIndexInParent() <= 0) { |
+ if (!GetAccessibilityParent() || GetIndexInParent() <= 0) { |
*node = NULL; |
return S_FALSE; |
} |
- *node = ToBrowserAccessibilityWin( |
- GetParent()->InternalGetChild(GetIndexInParent() - 1))->NewReference(); |
+ *node = ToBrowserAccessibilityWin(GetAccessibilityParent()->InternalGetChild( |
+ GetIndexInParent() - 1)) |
+ ->NewReference(); |
return S_OK; |
} |
@@ -3455,16 +3460,17 @@ STDMETHODIMP BrowserAccessibilityWin::get_nextSibling(ISimpleDOMNode** node) { |
if (!node) |
return E_INVALIDARG; |
- if (!GetParent() || |
- GetIndexInParent() < 0 || |
- GetIndexInParent() >= static_cast<int>( |
- GetParent()->InternalChildCount()) - 1) { |
+ if (!GetAccessibilityParent() || GetIndexInParent() < 0 || |
+ GetIndexInParent() >= |
+ static_cast<int>(GetAccessibilityParent()->InternalChildCount()) - |
+ 1) { |
*node = NULL; |
return S_FALSE; |
} |
- *node = ToBrowserAccessibilityWin( |
- GetParent()->InternalGetChild(GetIndexInParent() + 1))->NewReference(); |
+ *node = ToBrowserAccessibilityWin(GetAccessibilityParent()->InternalGetChild( |
+ GetIndexInParent() + 1)) |
+ ->NewReference(); |
return S_OK; |
} |
@@ -3653,8 +3659,8 @@ STDMETHODIMP BrowserAccessibilityWin::QueryService(REFGUID guid_service, |
// Screen readers use this to distinguish between a document loaded event |
// on the root document vs on an iframe. |
BrowserAccessibility* node = this; |
- while (node->GetParent()) |
- node = node->GetParent()->manager()->GetRoot(); |
+ while (node->GetAccessibilityParent()) |
+ node = node->GetAccessibilityParent()->manager()->GetRoot(); |
return ToBrowserAccessibilityWin(node)->QueryInterface( |
IID_IAccessible2, object); |
} |
@@ -4013,9 +4019,9 @@ void BrowserAccessibilityWin::UpdateStep1ComputeWinAttributes() { |
// Expose table cell index. |
if (IsCellOrTableHeaderRole()) { |
- BrowserAccessibility* table = GetParent(); |
+ BrowserAccessibility* table = GetAccessibilityParent(); |
while (table && table->GetRole() != ui::AX_ROLE_TABLE) |
- table = table->GetParent(); |
+ table = table->GetAccessibilityParent(); |
if (table) { |
const std::vector<int32_t>& unique_cell_ids = |
table->GetIntListAttribute(ui::AX_ATTR_UNIQUE_CELL_IDS); |
@@ -4182,7 +4188,8 @@ void BrowserAccessibilityWin::UpdateStep3FireEvents(bool is_subtree_creation) { |
(old_win_attributes_->ia_state & STATE_SYSTEM_SELECTED) != 0; |
if (is_selected_now || was_selected_before) { |
bool multiselect = false; |
- if (GetParent() && GetParent()->HasState(ui::AX_STATE_MULTISELECTABLE)) |
+ if (GetAccessibilityParent() && |
+ GetAccessibilityParent()->HasState(ui::AX_STATE_MULTISELECTABLE)) |
multiselect = true; |
if (multiselect) { |
@@ -4225,7 +4232,8 @@ void BrowserAccessibilityWin::UpdateStep3FireEvents(bool is_subtree_creation) { |
// Changing a static text node can affect the IAccessibleText hypertext |
// of the parent node, so force an update on the parent. |
- BrowserAccessibilityWin* parent = ToBrowserAccessibilityWin(GetParent()); |
+ BrowserAccessibilityWin* parent = |
+ ToBrowserAccessibilityWin(GetAccessibilityParent()); |
if (parent && IsTextOnlyObject() && |
name() != old_win_attributes_->name) { |
parent->UpdatePlatformAttributes(); |
@@ -4590,7 +4598,7 @@ void BrowserAccessibilityWin::IntAttributeToIA2( |
bool BrowserAccessibilityWin::IsHyperlink() const { |
int32_t hyperlink_index = -1; |
- auto* parent = GetParent(); |
+ auto* parent = GetAccessibilityParent(); |
if (parent) { |
hyperlink_index = |
ToBrowserAccessibilityWin(parent)->GetHyperlinkIndexFromChild(*this); |
@@ -4644,7 +4652,7 @@ int32_t BrowserAccessibilityWin::GetHypertextOffsetFromHyperlinkIndex( |
int32_t BrowserAccessibilityWin::GetHypertextOffsetFromChild( |
const BrowserAccessibilityWin& child) const { |
- DCHECK(child.GetParent() == this); |
+ DCHECK(child.GetAccessibilityParent() == this); |
// Handle the case when we are dealing with a direct text-only child. |
// (Note that this object might be a platform leaf, e.g. an ARIA searchbox, |
@@ -4677,11 +4685,13 @@ int32_t BrowserAccessibilityWin::GetHypertextOffsetFromChild( |
int32_t BrowserAccessibilityWin::GetHypertextOffsetFromDescendant( |
const BrowserAccessibilityWin& descendant) const { |
- auto* parent_object = ToBrowserAccessibilityWin(descendant.GetParent()); |
+ auto* parent_object = |
+ ToBrowserAccessibilityWin(descendant.GetAccessibilityParent()); |
auto* current_object = const_cast<BrowserAccessibilityWin*>(&descendant); |
while (parent_object && parent_object != this) { |
current_object = parent_object; |
- parent_object = ToBrowserAccessibilityWin(current_object->GetParent()); |
+ parent_object = |
+ ToBrowserAccessibilityWin(current_object->GetAccessibilityParent()); |
} |
if (!parent_object) |
return -1; |
@@ -4712,7 +4722,7 @@ int BrowserAccessibilityWin::GetHypertextOffsetFromEndpoint( |
int32_t index_in_common_parent = GetIndexInParent(); |
while (common_parent && !endpoint_object.IsDescendantOf(common_parent)) { |
index_in_common_parent = common_parent->GetIndexInParent(); |
- common_parent = common_parent->GetParent(); |
+ common_parent = common_parent->GetAccessibilityParent(); |
} |
if (!common_parent) |
return -1; |
@@ -4728,7 +4738,7 @@ int BrowserAccessibilityWin::GetHypertextOffsetFromEndpoint( |
if (common_parent == this) { |
int32_t hypertext_offset = |
GetHypertextOffsetFromDescendant(endpoint_object); |
- if (endpoint_object.GetParent() == this && |
+ if (endpoint_object.GetAccessibilityParent() == this && |
endpoint_object.IsTextOnlyObject()) { |
hypertext_offset += endpoint_offset; |
} |
@@ -5004,11 +5014,11 @@ BrowserAccessibilityWin* BrowserAccessibilityWin::GetFromID(int32_t id) const { |
} |
bool BrowserAccessibilityWin::IsListBoxOptionOrMenuListOption() { |
- if (!GetParent()) |
+ if (!GetAccessibilityParent()) |
return false; |
int32_t role = GetRole(); |
- int32_t parent_role = GetParent()->GetRole(); |
+ int32_t parent_role = GetAccessibilityParent()->GetRole(); |
if (role == ui::AX_ROLE_LIST_BOX_OPTION && |
parent_role == ui::AX_ROLE_LIST_BOX) { |