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

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

Issue 200045: Use Scoped[Bstr,ComPtr,Variant] instead of their ATL equivalents to reduce de... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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.h" 5 #include "chrome/browser/browser_accessibility.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/browser_accessibility_manager.h" 8 #include "chrome/browser/browser_accessibility_manager.h"
9 9
10 using webkit_glue::WebAccessibility; 10 using webkit_glue::WebAccessibility;
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_DEFAULTACTION, 247 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_DEFAULTACTION,
248 var_id, NULL, NULL)) { 248 var_id, NULL, NULL)) {
249 return E_FAIL; 249 return E_FAIL;
250 } 250 }
251 251
252 if (!response().return_code) { 252 if (!response().return_code) {
253 // No string found. 253 // No string found.
254 return S_FALSE; 254 return S_FALSE;
255 } 255 }
256 256
257 *def_action = CComBSTR(response().output_string.c_str()).Detach(); 257 *def_action = SysAllocString(response().output_string.c_str());
258 258
259 DCHECK(*def_action); 259 DCHECK(*def_action);
260 return S_OK; 260 return S_OK;
261 } 261 }
262 262
263 STDMETHODIMP BrowserAccessibility::get_accDescription(VARIANT var_id, 263 STDMETHODIMP BrowserAccessibility::get_accDescription(VARIANT var_id,
264 BSTR* desc) { 264 BSTR* desc) {
265 if (!instance_active()) { 265 if (!instance_active()) {
266 // Instance no longer active, fail gracefully. 266 // Instance no longer active, fail gracefully.
267 return E_FAIL; 267 return E_FAIL;
268 } 268 }
269 269
270 if (var_id.vt != VT_I4 || !desc) 270 if (var_id.vt != VT_I4 || !desc)
271 return E_INVALIDARG; 271 return E_INVALIDARG;
272 272
273 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_DESCRIPTION, var_id, 273 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_DESCRIPTION, var_id,
274 NULL, NULL)) { 274 NULL, NULL)) {
275 return E_FAIL; 275 return E_FAIL;
276 } 276 }
277 277
278 if (!response().return_code) { 278 if (!response().return_code) {
279 // No string found. 279 // No string found.
280 return S_FALSE; 280 return S_FALSE;
281 } 281 }
282 282
283 *desc = CComBSTR(response().output_string.c_str()).Detach(); 283 *desc = SysAllocString(response().output_string.c_str());
284 284
285 DCHECK(*desc); 285 DCHECK(*desc);
286 return S_OK; 286 return S_OK;
287 } 287 }
288 288
289 STDMETHODIMP BrowserAccessibility::get_accFocus(VARIANT* focus_child) { 289 STDMETHODIMP BrowserAccessibility::get_accFocus(VARIANT* focus_child) {
290 if (!instance_active()) { 290 if (!instance_active()) {
291 // Instance no longer active, fail gracefully. 291 // Instance no longer active, fail gracefully.
292 return E_FAIL; 292 return E_FAIL;
293 } 293 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_HELPTEXT, var_id, 335 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_HELPTEXT, var_id,
336 NULL, NULL)) { 336 NULL, NULL)) {
337 return E_FAIL; 337 return E_FAIL;
338 } 338 }
339 339
340 if (!response().return_code || response().output_string.empty()) { 340 if (!response().return_code || response().output_string.empty()) {
341 // No string found. 341 // No string found.
342 return S_FALSE; 342 return S_FALSE;
343 } 343 }
344 344
345 *help = CComBSTR(response().output_string.c_str()).Detach(); 345 *help = SysAllocString(response().output_string.c_str());
346 346
347 DCHECK(*help); 347 DCHECK(*help);
348 return S_OK; 348 return S_OK;
349 } 349 }
350 350
351 STDMETHODIMP BrowserAccessibility::get_accKeyboardShortcut(VARIANT var_id, 351 STDMETHODIMP BrowserAccessibility::get_accKeyboardShortcut(VARIANT var_id,
352 BSTR* acc_key) { 352 BSTR* acc_key) {
353 if (!instance_active()) { 353 if (!instance_active()) {
354 // Instance no longer active, fail gracefully. 354 // Instance no longer active, fail gracefully.
355 return E_FAIL; 355 return E_FAIL;
356 } 356 }
357 357
358 if (var_id.vt != VT_I4 || !acc_key) 358 if (var_id.vt != VT_I4 || !acc_key)
359 return E_INVALIDARG; 359 return E_INVALIDARG;
360 360
361 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_KEYBOARDSHORTCUT, 361 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_KEYBOARDSHORTCUT,
362 var_id, NULL, NULL)) { 362 var_id, NULL, NULL)) {
363 return E_FAIL; 363 return E_FAIL;
364 } 364 }
365 365
366 if (!response().return_code) { 366 if (!response().return_code) {
367 // No string found. 367 // No string found.
368 return S_FALSE; 368 return S_FALSE;
369 } 369 }
370 370
371 *acc_key = CComBSTR(response().output_string.c_str()).Detach(); 371 *acc_key = SysAllocString(response().output_string.c_str());
372 372
373 DCHECK(*acc_key); 373 DCHECK(*acc_key);
374 return S_OK; 374 return S_OK;
375 } 375 }
376 376
377 STDMETHODIMP BrowserAccessibility::get_accName(VARIANT var_id, BSTR* name) { 377 STDMETHODIMP BrowserAccessibility::get_accName(VARIANT var_id, BSTR* name) {
378 if (!instance_active()) { 378 if (!instance_active()) {
379 // Instance no longer active, fail gracefully. 379 // Instance no longer active, fail gracefully.
380 return E_FAIL; 380 return E_FAIL;
381 } 381 }
382 382
383 if (var_id.vt != VT_I4 || !name) 383 if (var_id.vt != VT_I4 || !name)
384 return E_INVALIDARG; 384 return E_INVALIDARG;
385 385
386 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_NAME, var_id, NULL, 386 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_NAME, var_id, NULL,
387 NULL)) { 387 NULL)) {
388 return E_FAIL; 388 return E_FAIL;
389 } 389 }
390 390
391 if (!response().return_code) { 391 if (!response().return_code) {
392 // No string found. 392 // No string found.
393 return S_FALSE; 393 return S_FALSE;
394 } 394 }
395 395
396 *name = CComBSTR(response().output_string.c_str()).Detach(); 396 *name = SysAllocString(response().output_string.c_str());
397 397
398 DCHECK(*name); 398 DCHECK(*name);
399 return S_OK; 399 return S_OK;
400 } 400 }
401 401
402 STDMETHODIMP BrowserAccessibility::get_accParent(IDispatch** disp_parent) { 402 STDMETHODIMP BrowserAccessibility::get_accParent(IDispatch** disp_parent) {
403 if (!instance_active()) { 403 if (!instance_active()) {
404 // Instance no longer active, fail gracefully. 404 // Instance no longer active, fail gracefully.
405 return E_FAIL; 405 return E_FAIL;
406 } 406 }
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_VALUE, var_id, NULL, 497 if (!RequestAccessibilityInfo(WebAccessibility::FUNCTION_VALUE, var_id, NULL,
498 NULL)) { 498 NULL)) {
499 return E_FAIL; 499 return E_FAIL;
500 } 500 }
501 501
502 if (!response().return_code || response().output_string.empty()) { 502 if (!response().return_code || response().output_string.empty()) {
503 // No string found. 503 // No string found.
504 return S_FALSE; 504 return S_FALSE;
505 } 505 }
506 506
507 *value = CComBSTR(response().output_string.c_str()).Detach(); 507 *value = SysAllocString(response().output_string.c_str());
508 508
509 DCHECK(*value); 509 DCHECK(*value);
510 return S_OK; 510 return S_OK;
511 } 511 }
512 512
513 STDMETHODIMP BrowserAccessibility::get_accHelpTopic(BSTR* help_file, 513 STDMETHODIMP BrowserAccessibility::get_accHelpTopic(BSTR* help_file,
514 VARIANT var_id, 514 VARIANT var_id,
515 LONG* topic_id) { 515 LONG* topic_id) {
516 if (help_file) 516 if (help_file)
517 *help_file = NULL; 517 *help_file = NULL;
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 state |= STATE_SYSTEM_READONLY; 666 state |= STATE_SYSTEM_READONLY;
667 667
668 if ((browser_accessibility_state >> WebAccessibility::STATE_TRAVERSED) & 1) 668 if ((browser_accessibility_state >> WebAccessibility::STATE_TRAVERSED) & 1)
669 state |= STATE_SYSTEM_TRAVERSED; 669 state |= STATE_SYSTEM_TRAVERSED;
670 670
671 if ((browser_accessibility_state >> WebAccessibility::STATE_UNAVAILABLE) & 1) 671 if ((browser_accessibility_state >> WebAccessibility::STATE_UNAVAILABLE) & 1)
672 state |= STATE_SYSTEM_UNAVAILABLE; 672 state |= STATE_SYSTEM_UNAVAILABLE;
673 673
674 return state; 674 return state;
675 } 675 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698