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

Side by Side Diff: chrome/browser/browser_accessibility_manager.cc

Issue 118206: Fixes an issue where the MSAA information was not reported back correctly to ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/browser_accessibility_manager.h" 5 #include "chrome/browser/browser_accessibility_manager.h"
6 6
7 #include "chrome/browser/browser_accessibility.h" 7 #include "chrome/browser/browser_accessibility.h"
8 #include "chrome/browser/renderer_host/render_process_host.h" 8 #include "chrome/browser/renderer_host/render_process_host.h"
9 #include "chrome/browser/renderer_host/render_view_host.h" 9 #include "chrome/browser/renderer_host/render_view_host.h"
10 #include "chrome/common/notification_service.h" 10 #include "chrome/common/notification_service.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 } 70 }
71 71
72 bool BrowserAccessibilityManager::RequestAccessibilityInfo( 72 bool BrowserAccessibilityManager::RequestAccessibilityInfo(
73 WebAccessibility::InParams* in, int routing_id, int process_id) { 73 WebAccessibility::InParams* in, int routing_id, int process_id) {
74 // Create and populate IPC message structure, for retrieval of accessibility 74 // Create and populate IPC message structure, for retrieval of accessibility
75 // information from the renderer. 75 // information from the renderer.
76 WebAccessibility::InParams in_params; 76 WebAccessibility::InParams in_params;
77 in_params.object_id = in->object_id; 77 in_params.object_id = in->object_id;
78 in_params.function_id = in->function_id; 78 in_params.function_id = in->function_id;
79 in_params.child_id = in->child_id; 79 in_params.child_id = in->child_id;
80 in_params.direct_descendant = in->direct_descendant;
81 in_params.input_long1 = in->input_long1; 80 in_params.input_long1 = in->input_long1;
82 in_params.input_long2 = in->input_long2; 81 in_params.input_long2 = in->input_long2;
83 82
84 // Retrieve the RenderViewHost connected to this request. 83 // Retrieve the RenderViewHost connected to this request.
85 RenderViewHost* rvh = RenderViewHost::FromID(process_id, routing_id); 84 RenderViewHost* rvh = RenderViewHost::FromID(process_id, routing_id);
86 85
87 // Send accessibility information retrieval message to the renderer. 86 // Send accessibility information retrieval message to the renderer.
88 bool success = false; 87 bool success = false;
89 if (rvh && rvh->process() && rvh->process()->channel()) { 88 if (rvh && rvh->process() && rvh->process()->channel()) {
90 IPC::SyncMessage* msg = 89 IPC::SyncMessage* msg =
91 new ViewMsg_GetAccessibilityInfo(routing_id, in_params, &out_params_); 90 new ViewMsg_GetAccessibilityInfo(routing_id, in_params, &out_params_);
92 // Necessary for the send to keep the UI responsive. 91 // Necessary for the send to keep the UI responsive.
93 msg->EnableMessagePumping(); 92 msg->EnableMessagePumping();
94 success = rvh->process()->channel()->SendWithTimeout(msg, 93 success = rvh->process()->channel()->SendWithTimeout(msg,
95 kAccessibilityMessageTimeOut); 94 kAccessibilityMessageTimeOut);
96 } 95 }
97 return success; 96 return success;
98 } 97 }
99 98
100 bool BrowserAccessibilityManager::ChangeAccessibilityFocus(int acc_obj_id, 99 bool BrowserAccessibilityManager::ChangeAccessibilityFocus(int acc_obj_id,
101 int process_id, 100 int process_id,
102 int routing_id) { 101 int routing_id) {
103 BrowserAccessibility* browser_acc = 102 BrowserAccessibility* browser_acc =
104 GetBrowserAccessibility(process_id, routing_id); 103 GetBrowserAccessibility(process_id, routing_id);
105 if (browser_acc) { 104 if (browser_acc) {
106 // Indicate that the request for child information is referring to a non-
107 // direct descendant of the root.
108 browser_acc->set_direct_descendant(false);
109
110 // Notify Access Technology that there was a change in keyboard focus. 105 // Notify Access Technology that there was a change in keyboard focus.
111 ::NotifyWinEvent(EVENT_OBJECT_FOCUS, browser_acc->parent_hwnd(), 106 ::NotifyWinEvent(EVENT_OBJECT_FOCUS, browser_acc->parent_hwnd(),
112 OBJID_CLIENT, static_cast<LONG>(acc_obj_id)); 107 OBJID_CLIENT, static_cast<LONG>(acc_obj_id));
113 return true; 108 return true;
114 } 109 }
115 return false; 110 return false;
116 } 111 }
117 112
118 const WebAccessibility::OutParams& BrowserAccessibilityManager::response() { 113 const WebAccessibility::OutParams& BrowserAccessibilityManager::response() {
119 return out_params_; 114 return out_params_;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 render_process_host_map_.upper_bound(rph->pid()); 146 render_process_host_map_.upper_bound(rph->pid());
152 147
153 for (; it != end_of_matching_objects; ++it) { 148 for (; it != end_of_matching_objects; ++it) {
154 if (it->second) { 149 if (it->second) {
155 // Set all matching BrowserAccessibility instances to inactive state. 150 // Set all matching BrowserAccessibility instances to inactive state.
156 // TODO(klink): Do more active memory cleanup as well. 151 // TODO(klink): Do more active memory cleanup as well.
157 it->second->set_instance_active(false); 152 it->second->set_instance_active(false);
158 } 153 }
159 } 154 }
160 } 155 }
OLDNEW
« no previous file with comments | « chrome/browser/browser_accessibility.cc ('k') | chrome/browser/renderer_host/render_widget_host_view_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698