Index: chrome/browser/renderer_host/render_widget_host_view_win.cc |
=================================================================== |
--- chrome/browser/renderer_host/render_widget_host_view_win.cc (revision 59589) |
+++ chrome/browser/renderer_host/render_widget_host_view_win.cc (working copy) |
@@ -1566,44 +1566,18 @@ |
if (!browser_accessibility_manager_.get()) { |
render_widget_host_->EnableRendererAccessibility(); |
- if (!loading_accessible_.get()) { |
- // Create IAccessible to return while waiting for the accessibility tree |
- // from the renderer. |
- HRESULT hr = ::CreateStdAccessibleObject( |
- m_hWnd, OBJID_CLIENT, IID_IAccessible, |
- reinterpret_cast<void **>(&loading_accessible_)); |
+ // Return busy document tree while renderer accessibility tree loads. |
+ webkit_glue::WebAccessibility loading_tree; |
+ loading_tree.role = WebAccessibility::ROLE_DOCUMENT; |
+ loading_tree.state = (1 << WebAccessibility::STATE_BUSY); |
+ browser_accessibility_manager_.reset( |
+ new BrowserAccessibilityManager(m_hWnd, loading_tree, this)); |
+ } |
- // Annotate with STATE_SYSTEM_BUSY to indicate that the page is loading. |
- // We annotate the HWND, not the loading_accessible IAccessible, but the |
- // IAccessible will reflect the state annotation. |
- ScopedComPtr<IAccPropServices> pAccPropServices; |
- hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER, |
- IID_IAccPropServices, reinterpret_cast<void**>(&pAccPropServices)); |
- if (SUCCEEDED(hr)) { |
- VARIANT var; |
- var.vt = VT_I4; |
- var.lVal = STATE_SYSTEM_BUSY; |
- pAccPropServices->SetHwndProp( |
- m_hWnd, OBJID_CLIENT, CHILDID_SELF, PROPID_ACC_STATE, var); |
- |
- // Annotate with ROLE_SYSTEM_DOCUMENT, indicates page is a document. |
- var.lVal = ROLE_SYSTEM_DOCUMENT; |
- pAccPropServices->SetHwndProp( |
- m_hWnd, OBJID_CLIENT, CHILDID_SELF, PROPID_ACC_ROLE, var); |
- } |
- } |
- |
- if (loading_accessible_.get()) { |
- return LresultFromObject( |
- IID_IAccessible, wparam, |
- static_cast<IAccessible*>(loading_accessible_)); |
- } |
- } else { |
- BrowserAccessibility* root = browser_accessibility_manager_->GetRoot(); |
- if (root) { |
- return LresultFromObject(IID_IAccessible, wparam, |
- static_cast<IAccessible*>(root->NewReference())); |
- } |
+ BrowserAccessibility* root = browser_accessibility_manager_->GetRoot(); |
+ if (root) { |
+ return LresultFromObject(IID_IAccessible, wparam, |
+ static_cast<IAccessible*>(root->NewReference())); |
} |
handled = false; |