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

Side by Side Diff: content/browser/accessibility/browser_accessibility_com_win.cc

Issue 2981023002: Move Win32 API Histogram code to AXPlatformNode so that it can be shared. (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ui/accessibility/platform/ax_platform_node_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/accessibility/browser_accessibility_com_win.h" 5 #include "content/browser/accessibility/browser_accessibility_com_win.h"
6 6
7 #include <UIAutomationClient.h> 7 #include <UIAutomationClient.h>
8 #include <UIAutomationCoreApi.h> 8 #include <UIAutomationCoreApi.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <iterator> 11 #include <iterator>
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/metrics/histogram_macros.h"
15 #include "base/strings/string_number_conversions.h" 14 #include "base/strings/string_number_conversions.h"
16 #include "base/strings/string_split.h" 15 #include "base/strings/string_split.h"
17 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
18 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
19 #include "base/win/enum_variant.h" 18 #include "base/win/enum_variant.h"
20 #include "base/win/scoped_comptr.h" 19 #include "base/win/scoped_comptr.h"
21 #include "base/win/windows_version.h" 20 #include "base/win/windows_version.h"
22 #include "content/browser/accessibility/browser_accessibility_event_win.h" 21 #include "content/browser/accessibility/browser_accessibility_event_win.h"
23 #include "content/browser/accessibility/browser_accessibility_manager_win.h" 22 #include "content/browser/accessibility/browser_accessibility_manager_win.h"
24 #include "content/browser/accessibility/browser_accessibility_state_impl.h" 23 #include "content/browser/accessibility/browser_accessibility_state_impl.h"
25 #include "content/browser/accessibility/browser_accessibility_win.h" 24 #include "content/browser/accessibility/browser_accessibility_win.h"
26 #include "content/common/accessibility_messages.h" 25 #include "content/common/accessibility_messages.h"
27 #include "content/common/accessibility_mode.h" 26 #include "content/common/accessibility_mode.h"
28 #include "content/public/common/content_client.h" 27 #include "content/public/common/content_client.h"
29 #include "third_party/skia/include/core/SkColor.h" 28 #include "third_party/skia/include/core/SkColor.h"
30 #include "ui/accessibility/ax_role_properties.h" 29 #include "ui/accessibility/ax_role_properties.h"
31 #include "ui/accessibility/ax_text_utils.h" 30 #include "ui/accessibility/ax_text_utils.h"
32 #include "ui/base/win/accessibility_ids_win.h" 31 #include "ui/base/win/accessibility_ids_win.h"
33 #include "ui/base/win/accessibility_misc_utils.h" 32 #include "ui/base/win/accessibility_misc_utils.h"
34 #include "ui/base/win/atl_module.h" 33 #include "ui/base/win/atl_module.h"
35 34
36 namespace {
37
38 // IMPORTANT!
39 // These values are written to logs. Do not renumber or delete
40 // existing items; add new entries to the end of the list.
41 enum {
42 UMA_API_ACC_DO_DEFAULT_ACTION = 0,
43 UMA_API_ACC_HIT_TEST = 1,
44 UMA_API_ACC_LOCATION = 2,
45 UMA_API_ACC_NAVIGATE = 3,
46 UMA_API_ACC_SELECT = 4,
47 UMA_API_ADD_SELECTION = 5,
48 UMA_API_CONVERT_RETURNED_ELEMENT = 6,
49 UMA_API_DO_ACTION = 7,
50 UMA_API_GET_ACCESSIBLE_AT = 8,
51 UMA_API_GET_ACC_CHILD = 9,
52 UMA_API_GET_ACC_CHILD_COUNT = 10,
53 UMA_API_GET_ACC_DEFAULT_ACTION = 11,
54 UMA_API_GET_ACC_DESCRIPTION = 12,
55 UMA_API_GET_ACC_FOCUS = 13,
56 UMA_API_GET_ACC_HELP = 14,
57 UMA_API_GET_ACC_HELP_TOPIC = 15,
58 UMA_API_GET_ACC_KEYBOARD_SHORTCUT = 16,
59 UMA_API_GET_ACC_NAME = 17,
60 UMA_API_GET_ACC_PARENT = 18,
61 UMA_API_GET_ACC_ROLE = 19,
62 UMA_API_GET_ACC_SELECTION = 20,
63 UMA_API_GET_ACC_STATE = 21,
64 UMA_API_GET_ACC_VALUE = 22,
65 UMA_API_GET_ANCHOR = 23,
66 UMA_API_GET_ANCHOR_TARGET = 24,
67 UMA_API_GET_APP_NAME = 25,
68 UMA_API_GET_APP_VERSION = 26,
69 UMA_API_GET_ATTRIBUTES_FOR_NAMES = 27,
70 UMA_API_GET_CAPTION = 28,
71 UMA_API_GET_CARET_OFFSET = 29,
72 UMA_API_GET_CELL_AT = 30,
73 UMA_API_GET_CHARACTER_EXTENTS = 31,
74 UMA_API_GET_CHILD_AT = 32,
75 UMA_API_GET_CHILD_INDEX = 33,
76 UMA_API_GET_CLIPPED_SUBSTRING_BOUNDS = 34,
77 UMA_API_GET_COLUMN_DESCRIPTION = 35,
78 UMA_API_GET_COLUMN_EXTENT = 36,
79 UMA_API_GET_COLUMN_EXTENT_AT = 37,
80 UMA_API_GET_COLUMN_HEADER = 38,
81 UMA_API_GET_COLUMN_HEADER_CELLS = 39,
82 UMA_API_GET_COLUMN_INDEX = 40,
83 UMA_API_GET_COMPUTED_STYLE = 41,
84 UMA_API_GET_COMPUTED_STYLE_FOR_PROPERTIES = 42,
85 UMA_API_GET_CURRENT_VALUE = 43,
86 UMA_API_GET_DESCRIPTION = 44,
87 UMA_API_GET_DOC_TYPE = 45,
88 UMA_API_GET_DOM_TEXT = 46,
89 UMA_API_GET_END_INDEX = 47,
90 UMA_API_GET_EXTENDED_ROLE = 48,
91 UMA_API_GET_EXTENDED_STATES = 49,
92 UMA_API_GET_FIRST_CHILD = 50,
93 UMA_API_GET_FONT_FAMILY = 51,
94 UMA_API_GET_GROUP_POSITION = 52,
95 UMA_API_GET_HOST_RAW_ELEMENT_PROVIDER = 53,
96 UMA_API_GET_HYPERLINK = 54,
97 UMA_API_GET_HYPERLINK_INDEX = 55,
98 UMA_API_GET_IACCESSIBLE_PAIR = 56,
99 UMA_API_GET_IMAGE_POSITION = 57,
100 UMA_API_GET_IMAGE_SIZE = 58,
101 UMA_API_GET_INDEX_IN_PARENT = 59,
102 UMA_API_GET_INNER_HTML = 60,
103 UMA_API_GET_IS_COLUMN_SELECTED = 61,
104 UMA_API_GET_IS_ROW_SELECTED = 62,
105 UMA_API_GET_IS_SELECTED = 63,
106 UMA_API_GET_KEY_BINDING = 64,
107 UMA_API_GET_LANGUAGE = 65,
108 UMA_API_GET_LAST_CHILD = 66,
109 UMA_API_GET_LOCALE = 67,
110 UMA_API_GET_LOCALIZED_EXTENDED_ROLE = 68,
111 UMA_API_GET_LOCALIZED_EXTENDED_STATES = 69,
112 UMA_API_GET_LOCALIZED_NAME = 70,
113 UMA_API_GET_LOCAL_INTERFACE = 71,
114 UMA_API_GET_MAXIMUM_VALUE = 72,
115 UMA_API_GET_MIME_TYPE = 73,
116 UMA_API_GET_MINIMUM_VALUE = 74,
117 UMA_API_GET_NAME = 75,
118 UMA_API_GET_NAMESPACE_URI_FOR_ID = 76,
119 UMA_API_GET_NEW_TEXT = 77,
120 UMA_API_GET_NEXT_SIBLING = 78,
121 UMA_API_GET_NODE_INFO = 79,
122 UMA_API_GET_N_CHARACTERS = 80,
123 UMA_API_GET_N_COLUMNS = 81,
124 UMA_API_GET_N_EXTENDED_STATES = 82,
125 UMA_API_GET_N_HYPERLINKS = 83,
126 UMA_API_GET_N_RELATIONS = 84,
127 UMA_API_GET_N_ROWS = 85,
128 UMA_API_GET_N_SELECTED_CELLS = 86,
129 UMA_API_GET_N_SELECTED_CHILDREN = 87,
130 UMA_API_GET_N_SELECTED_COLUMNS = 88,
131 UMA_API_GET_N_SELECTED_ROWS = 89,
132 UMA_API_GET_N_SELECTIONS = 90,
133 UMA_API_GET_OBJECT_FOR_CHILD = 91,
134 UMA_API_GET_OFFSET_AT_POINT = 92,
135 UMA_API_GET_OLD_TEXT = 93,
136 UMA_API_GET_PARENT_NODE = 94,
137 UMA_API_GET_PATTERN_PROVIDER = 95,
138 UMA_API_GET_PREVIOUS_SIBLING = 96,
139 UMA_API_GET_PROPERTY_VALUE = 97,
140 UMA_API_GET_PROVIDER_OPTIONS = 98,
141 UMA_API_GET_RELATION = 99,
142 UMA_API_GET_RELATIONS = 100,
143 UMA_API_GET_ROW_COLUMN_EXTENTS = 101,
144 UMA_API_GET_ROW_COLUMN_EXTENTS_AT_INDEX = 102,
145 UMA_API_GET_ROW_DESCRIPTION = 103,
146 UMA_API_GET_ROW_EXTENT = 104,
147 UMA_API_GET_ROW_EXTENT_AT = 105,
148 UMA_API_GET_ROW_HEADER = 106,
149 UMA_API_GET_ROW_HEADER_CELLS = 107,
150 UMA_API_GET_ROW_INDEX = 108,
151 UMA_API_GET_RUNTIME_ID = 109,
152 UMA_API_GET_SELECTED_CELLS = 110,
153 UMA_API_GET_SELECTED_CHILDREN = 111,
154 UMA_API_GET_SELECTED_COLUMNS = 112,
155 UMA_API_GET_SELECTED_ROWS = 113,
156 UMA_API_GET_SELECTION = 114,
157 UMA_API_GET_START_INDEX = 115,
158 UMA_API_GET_STATES = 116,
159 UMA_API_GET_SUMMARY = 117,
160 UMA_API_GET_TABLE = 118,
161 UMA_API_GET_TEXT = 119,
162 UMA_API_GET_TEXT_AFTER_OFFSET = 120,
163 UMA_API_GET_TEXT_AT_OFFSET = 121,
164 UMA_API_GET_TEXT_BEFORE_OFFSET = 122,
165 UMA_API_GET_TITLE = 123,
166 UMA_API_GET_TOOLKIT_NAME = 124,
167 UMA_API_GET_TOOLKIT_VERSION = 125,
168 UMA_API_GET_UNCLIPPED_SUBSTRING_BOUNDS = 126,
169 UMA_API_GET_UNIQUE_ID = 127,
170 UMA_API_GET_URL = 128,
171 UMA_API_GET_VALID = 129,
172 UMA_API_GET_WINDOW_HANDLE = 130,
173 UMA_API_IA2_GET_ATTRIBUTES = 131,
174 UMA_API_IA2_SCROLL_TO = 132,
175 UMA_API_IAACTION_GET_DESCRIPTION = 133,
176 UMA_API_IATEXT_GET_ATTRIBUTES = 134,
177 UMA_API_ISIMPLEDOMNODE_GET_ATTRIBUTES = 135,
178 UMA_API_ISIMPLEDOMNODE_SCROLL_TO = 136,
179 UMA_API_N_ACTIONS = 137,
180 UMA_API_PUT_ALTERNATE_VIEW_MEDIA_TYPES = 138,
181 UMA_API_QUERY_SERVICE = 139,
182 UMA_API_REMOVE_SELECTION = 140,
183 UMA_API_ROLE = 141,
184 UMA_API_SCROLL_SUBSTRING_TO = 142,
185 UMA_API_SCROLL_SUBSTRING_TO_POINT = 143,
186 UMA_API_SCROLL_TO_POINT = 144,
187 UMA_API_SCROLL_TO_SUBSTRING = 145,
188 UMA_API_SELECT_COLUMN = 146,
189 UMA_API_SELECT_ROW = 147,
190 UMA_API_SET_CARET_OFFSET = 148,
191 UMA_API_SET_CURRENT_VALUE = 149,
192 UMA_API_SET_SELECTION = 150,
193 UMA_API_TABLE2_GET_SELECTED_COLUMNS = 151,
194 UMA_API_TABLE2_GET_SELECTED_ROWS = 152,
195 UMA_API_TABLECELL_GET_COLUMN_INDEX = 153,
196 UMA_API_TABLECELL_GET_IS_SELECTED = 154,
197 UMA_API_TABLECELL_GET_ROW_INDEX = 155,
198 UMA_API_UNSELECT_COLUMN = 156,
199 UMA_API_UNSELECT_ROW = 157,
200
201 // This must always be the last enum. It's okay for its value to
202 // increase, but none of the other enum values may change.
203 UMA_API_MAX
204 };
205
206 #define WIN_ACCESSIBILITY_API_HISTOGRAM(enum_value) \
207 UMA_HISTOGRAM_ENUMERATION("Accessibility.WinAPIs", enum_value, UMA_API_MAX)
208
209 // There is no easy way to decouple |kScreenReader| and |kHTML| accessibility 35 // There is no easy way to decouple |kScreenReader| and |kHTML| accessibility
210 // modes when Windows screen readers are used. For example, certain roles use 36 // modes when Windows screen readers are used. For example, certain roles use
211 // the HTML tag name. Input fields require their type attribute to be exposed. 37 // the HTML tag name. Input fields require their type attribute to be exposed.
212 const uint32_t kScreenReaderAndHTMLAccessibilityModes = 38 const uint32_t kScreenReaderAndHTMLAccessibilityModes =
213 content::AccessibilityMode::kScreenReader | 39 content::AccessibilityMode::kScreenReader |
214 content::AccessibilityMode::kHTML; 40 content::AccessibilityMode::kHTML;
215 41
216 const WCHAR* const IA2_RELATION_DETAILS = L"details"; 42 const WCHAR* const IA2_RELATION_DETAILS = L"details";
217 const WCHAR* const IA2_RELATION_DETAILS_FOR = L"detailsFor"; 43 const WCHAR* const IA2_RELATION_DETAILS_FOR = L"detailsFor";
218 const WCHAR* const IA2_RELATION_ERROR_MESSAGE = L"errorMessage"; 44 const WCHAR* const IA2_RELATION_ERROR_MESSAGE = L"errorMessage";
219 45
220 } // namespace
221
222 namespace content { 46 namespace content {
223 47
224 using AXPlatformPositionInstance = AXPlatformPosition::AXPositionInstance; 48 using AXPlatformPositionInstance = AXPlatformPosition::AXPositionInstance;
225 using AXPlatformRange = ui::AXRange<AXPlatformPositionInstance::element_type>; 49 using AXPlatformRange = ui::AXRange<AXPlatformPositionInstance::element_type>;
226 50
227 // These nonstandard GUIDs are taken directly from the Mozilla sources 51 // These nonstandard GUIDs are taken directly from the Mozilla sources
228 // (accessible/src/msaa/nsAccessNodeWrap.cpp); some documentation is here: 52 // (accessible/src/msaa/nsAccessNodeWrap.cpp); some documentation is here:
229 // http://developer.mozilla.org/en/Accessibility/AT-APIs/ImplementationFeatures/ MSAA 53 // http://developer.mozilla.org/en/Accessibility/AT-APIs/ImplementationFeatures/ MSAA
230 const GUID GUID_ISimpleDOM = {0x0c539790, 54 const GUID GUID_ISimpleDOM = {0x0c539790,
231 0x12e4, 55 0x12e4,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 // 243 //
420 // Conventions: 244 // Conventions:
421 // * Always test for owner() first and return E_FAIL if it's false. 245 // * Always test for owner() first and return E_FAIL if it's false.
422 // * Always check for invalid arguments first, even if they're unused. 246 // * Always check for invalid arguments first, even if they're unused.
423 // * Return S_FALSE if the only output is a string argument and it's empty. 247 // * Return S_FALSE if the only output is a string argument and it's empty.
424 // * There are some methods that don't touch any state such as get_toolkitName. 248 // * There are some methods that don't touch any state such as get_toolkitName.
425 // For these rare cases, you may not need to call owner(). 249 // For these rare cases, you may not need to call owner().
426 // 250 //
427 251
428 HRESULT BrowserAccessibilityComWin::accDoDefaultAction(VARIANT var_id) { 252 HRESULT BrowserAccessibilityComWin::accDoDefaultAction(VARIANT var_id) {
429 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ACC_DO_DEFAULT_ACTION);
430
431 if (!owner()) 253 if (!owner())
432 return E_FAIL; 254 return E_FAIL;
433 255
434 return AXPlatformNodeWin::accDoDefaultAction(var_id); 256 return AXPlatformNodeWin::accDoDefaultAction(var_id);
435 } 257 }
436 258
437 STDMETHODIMP BrowserAccessibilityComWin::accHitTest(LONG x_left, 259 STDMETHODIMP BrowserAccessibilityComWin::accHitTest(LONG x_left,
438 LONG y_top, 260 LONG y_top,
439 VARIANT* child) { 261 VARIANT* child) {
440 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ACC_HIT_TEST);
441
442 if (!owner()) 262 if (!owner())
443 return E_FAIL; 263 return E_FAIL;
444 264
445 return AXPlatformNodeWin::accHitTest(x_left, y_top, child); 265 return AXPlatformNodeWin::accHitTest(x_left, y_top, child);
446 } 266 }
447 267
448 STDMETHODIMP BrowserAccessibilityComWin::accLocation(LONG* x_left, 268 STDMETHODIMP BrowserAccessibilityComWin::accLocation(LONG* x_left,
449 LONG* y_top, 269 LONG* y_top,
450 LONG* width, 270 LONG* width,
451 LONG* height, 271 LONG* height,
452 VARIANT var_id) { 272 VARIANT var_id) {
453 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ACC_LOCATION);
454 if (!owner()) 273 if (!owner())
455 return E_FAIL; 274 return E_FAIL;
456 275
457 return AXPlatformNodeWin::accLocation(x_left, y_top, width, height, var_id); 276 return AXPlatformNodeWin::accLocation(x_left, y_top, width, height, var_id);
458 } 277 }
459 278
460 STDMETHODIMP BrowserAccessibilityComWin::accNavigate(LONG nav_dir, 279 STDMETHODIMP BrowserAccessibilityComWin::accNavigate(LONG nav_dir,
461 VARIANT start, 280 VARIANT start,
462 VARIANT* end) { 281 VARIANT* end) {
463 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ACC_NAVIGATE);
464 if (!owner()) 282 if (!owner())
465 return E_FAIL; 283 return E_FAIL;
466 284
467 return AXPlatformNodeWin::accNavigate(nav_dir, start, end); 285 return AXPlatformNodeWin::accNavigate(nav_dir, start, end);
468 } 286 }
469 287
470 STDMETHODIMP BrowserAccessibilityComWin::get_accChild(VARIANT var_child, 288 STDMETHODIMP BrowserAccessibilityComWin::get_accChild(VARIANT var_child,
471 IDispatch** disp_child) { 289 IDispatch** disp_child) {
472 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_CHILD);
473 if (!owner()) 290 if (!owner())
474 return E_FAIL; 291 return E_FAIL;
475 292
476 return AXPlatformNodeWin::get_accChild(var_child, disp_child); 293 return AXPlatformNodeWin::get_accChild(var_child, disp_child);
477 } 294 }
478 295
479 STDMETHODIMP BrowserAccessibilityComWin::get_accChildCount(LONG* child_count) { 296 STDMETHODIMP BrowserAccessibilityComWin::get_accChildCount(LONG* child_count) {
480 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_CHILD_COUNT);
481 if (!owner()) 297 if (!owner())
482 return E_FAIL; 298 return E_FAIL;
483 299
484 return AXPlatformNodeWin::get_accChildCount(child_count); 300 return AXPlatformNodeWin::get_accChildCount(child_count);
485 } 301 }
486 302
487 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction( 303 STDMETHODIMP BrowserAccessibilityComWin::get_accDefaultAction(
488 VARIANT var_id, 304 VARIANT var_id,
489 BSTR* def_action) { 305 BSTR* def_action) {
490 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_DEFAULT_ACTION);
491 if (!owner()) 306 if (!owner())
492 return E_FAIL; 307 return E_FAIL;
493 308
494 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 309 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
495 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action); 310 return AXPlatformNodeWin::get_accDefaultAction(var_id, def_action);
496 } 311 }
497 312
498 STDMETHODIMP BrowserAccessibilityComWin::get_accDescription(VARIANT var_id, 313 STDMETHODIMP BrowserAccessibilityComWin::get_accDescription(VARIANT var_id,
499 BSTR* desc) { 314 BSTR* desc) {
500 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_DESCRIPTION);
501 if (!owner()) 315 if (!owner())
502 return E_FAIL; 316 return E_FAIL;
503 317
504 return AXPlatformNodeWin::get_accDescription(var_id, desc); 318 return AXPlatformNodeWin::get_accDescription(var_id, desc);
505 } 319 }
506 320
507 STDMETHODIMP BrowserAccessibilityComWin::get_accFocus(VARIANT* focus_child) { 321 STDMETHODIMP BrowserAccessibilityComWin::get_accFocus(VARIANT* focus_child) {
508 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_FOCUS);
509 if (!owner()) 322 if (!owner())
510 return E_FAIL; 323 return E_FAIL;
511 324
512 return AXPlatformNodeWin::get_accFocus(focus_child); 325 return AXPlatformNodeWin::get_accFocus(focus_child);
513 } 326 }
514 327
515 STDMETHODIMP BrowserAccessibilityComWin::get_accHelp(VARIANT var_id, 328 STDMETHODIMP BrowserAccessibilityComWin::get_accHelp(VARIANT var_id,
516 BSTR* help) { 329 BSTR* help) {
517 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_HELP);
518 if (!owner()) 330 if (!owner())
519 return E_FAIL; 331 return E_FAIL;
520 332
521 return AXPlatformNodeWin::get_accHelp(var_id, help); 333 return AXPlatformNodeWin::get_accHelp(var_id, help);
522 } 334 }
523 335
524 STDMETHODIMP BrowserAccessibilityComWin::get_accKeyboardShortcut( 336 STDMETHODIMP BrowserAccessibilityComWin::get_accKeyboardShortcut(
525 VARIANT var_id, 337 VARIANT var_id,
526 BSTR* acc_key) { 338 BSTR* acc_key) {
527 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_KEYBOARD_SHORTCUT);
528 if (!owner()) 339 if (!owner())
529 return E_FAIL; 340 return E_FAIL;
530 341
531 return AXPlatformNodeWin::get_accKeyboardShortcut(var_id, acc_key); 342 return AXPlatformNodeWin::get_accKeyboardShortcut(var_id, acc_key);
532 } 343 }
533 344
534 STDMETHODIMP BrowserAccessibilityComWin::get_accName(VARIANT var_id, 345 STDMETHODIMP BrowserAccessibilityComWin::get_accName(VARIANT var_id,
535 BSTR* name) { 346 BSTR* name) {
536 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_NAME);
537 if (!owner()) 347 if (!owner())
538 return E_FAIL; 348 return E_FAIL;
539 349
540 return AXPlatformNodeWin::get_accName(var_id, name); 350 return AXPlatformNodeWin::get_accName(var_id, name);
541 } 351 }
542 352
543 STDMETHODIMP BrowserAccessibilityComWin::get_accParent( 353 STDMETHODIMP BrowserAccessibilityComWin::get_accParent(
544 IDispatch** disp_parent) { 354 IDispatch** disp_parent) {
545 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_PARENT);
546 if (!owner()) 355 if (!owner())
547 return E_FAIL; 356 return E_FAIL;
548 357
549 return AXPlatformNodeWin::get_accParent(disp_parent); 358 return AXPlatformNodeWin::get_accParent(disp_parent);
550 } 359 }
551 360
552 STDMETHODIMP BrowserAccessibilityComWin::get_accRole(VARIANT var_id, 361 STDMETHODIMP BrowserAccessibilityComWin::get_accRole(VARIANT var_id,
553 VARIANT* role) { 362 VARIANT* role) {
554 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_ROLE);
555 if (!owner()) 363 if (!owner())
556 return E_FAIL; 364 return E_FAIL;
557 365
558 return AXPlatformNodeWin::get_accRole(var_id, role); 366 return AXPlatformNodeWin::get_accRole(var_id, role);
559 } 367 }
560 368
561 STDMETHODIMP BrowserAccessibilityComWin::get_accState(VARIANT var_id, 369 STDMETHODIMP BrowserAccessibilityComWin::get_accState(VARIANT var_id,
562 VARIANT* state) { 370 VARIANT* state) {
563 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_STATE);
564 if (!owner()) 371 if (!owner())
565 return E_FAIL; 372 return E_FAIL;
566 373
567 return AXPlatformNodeWin::get_accState(var_id, state); 374 return AXPlatformNodeWin::get_accState(var_id, state);
568 } 375 }
569 376
570 bool BrowserAccessibilityComWin::IsRangeValueSupported() { 377 bool BrowserAccessibilityComWin::IsRangeValueSupported() {
571 switch (MSAARole()) { 378 switch (MSAARole()) {
572 case ROLE_SYSTEM_PROGRESSBAR: 379 case ROLE_SYSTEM_PROGRESSBAR:
573 case ROLE_SYSTEM_SLIDER: 380 case ROLE_SYSTEM_SLIDER:
574 case ROLE_SYSTEM_SPINBUTTON: 381 case ROLE_SYSTEM_SPINBUTTON:
575 case ROLE_SYSTEM_SCROLLBAR: 382 case ROLE_SYSTEM_SCROLLBAR:
576 return true; 383 return true;
577 case ROLE_SYSTEM_SEPARATOR: 384 case ROLE_SYSTEM_SEPARATOR:
578 return owner()->HasState(ui::AX_STATE_FOCUSABLE); 385 return owner()->HasState(ui::AX_STATE_FOCUSABLE);
579 default: 386 default:
580 return false; 387 return false;
581 } 388 }
582 } 389 }
583 390
584 STDMETHODIMP BrowserAccessibilityComWin::get_accValue(VARIANT var_id, 391 STDMETHODIMP BrowserAccessibilityComWin::get_accValue(VARIANT var_id,
585 BSTR* value) { 392 BSTR* value) {
586 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_VALUE);
587 if (!owner()) 393 if (!owner())
588 return E_FAIL; 394 return E_FAIL;
589 395
590 return AXPlatformNodeWin::get_accValue(var_id, value); 396 return AXPlatformNodeWin::get_accValue(var_id, value);
591 } 397 }
592 398
593 STDMETHODIMP BrowserAccessibilityComWin::get_accHelpTopic(BSTR* help_file, 399 STDMETHODIMP BrowserAccessibilityComWin::get_accHelpTopic(BSTR* help_file,
594 VARIANT var_id, 400 VARIANT var_id,
595 LONG* topic_id) { 401 LONG* topic_id) {
596 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_HELP_TOPIC);
597 return AXPlatformNodeWin::get_accHelpTopic(help_file, var_id, topic_id); 402 return AXPlatformNodeWin::get_accHelpTopic(help_file, var_id, topic_id);
598 } 403 }
599 404
600 STDMETHODIMP BrowserAccessibilityComWin::get_accSelection(VARIANT* selected) { 405 STDMETHODIMP BrowserAccessibilityComWin::get_accSelection(VARIANT* selected) {
601 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACC_SELECTION);
602 if (!owner()) 406 if (!owner())
603 return E_FAIL; 407 return E_FAIL;
604 408
605 return AXPlatformNodeWin::get_accSelection(selected); 409 return AXPlatformNodeWin::get_accSelection(selected);
606 } 410 }
607 411
608 STDMETHODIMP BrowserAccessibilityComWin::accSelect(LONG flags_sel, 412 STDMETHODIMP BrowserAccessibilityComWin::accSelect(LONG flags_sel,
609 VARIANT var_id) { 413 VARIANT var_id) {
610 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ACC_SELECT);
611 if (!owner()) 414 if (!owner())
612 return E_FAIL; 415 return E_FAIL;
613 416
614 return AXPlatformNodeWin::accSelect(flags_sel, var_id); 417 return AXPlatformNodeWin::accSelect(flags_sel, var_id);
615 } 418 }
616 419
617 STDMETHODIMP 420 STDMETHODIMP
618 BrowserAccessibilityComWin::put_accName(VARIANT var_id, BSTR put_name) { 421 BrowserAccessibilityComWin::put_accName(VARIANT var_id, BSTR put_name) {
619 if (!owner()) 422 if (!owner())
620 return E_FAIL; 423 return E_FAIL;
621 424
622 return AXPlatformNodeWin::put_accName(var_id, put_name); 425 return AXPlatformNodeWin::put_accName(var_id, put_name);
623 } 426 }
624 STDMETHODIMP 427 STDMETHODIMP
625 BrowserAccessibilityComWin::put_accValue(VARIANT var_id, BSTR put_val) { 428 BrowserAccessibilityComWin::put_accValue(VARIANT var_id, BSTR put_val) {
626 if (!owner()) 429 if (!owner())
627 return E_FAIL; 430 return E_FAIL;
628 431
629 return AXPlatformNodeWin::put_accValue(var_id, put_val); 432 return AXPlatformNodeWin::put_accValue(var_id, put_val);
630 } 433 }
631 434
632 // 435 //
633 // IAccessible2 methods. 436 // IAccessible2 methods.
634 // 437 //
635 438
636 STDMETHODIMP BrowserAccessibilityComWin::role(LONG* role) { 439 STDMETHODIMP BrowserAccessibilityComWin::role(LONG* role) {
637 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_ROLE);
638 if (!owner()) 440 if (!owner())
639 return E_FAIL; 441 return E_FAIL;
640 442
641 return AXPlatformNodeWin::role(role); 443 return AXPlatformNodeWin::role(role);
642 } 444 }
643 445
644 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) { 446 STDMETHODIMP BrowserAccessibilityComWin::get_attributes(BSTR* attributes) {
645 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES); 447 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_IA2_GET_ATTRIBUTES);
646 if (!owner()) 448 if (!owner())
647 return E_FAIL; 449 return E_FAIL;
(...skipping 11 matching lines...) Expand all
659 461
660 if (str.empty()) 462 if (str.empty())
661 return S_FALSE; 463 return S_FALSE;
662 464
663 *attributes = SysAllocString(str.c_str()); 465 *attributes = SysAllocString(str.c_str());
664 DCHECK(*attributes); 466 DCHECK(*attributes);
665 return S_OK; 467 return S_OK;
666 } 468 }
667 469
668 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) { 470 STDMETHODIMP BrowserAccessibilityComWin::get_states(AccessibleStates* states) {
669 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_STATES);
670 if (!owner()) 471 if (!owner())
671 return E_FAIL; 472 return E_FAIL;
672 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 473 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
673 474
674 return AXPlatformNodeWin::get_states(states); 475 return AXPlatformNodeWin::get_states(states);
675 } 476 }
676 477
677 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) { 478 STDMETHODIMP BrowserAccessibilityComWin::get_uniqueID(LONG* unique_id) {
678 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID); 479 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_UNIQUE_ID);
679 if (!owner()) 480 if (!owner())
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 } 857 }
1057 858
1058 // 859 //
1059 // IAccessibleTable methods. 860 // IAccessibleTable methods.
1060 // 861 //
1061 862
1062 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt( 863 STDMETHODIMP BrowserAccessibilityComWin::get_accessibleAt(
1063 long row, 864 long row,
1064 long column, 865 long column,
1065 IUnknown** accessible) { 866 IUnknown** accessible) {
1066 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ACCESSIBLE_AT);
1067 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 867 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1068 if (!owner()) 868 if (!owner())
1069 return E_FAIL; 869 return E_FAIL;
1070 870
1071 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible); 871 return AXPlatformNodeWin::get_accessibleAt(row, column, accessible);
1072 } 872 }
1073 873
1074 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) { 874 STDMETHODIMP BrowserAccessibilityComWin::get_caption(IUnknown** accessible) {
1075 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_CAPTION);
1076 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 875 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1077 if (!owner()) 876 if (!owner())
1078 return E_FAIL; 877 return E_FAIL;
1079 878
1080 return AXPlatformNodeWin::get_caption(accessible); 879 return AXPlatformNodeWin::get_caption(accessible);
1081 } 880 }
1082 881
1083 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row, 882 STDMETHODIMP BrowserAccessibilityComWin::get_childIndex(long row,
1084 long column, 883 long column,
1085 long* cell_index) { 884 long* cell_index) {
1086 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_CHILD_INDEX);
1087 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 885 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1088 if (!owner()) 886 if (!owner())
1089 return E_FAIL; 887 return E_FAIL;
1090 888
1091 return AXPlatformNodeWin::get_childIndex(row, column, cell_index); 889 return AXPlatformNodeWin::get_childIndex(row, column, cell_index);
1092 } 890 }
1093 891
1094 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription( 892 STDMETHODIMP BrowserAccessibilityComWin::get_columnDescription(
1095 long column, 893 long column,
1096 BSTR* description) { 894 BSTR* description) {
1097 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_DESCRIPTION);
1098 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 895 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1099 if (!owner()) 896 if (!owner())
1100 return E_FAIL; 897 return E_FAIL;
1101 898
1102 return AXPlatformNodeWin::get_columnDescription(column, description); 899 return AXPlatformNodeWin::get_columnDescription(column, description);
1103 } 900 }
1104 901
1105 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt( 902 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtentAt(
1106 long row, 903 long row,
1107 long column, 904 long column,
1108 long* n_columns_spanned) { 905 long* n_columns_spanned) {
1109 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_EXTENT_AT);
1110 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 906 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1111 if (!owner()) 907 if (!owner())
1112 return E_FAIL; 908 return E_FAIL;
1113 909
1114 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned); 910 return AXPlatformNodeWin::get_columnExtentAt(row, column, n_columns_spanned);
1115 } 911 }
1116 912
1117 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader( 913 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeader(
1118 IAccessibleTable** accessible_table, 914 IAccessibleTable** accessible_table,
1119 long* starting_row_index) { 915 long* starting_row_index) {
1120 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_HEADER);
1121 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 916 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1122 917
1123 if (!owner()) 918 if (!owner())
1124 return E_FAIL; 919 return E_FAIL;
1125 920
1126 return AXPlatformNodeWin::get_columnHeader(accessible_table, 921 return AXPlatformNodeWin::get_columnHeader(accessible_table,
1127 starting_row_index); 922 starting_row_index);
1128 } 923 }
1129 924
1130 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index, 925 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long cell_index,
1131 long* column_index) { 926 long* column_index) {
1132 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_INDEX);
1133 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 927 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1134 if (!owner()) 928 if (!owner())
1135 return E_FAIL; 929 return E_FAIL;
1136 930
1137 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index); 931 return AXPlatformNodeWin::get_columnIndex(cell_index, column_index);
1138 } 932 }
1139 933
1140 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) { 934 STDMETHODIMP BrowserAccessibilityComWin::get_nColumns(long* column_count) {
1141 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_COLUMNS);
1142 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 935 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1143 if (!owner()) 936 if (!owner())
1144 return E_FAIL; 937 return E_FAIL;
1145 938
1146 return AXPlatformNodeWin::get_nColumns(column_count); 939 return AXPlatformNodeWin::get_nColumns(column_count);
1147 } 940 }
1148 941
1149 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) { 942 STDMETHODIMP BrowserAccessibilityComWin::get_nRows(long* row_count) {
1150 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_ROWS);
1151 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 943 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1152 if (!owner()) 944 if (!owner())
1153 return E_FAIL; 945 return E_FAIL;
1154 946
1155 return AXPlatformNodeWin::get_nRows(row_count); 947 return AXPlatformNodeWin::get_nRows(row_count);
1156 } 948 }
1157 949
1158 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren( 950 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedChildren(
1159 long* cell_count) { 951 long* cell_count) {
1160 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_SELECTED_CHILDREN);
1161 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 952 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1162 if (!owner()) 953 if (!owner())
1163 return E_FAIL; 954 return E_FAIL;
1164 955
1165 return AXPlatformNodeWin::get_nSelectedChildren(cell_count); 956 return AXPlatformNodeWin::get_nSelectedChildren(cell_count);
1166 } 957 }
1167 958
1168 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns( 959 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedColumns(
1169 long* column_count) { 960 long* column_count) {
1170 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_SELECTED_COLUMNS);
1171 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 961 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1172 if (!owner()) 962 if (!owner())
1173 return E_FAIL; 963 return E_FAIL;
1174 964
1175 return AXPlatformNodeWin::get_nSelectedColumns(column_count); 965 return AXPlatformNodeWin::get_nSelectedColumns(column_count);
1176 } 966 }
1177 967
1178 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) { 968 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedRows(long* row_count) {
1179 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_SELECTED_ROWS);
1180 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 969 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1181 if (!owner()) 970 if (!owner())
1182 return E_FAIL; 971 return E_FAIL;
1183 972
1184 return AXPlatformNodeWin::get_nSelectedRows(row_count); 973 return AXPlatformNodeWin::get_nSelectedRows(row_count);
1185 } 974 }
1186 975
1187 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row, 976 STDMETHODIMP BrowserAccessibilityComWin::get_rowDescription(long row,
1188 BSTR* description) { 977 BSTR* description) {
1189 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_DESCRIPTION);
1190 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 978 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1191 if (!owner()) 979 if (!owner())
1192 return E_FAIL; 980 return E_FAIL;
1193 981
1194 return AXPlatformNodeWin::get_rowDescription(row, description); 982 return AXPlatformNodeWin::get_rowDescription(row, description);
1195 } 983 }
1196 984
1197 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row, 985 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtentAt(long row,
1198 long column, 986 long column,
1199 long* n_rows_spanned) { 987 long* n_rows_spanned) {
1200 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_EXTENT_AT);
1201 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 988 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1202 if (!owner()) 989 if (!owner())
1203 return E_FAIL; 990 return E_FAIL;
1204 991
1205 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned); 992 return AXPlatformNodeWin::get_rowExtentAt(row, column, n_rows_spanned);
1206 } 993 }
1207 994
1208 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader( 995 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeader(
1209 IAccessibleTable** accessible_table, 996 IAccessibleTable** accessible_table,
1210 long* starting_column_index) { 997 long* starting_column_index) {
1211 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_HEADER);
1212 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 998 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1213 if (!owner()) 999 if (!owner())
1214 return E_FAIL; 1000 return E_FAIL;
1215 1001
1216 return AXPlatformNodeWin::get_rowHeader(accessible_table, 1002 return AXPlatformNodeWin::get_rowHeader(accessible_table,
1217 starting_column_index); 1003 starting_column_index);
1218 } 1004 }
1219 1005
1220 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index, 1006 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long cell_index,
1221 long* row_index) { 1007 long* row_index) {
1222 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_INDEX);
1223 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1008 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1224 if (!owner()) 1009 if (!owner())
1225 return E_FAIL; 1010 return E_FAIL;
1226 1011
1227 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index); 1012 return AXPlatformNodeWin::get_rowIndex(cell_index, row_index);
1228 } 1013 }
1229 1014
1230 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren( 1015 STDMETHODIMP BrowserAccessibilityComWin::get_selectedChildren(
1231 long max_children, 1016 long max_children,
1232 long** children, 1017 long** children,
1233 long* n_children) { 1018 long* n_children) {
1234 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_SELECTED_CHILDREN);
1235 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1019 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1236 if (!owner()) 1020 if (!owner())
1237 return E_FAIL; 1021 return E_FAIL;
1238 1022
1239 return AXPlatformNodeWin::get_selectedChildren(max_children, children, 1023 return AXPlatformNodeWin::get_selectedChildren(max_children, children,
1240 n_children); 1024 n_children);
1241 } 1025 }
1242 1026
1243 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns, 1027 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long max_columns,
1244 long** columns, 1028 long** columns,
1245 long* n_columns) { 1029 long* n_columns) {
1246 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_SELECTED_COLUMNS);
1247 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1030 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1248 if (!owner()) 1031 if (!owner())
1249 return E_FAIL; 1032 return E_FAIL;
1250 1033
1251 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns, 1034 return AXPlatformNodeWin::get_selectedColumns(max_columns, columns,
1252 n_columns); 1035 n_columns);
1253 } 1036 }
1254 1037
1255 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows, 1038 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long max_rows,
1256 long** rows, 1039 long** rows,
1257 long* n_rows) { 1040 long* n_rows) {
1258 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_SELECTED_ROWS);
1259 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1041 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1260 if (!owner()) 1042 if (!owner())
1261 return E_FAIL; 1043 return E_FAIL;
1262 1044
1263 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows); 1045 return AXPlatformNodeWin::get_selectedRows(max_rows, rows, n_rows);
1264 } 1046 }
1265 1047
1266 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) { 1048 STDMETHODIMP BrowserAccessibilityComWin::get_summary(IUnknown** accessible) {
1267 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_SUMMARY);
1268 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1049 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1269 if (!owner()) 1050 if (!owner())
1270 return E_FAIL; 1051 return E_FAIL;
1271 1052
1272 return AXPlatformNodeWin::get_summary(accessible); 1053 return AXPlatformNodeWin::get_summary(accessible);
1273 } 1054 }
1274 1055
1275 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected( 1056 STDMETHODIMP BrowserAccessibilityComWin::get_isColumnSelected(
1276 long column, 1057 long column,
1277 boolean* is_selected) { 1058 boolean* is_selected) {
1278 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_IS_COLUMN_SELECTED);
1279 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1059 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1280 if (!owner()) 1060 if (!owner())
1281 return E_FAIL; 1061 return E_FAIL;
1282 1062
1283 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected); 1063 return AXPlatformNodeWin::get_isColumnSelected(column, is_selected);
1284 } 1064 }
1285 1065
1286 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected( 1066 STDMETHODIMP BrowserAccessibilityComWin::get_isRowSelected(
1287 long row, 1067 long row,
1288 boolean* is_selected) { 1068 boolean* is_selected) {
1289 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_IS_ROW_SELECTED);
1290 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1069 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1291 if (!owner()) 1070 if (!owner())
1292 return E_FAIL; 1071 return E_FAIL;
1293 1072
1294 return AXPlatformNodeWin::get_isRowSelected(row, is_selected); 1073 return AXPlatformNodeWin::get_isRowSelected(row, is_selected);
1295 } 1074 }
1296 1075
1297 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row, 1076 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(long row,
1298 long column, 1077 long column,
1299 boolean* is_selected) { 1078 boolean* is_selected) {
1300 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_IS_SELECTED);
1301 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1079 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1302 if (!owner()) 1080 if (!owner())
1303 return E_FAIL; 1081 return E_FAIL;
1304 1082
1305 return AXPlatformNodeWin::get_isSelected(row, column, is_selected); 1083 return AXPlatformNodeWin::get_isSelected(row, column, is_selected);
1306 } 1084 }
1307 1085
1308 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex( 1086 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtentsAtIndex(
1309 long index, 1087 long index,
1310 long* row, 1088 long* row,
1311 long* column, 1089 long* column,
1312 long* row_extents, 1090 long* row_extents,
1313 long* column_extents, 1091 long* column_extents,
1314 boolean* is_selected) { 1092 boolean* is_selected) {
1315 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_COLUMN_EXTENTS_AT_INDEX);
1316 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1093 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1317 if (!owner()) 1094 if (!owner())
1318 return E_FAIL; 1095 return E_FAIL;
1319 1096
1320 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex( 1097 return AXPlatformNodeWin::get_rowColumnExtentsAtIndex(
1321 index, row, column, row_extents, column_extents, is_selected); 1098 index, row, column, row_extents, column_extents, is_selected);
1322 } 1099 }
1323 1100
1324 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) { 1101 STDMETHODIMP BrowserAccessibilityComWin::selectRow(long row) {
1325 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_SELECT_ROW);
1326 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1102 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1327 if (!owner()) 1103 if (!owner())
1328 return E_FAIL; 1104 return E_FAIL;
1329 1105
1330 return AXPlatformNodeWin::selectRow(row); 1106 return AXPlatformNodeWin::selectRow(row);
1331 } 1107 }
1332 1108
1333 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) { 1109 STDMETHODIMP BrowserAccessibilityComWin::selectColumn(long column) {
1334 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_SELECT_COLUMN);
1335 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1110 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1336 if (!owner()) 1111 if (!owner())
1337 return E_FAIL; 1112 return E_FAIL;
1338 1113
1339 return AXPlatformNodeWin::selectColumn(column); 1114 return AXPlatformNodeWin::selectColumn(column);
1340 } 1115 }
1341 1116
1342 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) { 1117 STDMETHODIMP BrowserAccessibilityComWin::unselectRow(long row) {
1343 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_UNSELECT_ROW);
1344 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1118 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1345 if (!owner()) 1119 if (!owner())
1346 return E_FAIL; 1120 return E_FAIL;
1347 1121
1348 return AXPlatformNodeWin::unselectRow(row); 1122 return AXPlatformNodeWin::unselectRow(row);
1349 } 1123 }
1350 1124
1351 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) { 1125 STDMETHODIMP BrowserAccessibilityComWin::unselectColumn(long column) {
1352 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_UNSELECT_COLUMN);
1353 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1126 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1354 if (!owner()) 1127 if (!owner())
1355 return E_FAIL; 1128 return E_FAIL;
1356 1129
1357 return AXPlatformNodeWin::unselectColumn(column); 1130 return AXPlatformNodeWin::unselectColumn(column);
1358 } 1131 }
1359 1132
1360 STDMETHODIMP 1133 STDMETHODIMP
1361 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) { 1134 BrowserAccessibilityComWin::get_modelChange(IA2TableModelChange* model_change) {
1362 if (!owner()) 1135 if (!owner())
1363 return E_FAIL; 1136 return E_FAIL;
1364 1137
1365 return AXPlatformNodeWin::get_modelChange(model_change); 1138 return AXPlatformNodeWin::get_modelChange(model_change);
1366 } 1139 }
1367 1140
1368 // 1141 //
1369 // IAccessibleTable2 methods. 1142 // IAccessibleTable2 methods.
1370 // 1143 //
1371 1144
1372 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row, 1145 STDMETHODIMP BrowserAccessibilityComWin::get_cellAt(long row,
1373 long column, 1146 long column,
1374 IUnknown** cell) { 1147 IUnknown** cell) {
1375 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_CELL_AT);
1376 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader); 1148 AddAccessibilityModeFlags(AccessibilityMode::kScreenReader);
1377 if (!owner()) 1149 if (!owner())
1378 return E_FAIL; 1150 return E_FAIL;
1379 1151
1380 return AXPlatformNodeWin::get_cellAt(row, column, cell); 1152 return AXPlatformNodeWin::get_cellAt(row, column, cell);
1381 } 1153 }
1382 1154
1383 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) { 1155 STDMETHODIMP BrowserAccessibilityComWin::get_nSelectedCells(long* cell_count) {
1384 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_N_SELECTED_CELLS);
1385 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1156 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1386 if (!owner()) 1157 if (!owner())
1387 return E_FAIL; 1158 return E_FAIL;
1388 1159
1389 return AXPlatformNodeWin::get_nSelectedCells(cell_count); 1160 return AXPlatformNodeWin::get_nSelectedCells(cell_count);
1390 } 1161 }
1391 1162
1392 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells( 1163 STDMETHODIMP BrowserAccessibilityComWin::get_selectedCells(
1393 IUnknown*** cells, 1164 IUnknown*** cells,
1394 long* n_selected_cells) { 1165 long* n_selected_cells) {
1395 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_SELECTED_CELLS);
1396 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1166 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1397 if (!owner()) 1167 if (!owner())
1398 return E_FAIL; 1168 return E_FAIL;
1399 1169
1400 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells); 1170 return AXPlatformNodeWin::get_selectedCells(cells, n_selected_cells);
1401 } 1171 }
1402 1172
1403 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns, 1173 STDMETHODIMP BrowserAccessibilityComWin::get_selectedColumns(long** columns,
1404 long* n_columns) { 1174 long* n_columns) {
1405 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_TABLE2_GET_SELECTED_COLUMNS);
1406 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1175 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1407 if (!owner()) 1176 if (!owner())
1408 return E_FAIL; 1177 return E_FAIL;
1409 1178
1410 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns); 1179 return AXPlatformNodeWin::get_selectedColumns(columns, n_columns);
1411 } 1180 }
1412 1181
1413 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows, 1182 STDMETHODIMP BrowserAccessibilityComWin::get_selectedRows(long** rows,
1414 long* n_rows) { 1183 long* n_rows) {
1415 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_TABLE2_GET_SELECTED_ROWS);
1416 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1184 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1417 if (!owner()) 1185 if (!owner())
1418 return E_FAIL; 1186 return E_FAIL;
1419 1187
1420 return AXPlatformNodeWin::get_selectedRows(rows, n_rows); 1188 return AXPlatformNodeWin::get_selectedRows(rows, n_rows);
1421 } 1189 }
1422 1190
1423 // 1191 //
1424 // IAccessibleTableCell methods. 1192 // IAccessibleTableCell methods.
1425 // 1193 //
1426 1194
1427 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent( 1195 STDMETHODIMP BrowserAccessibilityComWin::get_columnExtent(
1428 long* n_columns_spanned) { 1196 long* n_columns_spanned) {
1429 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_EXTENT);
1430 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1197 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1431 if (!owner()) 1198 if (!owner())
1432 return E_FAIL; 1199 return E_FAIL;
1433 1200
1434 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned); 1201 return AXPlatformNodeWin::get_columnExtent(n_columns_spanned);
1435 } 1202 }
1436 1203
1437 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells( 1204 STDMETHODIMP BrowserAccessibilityComWin::get_columnHeaderCells(
1438 IUnknown*** cell_accessibles, 1205 IUnknown*** cell_accessibles,
1439 long* n_column_header_cells) { 1206 long* n_column_header_cells) {
1440 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_COLUMN_HEADER_CELLS);
1441 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1207 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1442 if (!owner()) 1208 if (!owner())
1443 return E_FAIL; 1209 return E_FAIL;
1444 1210
1445 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles, 1211 return AXPlatformNodeWin::get_columnHeaderCells(cell_accessibles,
1446 n_column_header_cells); 1212 n_column_header_cells);
1447 } 1213 }
1448 1214
1449 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) { 1215 STDMETHODIMP BrowserAccessibilityComWin::get_columnIndex(long* column_index) {
1450 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_TABLECELL_GET_COLUMN_INDEX);
1451 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1216 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1452 if (!owner()) 1217 if (!owner())
1453 return E_FAIL; 1218 return E_FAIL;
1454 1219
1455 return AXPlatformNodeWin::get_columnIndex(column_index); 1220 return AXPlatformNodeWin::get_columnIndex(column_index);
1456 } 1221 }
1457 1222
1458 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) { 1223 STDMETHODIMP BrowserAccessibilityComWin::get_rowExtent(long* n_rows_spanned) {
1459 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_EXTENT);
1460 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1224 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1461 if (!owner()) 1225 if (!owner())
1462 return E_FAIL; 1226 return E_FAIL;
1463 1227
1464 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned); 1228 return AXPlatformNodeWin::get_rowExtent(n_rows_spanned);
1465 } 1229 }
1466 1230
1467 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells( 1231 STDMETHODIMP BrowserAccessibilityComWin::get_rowHeaderCells(
1468 IUnknown*** cell_accessibles, 1232 IUnknown*** cell_accessibles,
1469 long* n_row_header_cells) { 1233 long* n_row_header_cells) {
1470 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_HEADER_CELLS);
1471 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1234 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1472 if (!owner()) 1235 if (!owner())
1473 return E_FAIL; 1236 return E_FAIL;
1474 1237
1475 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles, 1238 return AXPlatformNodeWin::get_rowHeaderCells(cell_accessibles,
1476 n_row_header_cells); 1239 n_row_header_cells);
1477 } 1240 }
1478 1241
1479 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) { 1242 STDMETHODIMP BrowserAccessibilityComWin::get_rowIndex(long* row_index) {
1480 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_TABLECELL_GET_ROW_INDEX);
1481 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1243 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1482 if (!owner()) 1244 if (!owner())
1483 return E_FAIL; 1245 return E_FAIL;
1484 1246
1485 return AXPlatformNodeWin::get_rowIndex(row_index); 1247 return AXPlatformNodeWin::get_rowIndex(row_index);
1486 } 1248 }
1487 1249
1488 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) { 1250 STDMETHODIMP BrowserAccessibilityComWin::get_isSelected(boolean* is_selected) {
1489 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_TABLECELL_GET_IS_SELECTED);
1490 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1251 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1491 if (!owner()) 1252 if (!owner())
1492 return E_FAIL; 1253 return E_FAIL;
1493 1254
1494 return AXPlatformNodeWin::get_isSelected(is_selected); 1255 return AXPlatformNodeWin::get_isSelected(is_selected);
1495 } 1256 }
1496 1257
1497 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents( 1258 STDMETHODIMP BrowserAccessibilityComWin::get_rowColumnExtents(
1498 long* row_index, 1259 long* row_index,
1499 long* column_index, 1260 long* column_index,
1500 long* row_extents, 1261 long* row_extents,
1501 long* column_extents, 1262 long* column_extents,
1502 boolean* is_selected) { 1263 boolean* is_selected) {
1503 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_ROW_COLUMN_EXTENTS);
1504 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1264 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1505 if (!owner()) 1265 if (!owner())
1506 return E_FAIL; 1266 return E_FAIL;
1507 1267
1508 return AXPlatformNodeWin::get_rowColumnExtents( 1268 return AXPlatformNodeWin::get_rowColumnExtents(
1509 row_index, column_index, row_extents, column_extents, is_selected); 1269 row_index, column_index, row_extents, column_extents, is_selected);
1510 } 1270 }
1511 1271
1512 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) { 1272 STDMETHODIMP BrowserAccessibilityComWin::get_table(IUnknown** table) {
1513 WIN_ACCESSIBILITY_API_HISTOGRAM(UMA_API_GET_TABLE);
1514 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes); 1273 AddAccessibilityModeFlags(kScreenReaderAndHTMLAccessibilityModes);
1515 if (!owner()) 1274 if (!owner())
1516 return E_FAIL; 1275 return E_FAIL;
1517 1276
1518 return AXPlatformNodeWin::get_table(table); 1277 return AXPlatformNodeWin::get_table(table);
1519 } 1278 }
1520 1279
1521 // 1280 //
1522 // IAccessibleText methods. 1281 // IAccessibleText methods.
1523 // 1282 //
(...skipping 3059 matching lines...) Expand 10 before | Expand all | Expand 10 after
4583 4342
4584 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( 4343 BrowserAccessibilityComWin* ToBrowserAccessibilityComWin(
4585 BrowserAccessibility* obj) { 4344 BrowserAccessibility* obj) {
4586 if (!obj || !obj->IsNative()) 4345 if (!obj || !obj->IsNative())
4587 return nullptr; 4346 return nullptr;
4588 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM(); 4347 auto* result = static_cast<BrowserAccessibilityWin*>(obj)->GetCOM();
4589 return result; 4348 return result;
4590 } 4349 }
4591 4350
4592 } // namespace content 4351 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | ui/accessibility/platform/ax_platform_node_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698