| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |