| Index: chrome/browser/renderer_host/render_widget_host_view_win.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/render_widget_host_view_win.cc (revision 49342)
|
| +++ chrome/browser/renderer_host/render_widget_host_view_win.cc (working copy)
|
| @@ -252,6 +252,7 @@
|
| paint_rect.width(), paint_rect.height());
|
| canvas.getTopPlatformDevice().drawToHDC(paint_dc, paint_rect.x(),
|
| paint_rect.y(), NULL);
|
| +
|
| }
|
|
|
| } // namespace
|
| @@ -283,15 +284,12 @@
|
| is_loading_(false),
|
| visually_deemphasized_(false) {
|
| render_widget_host_->set_view(this);
|
| + renderer_accessible_ =
|
| + CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableRendererAccessibility);
|
| registrar_.Add(this,
|
| NotificationType::RENDERER_PROCESS_TERMINATED,
|
| NotificationService::AllSources());
|
| -
|
| - BOOL screenreader_running = FALSE;
|
| - if (SystemParametersInfo(SPI_GETSCREENREADER, 0, &screenreader_running, 0) &&
|
| - screenreader_running) {
|
| - render_widget_host_->EnableRendererAccessibility();
|
| - }
|
| }
|
|
|
| RenderWidgetHostViewWin::~RenderWidgetHostViewWin() {
|
| @@ -1485,9 +1483,6 @@
|
| const webkit_glue::WebAccessibility& tree) {
|
| browser_accessibility_manager_.reset(
|
| new BrowserAccessibilityManager(m_hWnd, tree, this));
|
| -
|
| - ::NotifyWinEvent(
|
| - IA2_EVENT_DOCUMENT_LOAD_COMPLETE, m_hWnd, OBJID_CLIENT, CHILDID_SELF);
|
| }
|
|
|
| void RenderWidgetHostViewWin::OnAccessibilityFocusChange(int acc_obj_id) {
|
| @@ -1547,46 +1542,18 @@
|
|
|
| LRESULT RenderWidgetHostViewWin::OnGetObject(UINT message, WPARAM wparam,
|
| LPARAM lparam, BOOL& handled) {
|
| - if (lparam != OBJID_CLIENT) {
|
| + // TODO(dmazzoni): http://crbug.com/25564 Disabling accessibility in the
|
| + // renderer is a temporary work-around until that bug is fixed.
|
| + if (!renderer_accessible_) {
|
| handled = false;
|
| return static_cast<LRESULT>(0L);
|
| }
|
|
|
| - 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_));
|
| -
|
| - // 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);
|
| - }
|
| - }
|
| -
|
| - if (loading_accessible_.get()) {
|
| - return LresultFromObject(
|
| - IID_IAccessible, wparam,
|
| - static_cast<IAccessible*>(loading_accessible_));
|
| - }
|
| - } else {
|
| + if (lparam == OBJID_CLIENT && browser_accessibility_manager_.get()) {
|
| BrowserAccessibility* root = browser_accessibility_manager_->GetRoot();
|
| if (root) {
|
| return LresultFromObject(IID_IAccessible, wparam,
|
| - static_cast<IAccessible*>(root->NewReference()));
|
| + static_cast<IAccessible*>(root->NewReference()));
|
| }
|
| }
|
|
|
|
|