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

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: rebase 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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 // 241 //
242 // IAccessible methods. 242 // IAccessible overrides:
243 // 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 244
303 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction( 245 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
304 VARIANT var_id, 246 VARIANT var_id,
305 BSTR* def_action) { 247 BSTR* def_action) {
306 if (!owner())
307 return E_FAIL;
308
309 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 248 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
310 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action); 249 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action);
311 } 250 }
312 251
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 STDMETHODIMP BrowserAccessibilityComWin::get_accValue(VARIANT var_id,
378 BSTR* value) {
379 if (!owner())
380 return E_FAIL;
381
382 return AXPlatformNodeWin::get_accValue(var_id, value);
383 }
384
385 STDMETHODIMP BrowserAccessibilityComWin::get_accHelpTopic(BSTR* help_file,
386 VARIANT var_id,
387 LONG* topic_id) {
388 return AXPlatformNodeWin::get_accHelpTopic(help_file, var_id, topic_id);
389 }
390
391 STDMETHODIMP BrowserAccessibilityComWin::get_accSelection(VARIANT* selected) {
392 if (!owner())
393 return E_FAIL;
394
395 return AXPlatformNodeWin::get_accSelection(selected);
396 }
397
398 STDMETHODIMP BrowserAccessibilityComWin::accSelect(LONG flags_sel,
399 VARIANT var_id) {
400 if (!owner())
401 return E_FAIL;
402
403 return AXPlatformNodeWin::accSelect(flags_sel, var_id);
404 }
405
406 STDMETHODIMP
407 BrowserAccessibilityComWin::put_accName(VARIANT var_id, BSTR put_name) {
408 if (!owner())
409 return E_FAIL;
410
411 return AXPlatformNodeWin::put_accName(var_id, put_name);
412 }
413 STDMETHODIMP
414 BrowserAccessibilityComWin::put_accValue(VARIANT var_id, BSTR put_val) {
415 if (!owner())
416 return E_FAIL;
417
418 return AXPlatformNodeWin::put_accValue(var_id, put_val);
419 }
420
421 // 252 //
422 // IAccessible2 methods. 253 // IAccessible2 overrides:
423 // 254 //
424 255
425 STDMETHODIMP BrowserAccessibilityComWin::role(LONG* role) {
426 if (!owner())
427 return E_FAIL;
428
429 return AXPlatformNodeWin::role(role);
430 }
431
432 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) { 256 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) {
433 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES); 257 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES);
434 if (!owner()) 258 if (!owner())
435 return E_FAIL; 259 return E_FAIL;
436 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 260 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
437 if (!attributes) 261 if (!attributes)
438 return E_INVALIDARG; 262 return E_INVALIDARG;
439 *attributes = nullptr; 263 *attributes = nullptr;
440 264
441 if (!owner()) 265 if (!owner())
442 return E_FAIL; 266 return E_FAIL;
443 267
444 base::string16 str; 268 base::string16 str;
445 for (const base::string16& attribute : ia2_attributes()) 269 for (const base::string16& attribute : ia2_attributes())
446 str += attribute + L';'; 270 str += attribute + L';';
447 271
448 if (str.empty()) 272 if (str.empty())
449 return S_FALSE; 273 return S_FALSE;
450 274
451 *attributes = SysAllocString(str.c_str()); 275 *attributes = SysAllocString(str.c_str());
452 DCHECK(*attributes); 276 DCHECK(*attributes);
453 return S_OK; 277 return S_OK;
454 } 278 }
455 279
456 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) { 280 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) {
457 if (!owner())
458 return E_FAIL;
459 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 281 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
460
461 return AXPlatformNodeWin::get_states(states); 282 return AXPlatformNodeWin::get_states(states);
462 } 283 }
463 284
464 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) { 285 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) {
465 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID); 286 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID);
466 if (!owner()) 287 if (!owner())
467 return E_FAIL; 288 return E_FAIL;
468 289
469 if (!unique_id) 290 if (!unique_id)
470 return E_INVALIDARG; 291 return E_INVALIDARG;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 return E_FAIL; 486 return E_FAIL;
666 487
667 if (!localized_extended_role) 488 if (!localized_extended_role)
668 return E_INVALIDARG; 489 return E_INVALIDARG;
669 490
670 return GetStringAttributeAsBstr(ui::AX_ATTR_ROLE_DESCRIPTION, 491 return GetStringAttributeAsBstr(ui::AX_ATTR_ROLE_DESCRIPTION,
671 localized_extended_role); 492 localized_extended_role);
672 } 493 }
673 494
674 // 495 //
675 // IAccessible2 methods not implemented.
676 //
677
678 STDMETHODIMP BrowserAccessibilityComWin::get_extendedRole(BSTR* extended_role) {
679 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_EXTENDED_ROLE);
680 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
681 return E_NOTIMPL;
682 }
683 STDMETHODIMP
684 BrowserAccessibilityComWin::get_nExtendedStates(LONG* n_extended_states) {
685 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_EXTENDED_STATES);
686 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
687 return E_NOTIMPL;
688 }
689 STDMETHODIMP
690 BrowserAccessibilityComWin::get_extendedStates(LONG max_extended_states,
691 BSTR** extended_states,
692 LONG* n_extended_states) {
693 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_EXTENDED_STATES);
694 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
695 return E_NOTIMPL;
696 }
697 STDMETHODIMP
698 BrowserAccessibilityComWin::get_localizedExtendedStates(
699 LONG max_localized_extended_states,
700 BSTR** localized_extended_states,
701 LONG* n_localized_extended_states) {
702 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_LOCALIZED_EXTENDED_STATES);
703 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
704 return E_NOTIMPL;
705 }
706 STDMETHODIMP BrowserAccessibilityComWin::get_locale(IA2Locale* locale) {
707 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_LOCALE);
708 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
709 return E_NOTIMPL;
710 }
711
712 //
713 // IAccessibleApplication methods. 496 // IAccessibleApplication methods.
714 // 497 //
715 498
716 STDMETHODIMP BrowserAccessibilityComWin::get_appName(BSTR* app_name) { 499 STDMETHODIMP BrowserAccessibilityComWin::get_appName(BSTR* app_name) {
717 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_APP_NAME); 500 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_APP_NAME);
718 501
719 if (!app_name) 502 if (!app_name)
720 return E_INVALIDARG; 503 return E_INVALIDARG;
721 504
722 // GetProduct() returns a string like "Chrome/aa.bb.cc.dd", split out 505 // GetProduct() returns a string like "Chrome/aa.bb.cc.dd", split out
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 627
845 // 628 //
846 // IAccessibleTable methods. 629 // IAccessibleTable methods.
847 // 630 //
848 631
849 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt( 632 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt(
850 long row, 633 long row,
851 long column, 634 long column,
852 IUnknown** accessible) { 635 IUnknown** accessible) {
853 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 636 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
854 if (!owner())
855 return E_FAIL;
856
857 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible); 637 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible);
858 } 638 }
859 639
860 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) { 640 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) {
861 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 641 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
862 if (!owner())
863 return E_FAIL;
864
865 return AXPlatformNodeWin::get_caption(accessible); 642 return AXPlatformNodeWin::get_caption(accessible);
866 } 643 }
867 644
868 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row, 645 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row,
869 long column, 646 long column,
870 long* cell_index) { 647 long* cell_index) {
871 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 648 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
872 if (!owner())
873 return E_FAIL;
874
875 return AXPlatformNodeWin::get_childIndex(row, column, cell_index); 649 return AXPlatformNodeWin::get_childIndex(row, column, cell_index);
876 } 650 }
877 651
878 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription( 652 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription(
879 long column, 653 long column,
880 BSTR* description) { 654 BSTR* description) {
881 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 655 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
882 if (!owner())
883 return E_FAIL;
884
885 return AXPlatformNodeWin::get_columnDescription(column, description); 656 return AXPlatformNodeWin::get_columnDescription(column, description);
886 } 657 }
887 658
888 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt( 659 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt(
889 long row, 660 long row,
890 long column, 661 long column,
891 long* n_columns_spanned) { 662 long* n_columns_spanned) {
892 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 663 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
893 if (!owner())
894 return E_FAIL;
895
896 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned); 664 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned);
897 } 665 }
898 666
899 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader( 667 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader(
900 IAccessibleTable** accessible_table, 668 IAccessibleTable** accessible_table,
901 long* starting_row_index) { 669 long* starting_row_index) {
902 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 670 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
903
904 if (!owner())
905 return E_FAIL;
906
907 return AXPlatformNodeWin::get_columnHeader(accessible_table, 671 return AXPlatformNodeWin::get_columnHeader(accessible_table,
908 starting_row_index); 672 starting_row_index);
909 } 673 }
910 674
911 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index, 675 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index,
912 long* column_index) { 676 long* column_index) {
913 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 677 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
914 if (!owner())
915 return E_FAIL;
916
917 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index); 678 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index);
918 } 679 }
919 680
920 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) { 681 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) {
921 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 682 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
922 if (!owner())
923 return E_FAIL;
924
925 return AXPlatformNodeWin::get_nColumns(column_count); 683 return AXPlatformNodeWin::get_nColumns(column_count);
926 } 684 }
927 685
928 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) { 686 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) {
929 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 687 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
930 if (!owner())
931 return E_FAIL;
932
933 return AXPlatformNodeWin::get_nRows(row_count); 688 return AXPlatformNodeWin::get_nRows(row_count);
934 } 689 }
935 690
936 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren( 691 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren(
937 long* cell_count) { 692 long* cell_count) {
938 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 693 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
939 if (!owner())
940 return E_FAIL;
941
942 return AXPlatformNodeWin::get_nSelectedChildren(cell_count); 694 return AXPlatformNodeWin::get_nSelectedChildren(cell_count);
943 } 695 }
944 696
945 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns( 697 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns(
946 long* column_count) { 698 long* column_count) {
947 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 699 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
948 if (!owner())
949 return E_FAIL;
950
951 return AXPlatformNodeWin::get_nSelectedColumns(column_count); 700 return AXPlatformNodeWin::get_nSelectedColumns(column_count);
952 } 701 }
953 702
954 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) { 703 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) {
955 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 704 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
956 if (!owner())
957 return E_FAIL;
958
959 return AXPlatformNodeWin::get_nSelectedRows(row_count); 705 return AXPlatformNodeWin::get_nSelectedRows(row_count);
960 } 706 }
961 707
962 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row, 708 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row,
963 BSTR* description) { 709 BSTR* description) {
964 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 710 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
965 if (!owner())
966 return E_FAIL;
967
968 return AXPlatformNodeWin::get_rowDescription(row, description); 711 return AXPlatformNodeWin::get_rowDescription(row, description);
969 } 712 }
970 713
971 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row, 714 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row,
972 long column, 715 long column,
973 long* n_rows_spanned) { 716 long* n_rows_spanned) {
974 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 717 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
975 if (!owner())
976 return E_FAIL;
977
978 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned); 718 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned);
979 } 719 }
980 720
981 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader( 721 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader(
982 IAccessibleTable** accessible_table, 722 IAccessibleTable** accessible_table,
983 long* starting_column_index) { 723 long* starting_column_index) {
984 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 724 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
985 if (!owner())
986 return E_FAIL;
987
988 return AXPlatformNodeWin::get_rowHeader(accessible_table, 725 return AXPlatformNodeWin::get_rowHeader(accessible_table,
989 starting_column_index); 726 starting_column_index);
990 } 727 }
991 728
992 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index, 729 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index,
993 long* row_index) { 730 long* row_index) {
994 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 731 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
995 if (!owner())
996 return E_FAIL;
997
998 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index); 732 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index);
999 } 733 }
1000 734
1001 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren( 735 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren(
1002 long max_children, 736 long max_children,
1003 long** children, 737 long** children,
1004 long* n_children) { 738 long* n_children) {
1005 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 739 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1006 if (!owner())
1007 return E_FAIL;
1008
1009 return AXPlatformNodeWin::get_selectedChildren(max_children, children, 740 return AXPlatformNodeWin::get_selectedChildren(max_children, children,
1010 n_children); 741 n_children);
1011 } 742 }
1012 743
1013 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns, 744 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns,
1014 long** columns, 745 long** columns,
1015 long* n_columns) { 746 long* n_columns) {
1016 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 747 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1017 if (!owner())
1018 return E_FAIL;
1019
1020 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns, 748 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns,
1021 n_columns); 749 n_columns);
1022 } 750 }
1023 751
1024 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows, 752 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows,
1025 long** rows, 753 long** rows,
1026 long* n_rows) { 754 long* n_rows) {
1027 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 755 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1028 if (!owner())
1029 return E_FAIL;
1030
1031 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows); 756 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows);
1032 } 757 }
1033 758
1034 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) { 759 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) {
1035 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 760 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1036 if (!owner())
1037 return E_FAIL;
1038
1039 return AXPlatformNodeWin::get_summary(accessible); 761 return AXPlatformNodeWin::get_summary(accessible);
1040 } 762 }
1041 763
1042 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected( 764 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected(
1043 long column, 765 long column,
1044 boolean* is_selected) { 766 boolean* is_selected) {
1045 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 767 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1046 if (!owner())
1047 return E_FAIL;
1048
1049 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected); 768 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected);
1050 } 769 }
1051 770
1052 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected( 771 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected(
1053 long row, 772 long row,
1054 boolean* is_selected) { 773 boolean* is_selected) {
1055 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 774 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1056 if (!owner())
1057 return E_FAIL;
1058
1059 return AXPlatformNodeWin::get_isRowSelected(row, is_selected); 775 return AXPlatformNodeWin::get_isRowSelected(row, is_selected);
1060 } 776 }
1061 777
1062 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row, 778 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row,
1063 long column, 779 long column,
1064 boolean* is_selected) { 780 boolean* is_selected) {
1065 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 781 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1066 if (!owner())
1067 return E_FAIL;
1068
1069 return AXPlatformNodeWin::get_isSelected(row, column, is_selected); 782 return AXPlatformNodeWin::get_isSelected(row, column, is_selected);
1070 } 783 }
1071 784
1072 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex( 785 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex(
1073 long index, 786 long index,
1074 long* row, 787 long* row,
1075 long* column, 788 long* column,
1076 long* row_extents, 789 long* row_extents,
1077 long* column_extents, 790 long* column_extents,
1078 boolean* is_selected) { 791 boolean* is_selected) {
1079 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 792 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1080 if (!owner())
1081 return E_FAIL;
1082
1083 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex( 793 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex(
1084 index, row, column, row_extents, column_extents, is_selected); 794 index, row, column, row_extents, column_extents, is_selected);
1085 } 795 }
1086 796
1087 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) { 797 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) {
1088 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 798 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1089 if (!owner())
1090 return E_FAIL;
1091
1092 return AXPlatformNodeWin::selectRow(row); 799 return AXPlatformNodeWin::selectRow(row);
1093 } 800 }
1094 801
1095 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) { 802 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) {
1096 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 803 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1097 if (!owner())
1098 return E_FAIL;
1099
1100 return AXPlatformNodeWin::selectColumn(column); 804 return AXPlatformNodeWin::selectColumn(column);
1101 } 805 }
1102 806
1103 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) { 807 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) {
1104 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 808 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1105 if (!owner())
1106 return E_FAIL;
1107
1108 return AXPlatformNodeWin::unselectRow(row); 809 return AXPlatformNodeWin::unselectRow(row);
1109 } 810 }
1110 811
1111 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) { 812 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) {
1112 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 813 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1113 if (!owner())
1114 return E_FAIL;
1115
1116 return AXPlatformNodeWin::unselectColumn(column); 814 return AXPlatformNodeWin::unselectColumn(column);
1117 } 815 }
1118 816
1119 STDMETHODIMP 817 STDMETHODIMP
1120 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) { 818 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) {
1121 if (!owner())
1122 return E_FAIL;
1123
1124 return AXPlatformNodeWin::get_modelChange(model_change); 819 return AXPlatformNodeWin::get_modelChange(model_change);
1125 } 820 }
1126 821
1127 // 822 //
1128 // IAccessibleTable2 methods. 823 // IAccessibleTable2 methods.
1129 // 824 //
1130 825
1131 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row, 826 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row,
1132 long column, 827 long column,
1133 IUnknown** cell) { 828 IUnknown** cell) {
1134 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader); 829 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader);
1135 if (!owner())
1136 return E_FAIL;
1137
1138 return AXPlatformNodeWin::get_cellAt(row, column, cell); 830 return AXPlatformNodeWin::get_cellAt(row, column, cell);
1139 } 831 }
1140 832
1141 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) { 833 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) {
1142 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 834 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1143 if (!owner())
1144 return E_FAIL;
1145
1146 return AXPlatformNodeWin::get_nSelectedCells(cell_count); 835 return AXPlatformNodeWin::get_nSelectedCells(cell_count);
1147 } 836 }
1148 837
1149 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells( 838 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells(
1150 IUnknown*** cells, 839 IUnknown*** cells,
1151 long* n_selected_cells) { 840 long* n_selected_cells) {
1152 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 841 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1153 if (!owner())
1154 return E_FAIL;
1155
1156 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells); 842 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells);
1157 } 843 }
1158 844
1159 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns, 845 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns,
1160 long* n_columns) { 846 long* n_columns) {
1161 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 847 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1162 if (!owner())
1163 return E_FAIL;
1164
1165 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns); 848 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns);
1166 } 849 }
1167 850
1168 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows, 851 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows,
1169 long* n_rows) { 852 long* n_rows) {
1170 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 853 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1171 if (!owner())
1172 return E_FAIL;
1173
1174 return AXPlatformNodeWin::get_selectedRows(rows, n_rows); 854 return AXPlatformNodeWin::get_selectedRows(rows, n_rows);
1175 } 855 }
1176 856
1177 // 857 //
1178 // IAccessibleTableCell methods. 858 // IAccessibleTableCell methods.
1179 // 859 //
1180 860
1181 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent( 861 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent(
1182 long* n_columns_spanned) { 862 long* n_columns_spanned) {
1183 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 863 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1184 if (!owner())
1185 return E_FAIL;
1186
1187 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned); 864 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned);
1188 } 865 }
1189 866
1190 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells( 867 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells(
1191 IUnknown*** cell_accessibles, 868 IUnknown*** cell_accessibles,
1192 long* n_column_header_cells) { 869 long* n_column_header_cells) {
1193 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 870 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1194 if (!owner())
1195 return E_FAIL;
1196
1197 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles, 871 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles,
1198 n_column_header_cells); 872 n_column_header_cells);
1199 } 873 }
1200 874
1201 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) { 875 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) {
1202 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 876 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1203 if (!owner())
1204 return E_FAIL;
1205
1206 return AXPlatformNodeWin::get_columnIndex(column_index); 877 return AXPlatformNodeWin::get_columnIndex(column_index);
1207 } 878 }
1208 879
1209 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) { 880 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) {
1210 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 881 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1211 if (!owner())
1212 return E_FAIL;
1213
1214 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned); 882 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned);
1215 } 883 }
1216 884
1217 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells( 885 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells(
1218 IUnknown*** cell_accessibles, 886 IUnknown*** cell_accessibles,
1219 long* n_row_header_cells) { 887 long* n_row_header_cells) {
1220 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 888 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1221 if (!owner())
1222 return E_FAIL;
1223
1224 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles, 889 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles,
1225 n_row_header_cells); 890 n_row_header_cells);
1226 } 891 }
1227 892
1228 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) { 893 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) {
1229 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 894 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1230 if (!owner())
1231 return E_FAIL;
1232
1233 return AXPlatformNodeWin::get_rowIndex(row_index); 895 return AXPlatformNodeWin::get_rowIndex(row_index);
1234 } 896 }
1235 897
1236 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) { 898 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) {
1237 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 899 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1238 if (!owner())
1239 return E_FAIL;
1240
1241 return AXPlatformNodeWin::get_isSelected(is_selected); 900 return AXPlatformNodeWin::get_isSelected(is_selected);
1242 } 901 }
1243 902
1244 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents( 903 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents(
1245 long* row_index, 904 long* row_index,
1246 long* column_index, 905 long* column_index,
1247 long* row_extents, 906 long* row_extents,
1248 long* column_extents, 907 long* column_extents,
1249 boolean* is_selected) { 908 boolean* is_selected) {
1250 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 909 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1251 if (!owner())
1252 return E_FAIL;
1253
1254 return AXPlatformNodeWin::get_rowColumnExtents( 910 return AXPlatformNodeWin::get_rowColumnExtents(
1255 row_index, column_index, row_extents, column_extents, is_selected); 911 row_index, column_index, row_extents, column_extents, is_selected);
1256 } 912 }
1257 913
1258 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) { 914 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) {
1259 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 915 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1260 if (!owner())
1261 return E_FAIL;
1262
1263 return AXPlatformNodeWin::get_table(table); 916 return AXPlatformNodeWin::get_table(table);
1264 } 917 }
1265 918
1266 // 919 //
1267 // IAccessibleText methods. 920 // IAccessibleText methods.
1268 // 921 //
1269 922
1270 STDMETHODIMP BrowserAccessibilityComWin::get_nCharacters(LONG* n_characters) { 923 STDMETHODIMP BrowserAccessibilityComWin::get_nCharacters(LONG* n_characters) {
1271 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_CHARACTERS); 924 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_CHARACTERS);
1272 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes | 925 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes |
(...skipping 2809 matching lines...) Expand 10 before | Expand all | Expand 10 after
4082 3735
4083 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( 3736 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
4084 BrowserAccessibility* obj) { 3737 BrowserAccessibility* obj) {
4085 if (!obj || !obj->IsNative()) 3738 if (!obj || !obj->IsNative())
4086 return nullptr; 3739 return nullptr;
4087 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM(); 3740 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM();
4088 return result; 3741 return result;
4089 } 3742 }
4090 3743
4091 } // namespace content 3744 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/accessibility/browser_accessibility_com_win.h ('k') | ui/accessibility/platform/ax_platform_node_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698