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 |