Chromium Code Reviews| 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 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |