OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <atlbase.h> | 5 #include <atlbase.h> |
6 #include <atlcom.h> | 6 #include <atlcom.h> |
7 #include <limits.h> | 7 #include <limits.h> |
8 #include <oleacc.h> | 8 #include <oleacc.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 HRESULT result = target->GetStringAttributeAsBstr(ui::AX_ATTR_NAME, name); | 477 HRESULT result = target->GetStringAttributeAsBstr(ui::AX_ATTR_NAME, name); |
478 if (FAILED(result) && MSAARole() == ROLE_SYSTEM_DOCUMENT && GetParent()) { | 478 if (FAILED(result) && MSAARole() == ROLE_SYSTEM_DOCUMENT && GetParent()) { |
479 // Hack: Some versions of JAWS crash if they get an empty name on | 479 // Hack: Some versions of JAWS crash if they get an empty name on |
480 // a document that's the child of an iframe, so always return a | 480 // a document that's the child of an iframe, so always return a |
481 // nonempty string for this role. https://crbug.com/583057 | 481 // nonempty string for this role. https://crbug.com/583057 |
482 base::string16 str = L" "; | 482 base::string16 str = L" "; |
483 | 483 |
484 *name = SysAllocString(str.c_str()); | 484 *name = SysAllocString(str.c_str()); |
485 DCHECK(*name); | 485 DCHECK(*name); |
486 } | 486 } |
| 487 |
487 return result; | 488 return result; |
488 } | 489 } |
489 | 490 |
490 STDMETHODIMP AXPlatformNodeWin::get_accParent( | 491 STDMETHODIMP AXPlatformNodeWin::get_accParent( |
491 IDispatch** disp_parent) { | 492 IDispatch** disp_parent) { |
492 COM_OBJECT_VALIDATE_1_ARG(disp_parent); | 493 COM_OBJECT_VALIDATE_1_ARG(disp_parent); |
493 *disp_parent = GetParent(); | 494 *disp_parent = GetParent(); |
494 if (*disp_parent) { | 495 if (*disp_parent) { |
495 (*disp_parent)->AddRef(); | 496 (*disp_parent)->AddRef(); |
496 return S_OK; | 497 return S_OK; |
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1200 } | 1201 } |
1201 | 1202 |
1202 HRESULT AXPlatformNodeWin::GetStringAttributeAsBstr( | 1203 HRESULT AXPlatformNodeWin::GetStringAttributeAsBstr( |
1203 ui::AXStringAttribute attribute, | 1204 ui::AXStringAttribute attribute, |
1204 BSTR* value_bstr) const { | 1205 BSTR* value_bstr) const { |
1205 base::string16 str; | 1206 base::string16 str; |
1206 | 1207 |
1207 if (!GetString16Attribute(attribute, &str)) | 1208 if (!GetString16Attribute(attribute, &str)) |
1208 return S_FALSE; | 1209 return S_FALSE; |
1209 | 1210 |
1210 if (str.empty()) | |
1211 return S_FALSE; | |
1212 | |
1213 *value_bstr = SysAllocString(str.c_str()); | 1211 *value_bstr = SysAllocString(str.c_str()); |
1214 DCHECK(*value_bstr); | 1212 DCHECK(*value_bstr); |
1215 | 1213 |
1216 return S_OK; | 1214 return S_OK; |
1217 } | 1215 } |
1218 | 1216 |
1219 void AXPlatformNodeWin::AddAlertTarget() { | 1217 void AXPlatformNodeWin::AddAlertTarget() { |
1220 g_alert_targets.Get().insert(this); | 1218 g_alert_targets.Get().insert(this); |
1221 } | 1219 } |
1222 | 1220 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1292 | 1290 |
1293 AXPlatformNodeBase* base = | 1291 AXPlatformNodeBase* base = |
1294 FromNativeViewAccessible(node->GetNativeViewAccessible()); | 1292 FromNativeViewAccessible(node->GetNativeViewAccessible()); |
1295 if (base && !IsDescendant(base)) | 1293 if (base && !IsDescendant(base)) |
1296 base = nullptr; | 1294 base = nullptr; |
1297 | 1295 |
1298 return static_cast<AXPlatformNodeWin*>(base); | 1296 return static_cast<AXPlatformNodeWin*>(base); |
1299 } | 1297 } |
1300 | 1298 |
1301 } // namespace ui | 1299 } // namespace ui |
OLD | NEW |