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