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

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

Issue 6713084: Move the rest of the renderer->browser messages that belong in content. Also do a bunch of cleanup: (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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
« no previous file with comments | « no previous file | chrome/browser/accessibility/browser_accessibility_manager_mac.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/accessibility/browser_accessibility_manager.h" 5 #include "chrome/browser/accessibility/browser_accessibility_manager.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/accessibility/browser_accessibility.h" 8 #include "chrome/browser/accessibility/browser_accessibility.h"
9 #include "chrome/common/render_messages_params.h" 9 #include "content/common/view_messages.h"
10 10
11 using webkit_glue::WebAccessibility; 11 using webkit_glue::WebAccessibility;
12 12
13 BrowserAccessibility* BrowserAccessibilityFactory::Create() { 13 BrowserAccessibility* BrowserAccessibilityFactory::Create() {
14 return BrowserAccessibility::Create(); 14 return BrowserAccessibility::Create();
15 } 15 }
16 16
17 // Start child IDs at -1 and decrement each time, because clients use 17 // Start child IDs at -1 and decrement each time, because clients use
18 // child IDs of 1, 2, 3, ... to access the children of an object by 18 // child IDs of 1, 2, 3, ... to access the children of an object by
19 // index, so we use negative IDs to clearly distinguish between indices 19 // index, so we use negative IDs to clearly distinguish between indices
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 child_id_map_.erase(child_id); 90 child_id_map_.erase(child_id);
91 renderer_id_to_child_id_map_.erase(renderer_id); 91 renderer_id_to_child_id_map_.erase(renderer_id);
92 } 92 }
93 93
94 void BrowserAccessibilityManager::OnAccessibilityNotifications( 94 void BrowserAccessibilityManager::OnAccessibilityNotifications(
95 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) { 95 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) {
96 for (uint32 index = 0; index < params.size(); index++) { 96 for (uint32 index = 0; index < params.size(); index++) {
97 const ViewHostMsg_AccessibilityNotification_Params& param = params[index]; 97 const ViewHostMsg_AccessibilityNotification_Params& param = params[index];
98 98
99 switch (param.notification_type) { 99 switch (param.notification_type) {
100 case ViewHostMsg_AccessibilityNotification_Params:: 100 case ViewHostMsg_AccessibilityNotification_Type::
101 NOTIFICATION_TYPE_CHECK_STATE_CHANGED: 101 NOTIFICATION_TYPE_CHECK_STATE_CHANGED:
102 OnAccessibilityObjectStateChange(param.acc_obj); 102 OnAccessibilityObjectStateChange(param.acc_obj);
103 break; 103 break;
104 case ViewHostMsg_AccessibilityNotification_Params:: 104 case ViewHostMsg_AccessibilityNotification_Type::
105 NOTIFICATION_TYPE_CHILDREN_CHANGED: 105 NOTIFICATION_TYPE_CHILDREN_CHANGED:
106 OnAccessibilityObjectChildrenChange(param.acc_obj); 106 OnAccessibilityObjectChildrenChange(param.acc_obj);
107 break; 107 break;
108 case ViewHostMsg_AccessibilityNotification_Params:: 108 case ViewHostMsg_AccessibilityNotification_Type::
109 NOTIFICATION_TYPE_FOCUS_CHANGED: 109 NOTIFICATION_TYPE_FOCUS_CHANGED:
110 OnAccessibilityObjectFocusChange(param.acc_obj); 110 OnAccessibilityObjectFocusChange(param.acc_obj);
111 break; 111 break;
112 case ViewHostMsg_AccessibilityNotification_Params:: 112 case ViewHostMsg_AccessibilityNotification_Type::
113 NOTIFICATION_TYPE_LOAD_COMPLETE: 113 NOTIFICATION_TYPE_LOAD_COMPLETE:
114 OnAccessibilityObjectLoadComplete(param.acc_obj); 114 OnAccessibilityObjectLoadComplete(param.acc_obj);
115 break; 115 break;
116 case ViewHostMsg_AccessibilityNotification_Params:: 116 case ViewHostMsg_AccessibilityNotification_Type::
117 NOTIFICATION_TYPE_VALUE_CHANGED: 117 NOTIFICATION_TYPE_VALUE_CHANGED:
118 OnAccessibilityObjectValueChange(param.acc_obj); 118 OnAccessibilityObjectValueChange(param.acc_obj);
119 break; 119 break;
120 case ViewHostMsg_AccessibilityNotification_Params:: 120 case ViewHostMsg_AccessibilityNotification_Type::
121 NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED: 121 NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED:
122 OnAccessibilityObjectTextChange(param.acc_obj); 122 OnAccessibilityObjectTextChange(param.acc_obj);
123 break; 123 break;
124 default: 124 default:
125 DCHECK(0); 125 DCHECK(0);
126 break; 126 break;
127 } 127 }
128 } 128 }
129 } 129 }
130 130
131 void BrowserAccessibilityManager::OnAccessibilityObjectStateChange( 131 void BrowserAccessibilityManager::OnAccessibilityObjectStateChange(
132 const WebAccessibility& acc_obj) { 132 const WebAccessibility& acc_obj) {
133 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false); 133 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false);
134 if (!new_browser_acc) 134 if (!new_browser_acc)
135 return; 135 return;
136 136
137 NotifyAccessibilityEvent( 137 NotifyAccessibilityEvent(
138 ViewHostMsg_AccessibilityNotification_Params:: 138 ViewHostMsg_AccessibilityNotification_Type::
139 NOTIFICATION_TYPE_CHECK_STATE_CHANGED, 139 NOTIFICATION_TYPE_CHECK_STATE_CHANGED,
140 new_browser_acc); 140 new_browser_acc);
141 } 141 }
142 142
143 void BrowserAccessibilityManager::OnAccessibilityObjectChildrenChange( 143 void BrowserAccessibilityManager::OnAccessibilityObjectChildrenChange(
144 const WebAccessibility& acc_obj) { 144 const WebAccessibility& acc_obj) {
145 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, true); 145 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, true);
146 if (!new_browser_acc) 146 if (!new_browser_acc)
147 return; 147 return;
148 148
149 NotifyAccessibilityEvent( 149 NotifyAccessibilityEvent(
150 ViewHostMsg_AccessibilityNotification_Params:: 150 ViewHostMsg_AccessibilityNotification_Type::
151 NOTIFICATION_TYPE_CHILDREN_CHANGED, 151 NOTIFICATION_TYPE_CHILDREN_CHANGED,
152 new_browser_acc); 152 new_browser_acc);
153 } 153 }
154 154
155 void BrowserAccessibilityManager::OnAccessibilityObjectFocusChange( 155 void BrowserAccessibilityManager::OnAccessibilityObjectFocusChange(
156 const WebAccessibility& acc_obj) { 156 const WebAccessibility& acc_obj) {
157 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false); 157 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false);
158 if (!new_browser_acc) 158 if (!new_browser_acc)
159 return; 159 return;
160 160
161 SetFocus(new_browser_acc, false); 161 SetFocus(new_browser_acc, false);
162 if (delegate_ && delegate_->HasFocus()) { 162 if (delegate_ && delegate_->HasFocus()) {
163 GotFocus(); 163 GotFocus();
164 } else if (!delegate_) { 164 } else if (!delegate_) {
165 // Mac currently does not have a BrowserAccessibilityDelegate. 165 // Mac currently does not have a BrowserAccessibilityDelegate.
166 NotifyAccessibilityEvent( 166 NotifyAccessibilityEvent(
167 ViewHostMsg_AccessibilityNotification_Params:: 167 ViewHostMsg_AccessibilityNotification_Type::
168 NOTIFICATION_TYPE_FOCUS_CHANGED, 168 NOTIFICATION_TYPE_FOCUS_CHANGED,
169 focus_); 169 focus_);
170 } 170 }
171 } 171 }
172 172
173 void BrowserAccessibilityManager::OnAccessibilityObjectLoadComplete( 173 void BrowserAccessibilityManager::OnAccessibilityObjectLoadComplete(
174 const WebAccessibility& acc_obj) { 174 const WebAccessibility& acc_obj) {
175 SetFocus(NULL, false); 175 SetFocus(NULL, false);
176 root_->InternalReleaseReference(true); 176 root_->InternalReleaseReference(true);
177 177
178 root_ = CreateAccessibilityTree(NULL, acc_obj, 0); 178 root_ = CreateAccessibilityTree(NULL, acc_obj, 0);
179 if (!focus_) 179 if (!focus_)
180 SetFocus(root_, false); 180 SetFocus(root_, false);
181 181
182 NotifyAccessibilityEvent( 182 NotifyAccessibilityEvent(
183 ViewHostMsg_AccessibilityNotification_Params:: 183 ViewHostMsg_AccessibilityNotification_Type::
184 NOTIFICATION_TYPE_LOAD_COMPLETE, 184 NOTIFICATION_TYPE_LOAD_COMPLETE,
185 root_); 185 root_);
186 if (delegate_ && delegate_->HasFocus()) 186 if (delegate_ && delegate_->HasFocus())
187 GotFocus(); 187 GotFocus();
188 } 188 }
189 189
190 void BrowserAccessibilityManager::OnAccessibilityObjectValueChange( 190 void BrowserAccessibilityManager::OnAccessibilityObjectValueChange(
191 const WebAccessibility& acc_obj) { 191 const WebAccessibility& acc_obj) {
192 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false); 192 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false);
193 if (!new_browser_acc) 193 if (!new_browser_acc)
194 return; 194 return;
195 195
196 NotifyAccessibilityEvent( 196 NotifyAccessibilityEvent(
197 ViewHostMsg_AccessibilityNotification_Params:: 197 ViewHostMsg_AccessibilityNotification_Type::
198 NOTIFICATION_TYPE_VALUE_CHANGED, 198 NOTIFICATION_TYPE_VALUE_CHANGED,
199 new_browser_acc); 199 new_browser_acc);
200 } 200 }
201 201
202 void BrowserAccessibilityManager::OnAccessibilityObjectTextChange( 202 void BrowserAccessibilityManager::OnAccessibilityObjectTextChange(
203 const WebAccessibility& acc_obj) { 203 const WebAccessibility& acc_obj) {
204 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false); 204 BrowserAccessibility* new_browser_acc = UpdateNode(acc_obj, false);
205 if (!new_browser_acc) 205 if (!new_browser_acc)
206 return; 206 return;
207 207
208 NotifyAccessibilityEvent( 208 NotifyAccessibilityEvent(
209 ViewHostMsg_AccessibilityNotification_Params:: 209 ViewHostMsg_AccessibilityNotification_Type::
210 NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED, 210 NOTIFICATION_TYPE_SELECTED_TEXT_CHANGED,
211 new_browser_acc); 211 new_browser_acc);
212 } 212 }
213 213
214 void BrowserAccessibilityManager::GotFocus() { 214 void BrowserAccessibilityManager::GotFocus() {
215 // TODO(ctguil): Remove when tree update logic handles focus changes. 215 // TODO(ctguil): Remove when tree update logic handles focus changes.
216 if (!focus_) 216 if (!focus_)
217 return; 217 return;
218 218
219 NotifyAccessibilityEvent( 219 NotifyAccessibilityEvent(
220 ViewHostMsg_AccessibilityNotification_Params:: 220 ViewHostMsg_AccessibilityNotification_Type::
221 NOTIFICATION_TYPE_FOCUS_CHANGED, 221 NOTIFICATION_TYPE_FOCUS_CHANGED,
222 focus_); 222 focus_);
223 } 223 }
224 224
225 gfx::NativeView BrowserAccessibilityManager::GetParentView() { 225 gfx::NativeView BrowserAccessibilityManager::GetParentView() {
226 return parent_view_; 226 return parent_view_;
227 } 227 }
228 228
229 BrowserAccessibility* BrowserAccessibilityManager::GetFocus( 229 BrowserAccessibility* BrowserAccessibilityManager::GetFocus(
230 BrowserAccessibility* root) { 230 BrowserAccessibility* root) {
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 if ((src.state >> WebAccessibility::STATE_FOCUSED) & 1) 347 if ((src.state >> WebAccessibility::STATE_FOCUSED) & 1)
348 SetFocus(instance, false); 348 SetFocus(instance, false);
349 for (int i = 0; i < static_cast<int>(src.children.size()); ++i) { 349 for (int i = 0; i < static_cast<int>(src.children.size()); ++i) {
350 BrowserAccessibility* child = CreateAccessibilityTree( 350 BrowserAccessibility* child = CreateAccessibilityTree(
351 instance, src.children[i], i); 351 instance, src.children[i], i);
352 instance->AddChild(child); 352 instance->AddChild(child);
353 } 353 }
354 354
355 return instance; 355 return instance;
356 } 356 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/accessibility/browser_accessibility_manager_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698