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 |