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

Side by Side Diff: content/browser/accessibility/browser_accessibility_com_win.cc

Issue 2981053002: Remove methods from BrowserAccessibilityComWin which aren't needed. (Closed)
Patch Set: Remove methods Created 3 years, 5 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
OLDNEW
1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2017 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 "content/browser/accessibility/browser_accessibility_com_win.h" 5 #include "content/browser/accessibility/browser_accessibility_com_win.h"
6 6
7 #include <UIAutomationClient.h> 7 #include <UIAutomationClient.h>
8 #include <UIAutomationCoreApi.h> 8 #include <UIAutomationCoreApi.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 : owner_(nullptr), 231 : owner_(nullptr),
232 win_attributes_(new WinAttributes()), 232 win_attributes_(new WinAttributes()),
233 previous_scroll_x_(0), 233 previous_scroll_x_(0),
234 previous_scroll_y_(0) {} 234 previous_scroll_y_(0) {}
235 235
236 BrowserAccessibilityComWin::~BrowserAccessibilityComWin() { 236 BrowserAccessibilityComWin::~BrowserAccessibilityComWin() {
237 for (BrowserAccessibilityRelation* relation : relations_) 237 for (BrowserAccessibilityRelation* relation : relations_)
238 relation->Release(); 238 relation->Release();
239 } 239 }
240 240
241 //
242 // IAccessible methods.
243 //
244 // Conventions:
245 // * Always test for owner() first and return E_FAIL if it's false.
246 // * Always check for invalid arguments first, even if they're unused.
247 // * Return S_FALSE if the only output is a string argument and it's empty.
248 // * There are some methods that don't touch any state such as get_toolkitName.
249 // For these rare cases, you may not need to call owner().
250 //
251
252 HRESULT BrowserAccessibilityComWin::accDoDefaultAction(VARIANT var_id) {
253 if (!owner())
254 return E_FAIL;
255
256 return AXPlatformNodeWin::accDoDefaultAction(var_id);
257 }
258
259 STDMETHODIMP BrowserAccessibilityComWin::accHitTest(LONG x_left,
260 LONG y_top,
261 VARIANT* child) {
262 if (!owner())
263 return E_FAIL;
264
265 return AXPlatformNodeWin::accHitTest(x_left, y_top, child);
266 }
267
268 STDMETHODIMP BrowserAccessibilityComWin::accLocation(LONG* x_left,
269 LONG* y_top,
270 LONG* width,
271 LONG* height,
272 VARIANT var_id) {
273 if (!owner())
274 return E_FAIL;
275
276 return AXPlatformNodeWin::accLocation(x_left, y_top, width, height, var_id);
277 }
278
279 STDMETHODIMP BrowserAccessibilityComWin::accNavigate(LONG nav_dir,
280 VARIANT start,
281 VARIANT* end) {
282 if (!owner())
283 return E_FAIL;
284
285 return AXPlatformNodeWin::accNavigate(nav_dir, start, end);
286 }
287
288 STDMETHODIMP BrowserAccessibilityComWin::get_accChild(VARIANT var_child,
289 IDispatch** disp_child) {
290 if (!owner())
291 return E_FAIL;
292
293 return AXPlatformNodeWin::get_accChild(var_child, disp_child);
294 }
295
296 STDMETHODIMP BrowserAccessibilityComWin::get_accChildCount(LONG* child_count) {
297 if (!owner())
298 return E_FAIL;
299
300 return AXPlatformNodeWin::get_accChildCount(child_count);
301 }
302
303 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
304 VARIANT var_id,
305 BSTR* def_action) {
306 if (!owner())
307 return E_FAIL;
308
309 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
310 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action);
311 }
312
313 STDMETHODIMP BrowserAccessibilityComWin::get_accDescription(VARIANT var_id,
314 BSTR* desc) {
315 if (!owner())
316 return E_FAIL;
317
318 return AXPlatformNodeWin::get_accDescription(var_id, desc);
319 }
320
321 STDMETHODIMP BrowserAccessibilityComWin::get_accFocus(VARIANT* focus_child) {
322 if (!owner())
323 return E_FAIL;
324
325 return AXPlatformNodeWin::get_accFocus(focus_child);
326 }
327
328 STDMETHODIMP BrowserAccessibilityComWin::get_accHelp(VARIANT var_id,
329 BSTR* help) {
330 if (!owner())
331 return E_FAIL;
332
333 return AXPlatformNodeWin::get_accHelp(var_id, help);
334 }
335
336 STDMETHODIMP BrowserAccessibilityComWin::get_accKeyboardShortcut(
337 VARIANT var_id,
338 BSTR* acc_key) {
339 if (!owner())
340 return E_FAIL;
341
342 return AXPlatformNodeWin::get_accKeyboardShortcut(var_id, acc_key);
343 }
344
345 STDMETHODIMP BrowserAccessibilityComWin::get_accName(VARIANT var_id,
346 BSTR* name) {
347 if (!owner())
348 return E_FAIL;
349
350 return AXPlatformNodeWin::get_accName(var_id, name);
351 }
352
353 STDMETHODIMP BrowserAccessibilityComWin::get_accParent(
354 IDispatch** disp_parent) {
355 if (!owner())
356 return E_FAIL;
357
358 return AXPlatformNodeWin::get_accParent(disp_parent);
359 }
360
361 STDMETHODIMP BrowserAccessibilityComWin::get_accRole(VARIANT var_id,
362 VARIANT* role) {
363 if (!owner())
364 return E_FAIL;
365
366 return AXPlatformNodeWin::get_accRole(var_id, role);
367 }
368
369 STDMETHODIMP BrowserAccessibilityComWin::get_accState(VARIANT var_id,
370 VARIANT* state) {
371 if (!owner())
372 return E_FAIL;
373
374 return AXPlatformNodeWin::get_accState(var_id, state);
375 }
376
377 bool BrowserAccessibilityComWin::IsRangeValueSupported() { 241 bool BrowserAccessibilityComWin::IsRangeValueSupported() {
378 switch (MSAARole()) { 242 switch (MSAARole()) {
379 case ROLE_SYSTEM_PROGRESSBAR: 243 case ROLE_SYSTEM_PROGRESSBAR:
380 case ROLE_SYSTEM_SLIDER: 244 case ROLE_SYSTEM_SLIDER:
381 case ROLE_SYSTEM_SPINBUTTON: 245 case ROLE_SYSTEM_SPINBUTTON:
382 case ROLE_SYSTEM_SCROLLBAR: 246 case ROLE_SYSTEM_SCROLLBAR:
383 return true; 247 return true;
384 case ROLE_SYSTEM_SEPARATOR: 248 case ROLE_SYSTEM_SEPARATOR:
385 return owner()->HasState(ui::AX_STATE_FOCUSABLE); 249 return owner()->HasState(ui::AX_STATE_FOCUSABLE);
386 default: 250 default:
387 return false; 251 return false;
388 } 252 }
389 } 253 }
390 254
391 STDMETHODIMP BrowserAccessibilityComWin::get_accValue(VARIANT var_id, 255 //
392 BSTR* value) { 256 // IAccessible overrides:
393 if (!owner()) 257 //
394 return E_FAIL;
395 258
396 return AXPlatformNodeWin::get_accValue(var_id, value); 259 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
397 } 260 VARIANT var_id,
398 261 BSTR* def_action) {
399 STDMETHODIMP BrowserAccessibilityComWin::get_accHelpTopic(BSTR* help_file, 262 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
400 VARIANT var_id, 263 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action);
401 LONG* topic_id) {
402 return AXPlatformNodeWin::get_accHelpTopic(help_file, var_id, topic_id);
403 }
404
405 STDMETHODIMP BrowserAccessibilityComWin::get_accSelection(VARIANT* selected) {
406 if (!owner())
407 return E_FAIL;
408
409 return AXPlatformNodeWin::get_accSelection(selected);
410 }
411
412 STDMETHODIMP BrowserAccessibilityComWin::accSelect(LONG flags_sel,
413 VARIANT var_id) {
414 if (!owner())
415 return E_FAIL;
416
417 return AXPlatformNodeWin::accSelect(flags_sel, var_id);
418 }
419
420 STDMETHODIMP
421 BrowserAccessibilityComWin::put_accName(VARIANT var_id, BSTR put_name) {
422 if (!owner())
423 return E_FAIL;
424
425 return AXPlatformNodeWin::put_accName(var_id, put_name);
426 }
427 STDMETHODIMP
428 BrowserAccessibilityComWin::put_accValue(VARIANT var_id, BSTR put_val) {
429 if (!owner())
430 return E_FAIL;
431
432 return AXPlatformNodeWin::put_accValue(var_id, put_val);
433 } 264 }
434 265
435 // 266 //
436 // IAccessible2 methods. 267 // IAccessible2 overrides:
437 // 268 //
438 269
439 STDMETHODIMP BrowserAccessibilityComWin::role(LONG* role) {
440 if (!owner())
441 return E_FAIL;
442
443 return AXPlatformNodeWin::role(role);
444 }
445
446 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) { 270 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) {
447 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES); 271 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES);
448 if (!owner()) 272 if (!owner())
449 return E_FAIL; 273 return E_FAIL;
450 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 274 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
451 if (!attributes) 275 if (!attributes)
452 return E_INVALIDARG; 276 return E_INVALIDARG;
453 *attributes = nullptr; 277 *attributes = nullptr;
454 278
455 if (!owner()) 279 if (!owner())
456 return E_FAIL; 280 return E_FAIL;
457 281
458 base::string16 str; 282 base::string16 str;
459 for (const base::string16& attribute : ia2_attributes()) 283 for (const base::string16& attribute : ia2_attributes())
460 str += attribute + L';'; 284 str += attribute + L';';
461 285
462 if (str.empty()) 286 if (str.empty())
463 return S_FALSE; 287 return S_FALSE;
464 288
465 *attributes = SysAllocString(str.c_str()); 289 *attributes = SysAllocString(str.c_str());
466 DCHECK(*attributes); 290 DCHECK(*attributes);
467 return S_OK; 291 return S_OK;
468 } 292 }
469 293
470 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) { 294 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) {
471 if (!owner())
472 return E_FAIL;
473 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 295 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
474
475 return AXPlatformNodeWin::get_states(states); 296 return AXPlatformNodeWin::get_states(states);
476 } 297 }
477 298
478 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) { 299 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) {
479 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID); 300 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID);
480 if (!owner()) 301 if (!owner())
481 return E_FAIL; 302 return E_FAIL;
482 303
483 if (!unique_id) 304 if (!unique_id)
484 return E_INVALIDARG; 305 return E_INVALIDARG;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 return E_FAIL; 500 return E_FAIL;
680 501
681 if (!localized_extended_role) 502 if (!localized_extended_role)
682 return E_INVALIDARG; 503 return E_INVALIDARG;
683 504
684 return GetStringAttributeAsBstr(ui::AX_ATTR_ROLE_DESCRIPTION, 505 return GetStringAttributeAsBstr(ui::AX_ATTR_ROLE_DESCRIPTION,
685 localized_extended_role); 506 localized_extended_role);
686 } 507 }
687 508
688 // 509 //
689 // IAccessible2 methods not implemented.
690 //
691
692 STDMETHODIMP BrowserAccessibilityComWin::get_extendedRole(BSTR* extended_role) {
693 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_EXTENDED_ROLE);
694 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
695 return E_NOTIMPL;
696 }
697 STDMETHODIMP
698 BrowserAccessibilityComWin::get_nExtendedStates(LONG* n_extended_states) {
699 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_EXTENDED_STATES);
700 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
701 return E_NOTIMPL;
702 }
703 STDMETHODIMP
704 BrowserAccessibilityComWin::get_extendedStates(LONG max_extended_states,
705 BSTR** extended_states,
706 LONG* n_extended_states) {
707 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_EXTENDED_STATES);
708 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
709 return E_NOTIMPL;
710 }
711 STDMETHODIMP
712 BrowserAccessibilityComWin::get_localizedExtendedStates(
713 LONG max_localized_extended_states,
714 BSTR** localized_extended_states,
715 LONG* n_localized_extended_states) {
716 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_LOCALIZED_EXTENDED_STATES);
717 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
718 return E_NOTIMPL;
719 }
720 STDMETHODIMP BrowserAccessibilityComWin::get_locale(IA2Locale* locale) {
721 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_LOCALE);
722 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
723 return E_NOTIMPL;
724 }
725
726 //
727 // IAccessibleApplication methods. 510 // IAccessibleApplication methods.
728 // 511 //
729 512
730 STDMETHODIMP BrowserAccessibilityComWin::get_appName(BSTR* app_name) { 513 STDMETHODIMP BrowserAccessibilityComWin::get_appName(BSTR* app_name) {
731 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_APP_NAME); 514 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_APP_NAME);
732 515
733 if (!app_name) 516 if (!app_name)
734 return E_INVALIDARG; 517 return E_INVALIDARG;
735 518
736 // GetProduct() returns a string like "Chrome/aa.bb.cc.dd", split out 519 // GetProduct() returns a string like "Chrome/aa.bb.cc.dd", split out
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 641
859 // 642 //
860 // IAccessibleTable methods. 643 // IAccessibleTable methods.
861 // 644 //
862 645
863 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt( 646 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt(
864 long row, 647 long row,
865 long column, 648 long column,
866 IUnknown** accessible) { 649 IUnknown** accessible) {
867 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 650 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
868 if (!owner())
869 return E_FAIL;
870
871 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible); 651 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible);
872 } 652 }
873 653
874 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) { 654 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) {
875 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 655 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
876 if (!owner())
877 return E_FAIL;
878
879 return AXPlatformNodeWin::get_caption(accessible); 656 return AXPlatformNodeWin::get_caption(accessible);
880 } 657 }
881 658
882 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row, 659 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row,
883 long column, 660 long column,
884 long* cell_index) { 661 long* cell_index) {
885 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 662 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
886 if (!owner())
887 return E_FAIL;
888
889 return AXPlatformNodeWin::get_childIndex(row, column, cell_index); 663 return AXPlatformNodeWin::get_childIndex(row, column, cell_index);
890 } 664 }
891 665
892 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription( 666 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription(
893 long column, 667 long column,
894 BSTR* description) { 668 BSTR* description) {
895 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 669 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
896 if (!owner())
897 return E_FAIL;
898
899 return AXPlatformNodeWin::get_columnDescription(column, description); 670 return AXPlatformNodeWin::get_columnDescription(column, description);
900 } 671 }
901 672
902 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt( 673 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt(
903 long row, 674 long row,
904 long column, 675 long column,
905 long* n_columns_spanned) { 676 long* n_columns_spanned) {
906 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 677 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
907 if (!owner())
908 return E_FAIL;
909
910 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned); 678 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned);
911 } 679 }
912 680
913 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader( 681 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader(
914 IAccessibleTable** accessible_table, 682 IAccessibleTable** accessible_table,
915 long* starting_row_index) { 683 long* starting_row_index) {
916 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 684 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
917
918 if (!owner())
919 return E_FAIL;
920
921 return AXPlatformNodeWin::get_columnHeader(accessible_table, 685 return AXPlatformNodeWin::get_columnHeader(accessible_table,
922 starting_row_index); 686 starting_row_index);
923 } 687 }
924 688
925 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index, 689 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index,
926 long* column_index) { 690 long* column_index) {
927 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 691 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
928 if (!owner())
929 return E_FAIL;
930
931 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index); 692 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index);
932 } 693 }
933 694
934 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) { 695 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) {
935 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 696 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
936 if (!owner())
937 return E_FAIL;
938
939 return AXPlatformNodeWin::get_nColumns(column_count); 697 return AXPlatformNodeWin::get_nColumns(column_count);
940 } 698 }
941 699
942 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) { 700 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) {
943 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 701 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
944 if (!owner())
945 return E_FAIL;
946
947 return AXPlatformNodeWin::get_nRows(row_count); 702 return AXPlatformNodeWin::get_nRows(row_count);
948 } 703 }
949 704
950 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren( 705 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren(
951 long* cell_count) { 706 long* cell_count) {
952 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 707 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
953 if (!owner())
954 return E_FAIL;
955
956 return AXPlatformNodeWin::get_nSelectedChildren(cell_count); 708 return AXPlatformNodeWin::get_nSelectedChildren(cell_count);
957 } 709 }
958 710
959 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns( 711 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns(
960 long* column_count) { 712 long* column_count) {
961 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 713 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
962 if (!owner())
963 return E_FAIL;
964
965 return AXPlatformNodeWin::get_nSelectedColumns(column_count); 714 return AXPlatformNodeWin::get_nSelectedColumns(column_count);
966 } 715 }
967 716
968 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) { 717 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) {
969 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 718 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
970 if (!owner())
971 return E_FAIL;
972
973 return AXPlatformNodeWin::get_nSelectedRows(row_count); 719 return AXPlatformNodeWin::get_nSelectedRows(row_count);
974 } 720 }
975 721
976 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row, 722 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row,
977 BSTR* description) { 723 BSTR* description) {
978 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 724 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
979 if (!owner())
980 return E_FAIL;
981
982 return AXPlatformNodeWin::get_rowDescription(row, description); 725 return AXPlatformNodeWin::get_rowDescription(row, description);
983 } 726 }
984 727
985 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row, 728 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row,
986 long column, 729 long column,
987 long* n_rows_spanned) { 730 long* n_rows_spanned) {
988 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 731 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
989 if (!owner())
990 return E_FAIL;
991
992 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned); 732 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned);
993 } 733 }
994 734
995 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader( 735 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader(
996 IAccessibleTable** accessible_table, 736 IAccessibleTable** accessible_table,
997 long* starting_column_index) { 737 long* starting_column_index) {
998 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 738 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
999 if (!owner())
1000 return E_FAIL;
1001
1002 return AXPlatformNodeWin::get_rowHeader(accessible_table, 739 return AXPlatformNodeWin::get_rowHeader(accessible_table,
1003 starting_column_index); 740 starting_column_index);
1004 } 741 }
1005 742
1006 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index, 743 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index,
1007 long* row_index) { 744 long* row_index) {
1008 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 745 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1009 if (!owner())
1010 return E_FAIL;
1011
1012 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index); 746 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index);
1013 } 747 }
1014 748
1015 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren( 749 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren(
1016 long max_children, 750 long max_children,
1017 long** children, 751 long** children,
1018 long* n_children) { 752 long* n_children) {
1019 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 753 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1020 if (!owner())
dmazzoni 2017/07/17 17:05:36 Is there ever a case where owner_ is not equal to
dougt 2017/07/17 19:45:50 As I understand things, owner_ and delegate_ in th
1021 return E_FAIL;
1022
1023 return AXPlatformNodeWin::get_selectedChildren(max_children, children, 754 return AXPlatformNodeWin::get_selectedChildren(max_children, children,
1024 n_children); 755 n_children);
1025 } 756 }
1026 757
1027 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns, 758 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns,
1028 long** columns, 759 long** columns,
1029 long* n_columns) { 760 long* n_columns) {
1030 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 761 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
dmazzoni 2017/07/17 17:05:36 For a future change, perhaps we should set up some
dougt 2017/07/17 19:45:50 YES!! Lets discuss how to do this soon.
1031 if (!owner())
1032 return E_FAIL;
1033
1034 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns, 762 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns,
1035 n_columns); 763 n_columns);
1036 } 764 }
1037 765
1038 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows, 766 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows,
1039 long** rows, 767 long** rows,
1040 long* n_rows) { 768 long* n_rows) {
1041 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 769 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1042 if (!owner())
1043 return E_FAIL;
1044
1045 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows); 770 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows);
1046 } 771 }
1047 772
1048 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) { 773 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) {
1049 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 774 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1050 if (!owner())
1051 return E_FAIL;
1052
1053 return AXPlatformNodeWin::get_summary(accessible); 775 return AXPlatformNodeWin::get_summary(accessible);
1054 } 776 }
1055 777
1056 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected( 778 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected(
1057 long column, 779 long column,
1058 boolean* is_selected) { 780 boolean* is_selected) {
1059 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 781 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1060 if (!owner())
1061 return E_FAIL;
1062
1063 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected); 782 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected);
1064 } 783 }
1065 784
1066 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected( 785 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected(
1067 long row, 786 long row,
1068 boolean* is_selected) { 787 boolean* is_selected) {
1069 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 788 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1070 if (!owner())
1071 return E_FAIL;
1072
1073 return AXPlatformNodeWin::get_isRowSelected(row, is_selected); 789 return AXPlatformNodeWin::get_isRowSelected(row, is_selected);
1074 } 790 }
1075 791
1076 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row, 792 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row,
1077 long column, 793 long column,
1078 boolean* is_selected) { 794 boolean* is_selected) {
1079 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 795 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1080 if (!owner())
1081 return E_FAIL;
1082
1083 return AXPlatformNodeWin::get_isSelected(row, column, is_selected); 796 return AXPlatformNodeWin::get_isSelected(row, column, is_selected);
1084 } 797 }
1085 798
1086 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex( 799 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex(
1087 long index, 800 long index,
1088 long* row, 801 long* row,
1089 long* column, 802 long* column,
1090 long* row_extents, 803 long* row_extents,
1091 long* column_extents, 804 long* column_extents,
1092 boolean* is_selected) { 805 boolean* is_selected) {
1093 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 806 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1094 if (!owner())
1095 return E_FAIL;
1096
1097 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex( 807 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex(
1098 index, row, column, row_extents, column_extents, is_selected); 808 index, row, column, row_extents, column_extents, is_selected);
1099 } 809 }
1100 810
1101 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) { 811 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) {
1102 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 812 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1103 if (!owner())
1104 return E_FAIL;
1105
1106 return AXPlatformNodeWin::selectRow(row); 813 return AXPlatformNodeWin::selectRow(row);
1107 } 814 }
1108 815
1109 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) { 816 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) {
1110 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 817 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1111 if (!owner())
1112 return E_FAIL;
1113
1114 return AXPlatformNodeWin::selectColumn(column); 818 return AXPlatformNodeWin::selectColumn(column);
1115 } 819 }
1116 820
1117 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) { 821 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) {
1118 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 822 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1119 if (!owner())
1120 return E_FAIL;
1121
1122 return AXPlatformNodeWin::unselectRow(row); 823 return AXPlatformNodeWin::unselectRow(row);
1123 } 824 }
1124 825
1125 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) { 826 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) {
1126 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 827 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1127 if (!owner())
1128 return E_FAIL;
1129
1130 return AXPlatformNodeWin::unselectColumn(column); 828 return AXPlatformNodeWin::unselectColumn(column);
1131 } 829 }
1132 830
1133 STDMETHODIMP 831 STDMETHODIMP
1134 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) { 832 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) {
1135 if (!owner())
1136 return E_FAIL;
1137
1138 return AXPlatformNodeWin::get_modelChange(model_change); 833 return AXPlatformNodeWin::get_modelChange(model_change);
1139 } 834 }
1140 835
1141 // 836 //
1142 // IAccessibleTable2 methods. 837 // IAccessibleTable2 methods.
1143 // 838 //
1144 839
1145 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row, 840 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row,
1146 long column, 841 long column,
1147 IUnknown** cell) { 842 IUnknown** cell) {
1148 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader); 843 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader);
1149 if (!owner())
1150 return E_FAIL;
1151
1152 return AXPlatformNodeWin::get_cellAt(row, column, cell); 844 return AXPlatformNodeWin::get_cellAt(row, column, cell);
1153 } 845 }
1154 846
1155 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) { 847 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) {
1156 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 848 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1157 if (!owner())
1158 return E_FAIL;
1159
1160 return AXPlatformNodeWin::get_nSelectedCells(cell_count); 849 return AXPlatformNodeWin::get_nSelectedCells(cell_count);
1161 } 850 }
1162 851
1163 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells( 852 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells(
1164 IUnknown*** cells, 853 IUnknown*** cells,
1165 long* n_selected_cells) { 854 long* n_selected_cells) {
1166 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 855 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1167 if (!owner())
1168 return E_FAIL;
1169
1170 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells); 856 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells);
1171 } 857 }
1172 858
1173 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns, 859 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns,
1174 long* n_columns) { 860 long* n_columns) {
1175 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 861 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1176 if (!owner())
1177 return E_FAIL;
1178
1179 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns); 862 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns);
1180 } 863 }
1181 864
1182 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows, 865 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows,
1183 long* n_rows) { 866 long* n_rows) {
1184 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 867 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1185 if (!owner())
1186 return E_FAIL;
1187
1188 return AXPlatformNodeWin::get_selectedRows(rows, n_rows); 868 return AXPlatformNodeWin::get_selectedRows(rows, n_rows);
1189 } 869 }
1190 870
1191 // 871 //
1192 // IAccessibleTableCell methods. 872 // IAccessibleTableCell methods.
1193 // 873 //
1194 874
1195 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent( 875 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent(
1196 long* n_columns_spanned) { 876 long* n_columns_spanned) {
1197 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 877 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1198 if (!owner())
1199 return E_FAIL;
1200
1201 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned); 878 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned);
1202 } 879 }
1203 880
1204 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells( 881 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells(
1205 IUnknown*** cell_accessibles, 882 IUnknown*** cell_accessibles,
1206 long* n_column_header_cells) { 883 long* n_column_header_cells) {
1207 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 884 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1208 if (!owner())
1209 return E_FAIL;
1210
1211 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles, 885 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles,
1212 n_column_header_cells); 886 n_column_header_cells);
1213 } 887 }
1214 888
1215 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) { 889 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) {
1216 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 890 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1217 if (!owner())
1218 return E_FAIL;
1219
1220 return AXPlatformNodeWin::get_columnIndex(column_index); 891 return AXPlatformNodeWin::get_columnIndex(column_index);
1221 } 892 }
1222 893
1223 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) { 894 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) {
1224 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 895 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1225 if (!owner())
1226 return E_FAIL;
1227
1228 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned); 896 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned);
1229 } 897 }
1230 898
1231 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells( 899 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells(
1232 IUnknown*** cell_accessibles, 900 IUnknown*** cell_accessibles,
1233 long* n_row_header_cells) { 901 long* n_row_header_cells) {
1234 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 902 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1235 if (!owner())
1236 return E_FAIL;
1237
1238 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles, 903 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles,
1239 n_row_header_cells); 904 n_row_header_cells);
1240 } 905 }
1241 906
1242 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) { 907 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) {
1243 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 908 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1244 if (!owner())
1245 return E_FAIL;
1246
1247 return AXPlatformNodeWin::get_rowIndex(row_index); 909 return AXPlatformNodeWin::get_rowIndex(row_index);
1248 } 910 }
1249 911
1250 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) { 912 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) {
1251 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 913 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1252 if (!owner())
1253 return E_FAIL;
1254
1255 return AXPlatformNodeWin::get_isSelected(is_selected); 914 return AXPlatformNodeWin::get_isSelected(is_selected);
1256 } 915 }
1257 916
1258 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents( 917 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents(
1259 long* row_index, 918 long* row_index,
1260 long* column_index, 919 long* column_index,
1261 long* row_extents, 920 long* row_extents,
1262 long* column_extents, 921 long* column_extents,
1263 boolean* is_selected) { 922 boolean* is_selected) {
1264 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 923 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1265 if (!owner())
1266 return E_FAIL;
1267
1268 return AXPlatformNodeWin::get_rowColumnExtents( 924 return AXPlatformNodeWin::get_rowColumnExtents(
1269 row_index, column_index, row_extents, column_extents, is_selected); 925 row_index, column_index, row_extents, column_extents, is_selected);
1270 } 926 }
1271 927
1272 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) { 928 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) {
1273 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 929 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1274 if (!owner())
1275 return E_FAIL;
1276
1277 return AXPlatformNodeWin::get_table(table); 930 return AXPlatformNodeWin::get_table(table);
1278 } 931 }
1279 932
1280 // 933 //
1281 // IAccessibleText methods. 934 // IAccessibleText methods.
1282 // 935 //
1283 936
1284 STDMETHODIMP BrowserAccessibilityComWin::get_nCharacters(LONG* n_characters) { 937 STDMETHODIMP BrowserAccessibilityComWin::get_nCharacters(LONG* n_characters) {
1285 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_CHARACTERS); 938 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_CHARACTERS);
1286 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes | 939 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes |
(...skipping 3055 matching lines...) Expand 10 before | Expand all | Expand 10 after
4342 3995
4343 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( 3996 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
4344 BrowserAccessibility* obj) { 3997 BrowserAccessibility* obj) {
4345 if (!obj || !obj->IsNative()) 3998 if (!obj || !obj->IsNative())
4346 return nullptr; 3999 return nullptr;
4347 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM(); 4000 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM();
4348 return result; 4001 return result;
4349 } 4002 }
4350 4003
4351 } // namespace content 4004 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698