| Index: content/browser/accessibility/browser_accessibility_com_win.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility_com_win.cc b/content/browser/accessibility/browser_accessibility_com_win.cc
|
| index 5912580f93aa37e9466dcd1ec46254ed275b430b..900309a72edcaed681c4acd1bebdeb95d6ee4b6a 100644
|
| --- a/content/browser/accessibility/browser_accessibility_com_win.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_com_win.cc
|
| @@ -430,21 +430,7 @@ HRESULT BrowserAccessibilityComWin::accDoDefaultAction(VARIANT var_id) {
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - auto* manager = Manager();
|
| - if (!manager)
|
| - return E_FAIL;
|
| -
|
| - BrowserAccessibilityComWin* target = GetTargetFromChildID(var_id);
|
| - if (!target)
|
| - return E_INVALIDARG;
|
| -
|
| - // Return an error if it hasn't got a custom action verb to describe what
|
| - // happens on click.
|
| - if (!target->owner()->HasIntAttribute(ui::AX_ATTR_DEFAULT_ACTION_VERB))
|
| - return DISP_E_MEMBERNOTFOUND;
|
| -
|
| - manager->DoDefaultAction(*target->owner());
|
| - return S_OK;
|
| + return AXPlatformNodeWin::accDoDefaultAction(var_id);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::accHitTest(LONG x_left,
|
| @@ -554,17 +540,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accChild(VARIANT var_child,
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - if (!disp_child)
|
| - return E_INVALIDARG;
|
| -
|
| - *disp_child = NULL;
|
| -
|
| - BrowserAccessibilityComWin* target = GetTargetFromChildID(var_child);
|
| - if (!target)
|
| - return E_INVALIDARG;
|
| -
|
| - (*disp_child) = target->NewReference();
|
| - return S_OK;
|
| + return AXPlatformNodeWin::get_accChild(var_child, disp_child);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accChildCount(LONG* child_count) {
|
| @@ -572,12 +548,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accChildCount(LONG* child_count) {
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - if (!child_count)
|
| - return E_INVALIDARG;
|
| -
|
| - *child_count = owner()->PlatformChildCount();
|
| -
|
| - return S_OK;
|
| + return AXPlatformNodeWin::get_accChildCount(child_count);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
|
| @@ -587,14 +558,8 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - if (!def_action)
|
| - return E_INVALIDARG;
|
| -
|
| - BrowserAccessibilityComWin* target = GetTargetFromChildID(var_id);
|
| - if (!target)
|
| - return E_INVALIDARG;
|
| -
|
| - return target->get_localizedName(0, def_action);
|
| + AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
|
| + return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accDescription(VARIANT var_id,
|
| @@ -603,21 +568,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accDescription(VARIANT var_id,
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - if (!desc)
|
| - return E_INVALIDARG;
|
| -
|
| - BrowserAccessibilityComWin* target = GetTargetFromChildID(var_id);
|
| - if (!target)
|
| - return E_INVALIDARG;
|
| -
|
| - base::string16 description_str = target->description();
|
| - if (description_str.empty())
|
| - return S_FALSE;
|
| -
|
| - *desc = SysAllocString(description_str.c_str());
|
| -
|
| - DCHECK(*desc);
|
| - return S_OK;
|
| + return AXPlatformNodeWin::get_accDescription(var_id, desc);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accFocus(VARIANT* focus_child) {
|
| @@ -625,26 +576,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accFocus(VARIANT* focus_child) {
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - auto* manager = Manager();
|
| - if (!manager)
|
| - return E_FAIL;
|
| -
|
| - if (!focus_child)
|
| - return E_INVALIDARG;
|
| -
|
| - BrowserAccessibilityWin* focus =
|
| - static_cast<BrowserAccessibilityWin*>(manager->GetFocus());
|
| - if (focus == owner()) {
|
| - focus_child->vt = VT_I4;
|
| - focus_child->lVal = CHILDID_SELF;
|
| - } else if (focus == NULL) {
|
| - focus_child->vt = VT_EMPTY;
|
| - } else {
|
| - focus_child->vt = VT_DISPATCH;
|
| - focus_child->pdispVal = focus->GetCOM()->NewReference();
|
| - }
|
| -
|
| - return S_OK;
|
| + return AXPlatformNodeWin::get_accFocus(focus_child);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accHelp(VARIANT var_id,
|
| @@ -692,30 +624,7 @@ STDMETHODIMP BrowserAccessibilityComWin::get_accParent(
|
| if (!owner())
|
| return E_FAIL;
|
|
|
| - if (!disp_parent)
|
| - return E_INVALIDARG;
|
| -
|
| - IAccessible* parent_obj =
|
| - ToBrowserAccessibilityComWin(owner()->PlatformGetParent());
|
| - if (parent_obj == NULL) {
|
| - // This happens if we're the root of the tree;
|
| - // return the IAccessible for the window.
|
| - parent_obj =
|
| - Manager()->ToBrowserAccessibilityManagerWin()->GetParentIAccessible();
|
| - // |parent| can only be NULL if the manager was created before the parent
|
| - // IAccessible was known and it wasn't subsequently set before a client
|
| - // requested it. This has been fixed. |parent| may also be NULL during
|
| - // destruction. Possible cases where this could occur include tabs being
|
| - // dragged to a new window, etc.
|
| - if (!parent_obj) {
|
| - DVLOG(1) << "In Function: " << __func__
|
| - << ". Parent IAccessible interface is NULL. Returning failure";
|
| - return E_FAIL;
|
| - }
|
| - }
|
| - parent_obj->AddRef();
|
| - *disp_parent = parent_obj;
|
| - return S_OK;
|
| + return AXPlatformNodeWin::get_accParent(disp_parent);
|
| }
|
|
|
| STDMETHODIMP BrowserAccessibilityComWin::get_accRole(VARIANT var_id,
|
|
|