OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/accessibility_tree_formatter.h" | 5 #include "content/browser/accessibility/accessibility_tree_formatter.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
11 #include "base/strings/string_number_conversions.h" | 11 #include "base/strings/string_number_conversions.h" |
12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
13 #include "base/strings/sys_string_conversions.h" | 13 #include "base/strings/sys_string_conversions.h" |
14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
jdoerrie
2017/04/12 12:37:46
#include "base/values.h"
vabr (Chromium)
2017/04/12 12:55:04
Done.
| |
15 #include "content/browser/accessibility/browser_accessibility_cocoa.h" | 15 #include "content/browser/accessibility/browser_accessibility_cocoa.h" |
16 #include "content/browser/accessibility/browser_accessibility_mac.h" | 16 #include "content/browser/accessibility/browser_accessibility_mac.h" |
17 #include "content/browser/accessibility/browser_accessibility_manager.h" | 17 #include "content/browser/accessibility/browser_accessibility_manager.h" |
18 | 18 |
19 using base::StringPrintf; | 19 using base::StringPrintf; |
20 using base::SysNSStringToUTF8; | 20 using base::SysNSStringToUTF8; |
21 using base::SysNSStringToUTF16; | 21 using base::SysNSStringToUTF16; |
22 using std::string; | 22 using std::string; |
23 | 23 |
24 namespace content { | 24 namespace content { |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
81 if (![value isKindOfClass:[NSValue class]]) | 81 if (![value isKindOfClass:[NSValue class]]) |
82 return false; | 82 return false; |
83 return 0 == strcmp([value objCType], @encode(NSRange)); | 83 return 0 == strcmp([value objCType], @encode(NSRange)); |
84 } | 84 } |
85 | 85 |
86 std::unique_ptr<base::Value> PopulateObject(id value); | 86 std::unique_ptr<base::Value> PopulateObject(id value); |
87 | 87 |
88 std::unique_ptr<base::ListValue> PopulateArray(NSArray* array) { | 88 std::unique_ptr<base::ListValue> PopulateArray(NSArray* array) { |
89 std::unique_ptr<base::ListValue> list(new base::ListValue); | 89 std::unique_ptr<base::ListValue> list(new base::ListValue); |
90 for (NSUInteger i = 0; i < [array count]; i++) | 90 for (NSUInteger i = 0; i < [array count]; i++) |
91 list->Append(PopulateObject([array objectAtIndex:i]).release()); | 91 list->Append(PopulateObject([array objectAtIndex:i])); |
92 return list; | 92 return list; |
93 } | 93 } |
94 | 94 |
95 std::unique_ptr<base::Value> StringForBrowserAccessibility( | 95 std::unique_ptr<base::Value> StringForBrowserAccessibility( |
96 BrowserAccessibilityCocoa* obj) { | 96 BrowserAccessibilityCocoa* obj) { |
97 NSMutableArray* tokens = [[NSMutableArray alloc] init]; | 97 NSMutableArray* tokens = [[NSMutableArray alloc] init]; |
98 | 98 |
99 // Always include the role | 99 // Always include the role |
100 id role = [obj role]; | 100 id role = [obj role]; |
101 [tokens addObject:role]; | 101 [tokens addObject:role]; |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
246 } | 246 } |
247 | 247 |
248 CR_DEFINE_STATIC_LOCAL(NSArray*, all_attributes, (BuildAllAttributesArray())); | 248 CR_DEFINE_STATIC_LOCAL(NSArray*, all_attributes, (BuildAllAttributesArray())); |
249 for (NSString* requestedAttribute in all_attributes) { | 249 for (NSString* requestedAttribute in all_attributes) { |
250 if (![supportedAttributes containsObject:requestedAttribute]) | 250 if (![supportedAttributes containsObject:requestedAttribute]) |
251 continue; | 251 continue; |
252 id value = [cocoa_node accessibilityAttributeValue:requestedAttribute]; | 252 id value = [cocoa_node accessibilityAttributeValue:requestedAttribute]; |
253 if (value != nil) { | 253 if (value != nil) { |
254 dict->Set( | 254 dict->Set( |
255 SysNSStringToUTF8(requestedAttribute), | 255 SysNSStringToUTF8(requestedAttribute), |
256 PopulateObject(value).release()); | 256 PopulateObject(value)); |
257 } | 257 } |
258 } | 258 } |
259 dict->Set(kPositionDictAttr, PopulatePosition(node).release()); | 259 dict->Set(kPositionDictAttr, PopulatePosition(node)); |
260 dict->Set(kSizeDictAttr, PopulateSize(cocoa_node).release()); | 260 dict->Set(kSizeDictAttr, PopulateSize(cocoa_node)); |
261 } | 261 } |
262 | 262 |
263 base::string16 AccessibilityTreeFormatterMac::ToString( | 263 base::string16 AccessibilityTreeFormatterMac::ToString( |
264 const base::DictionaryValue& dict) { | 264 const base::DictionaryValue& dict) { |
265 base::string16 line; | 265 base::string16 line; |
266 if (show_ids()) { | 266 if (show_ids()) { |
267 int id_value; | 267 int id_value; |
268 dict.GetInteger("id", &id_value); | 268 dict.GetInteger("id", &id_value); |
269 WriteAttribute(true, base::IntToString16(id_value), &line); | 269 WriteAttribute(true, base::IntToString16(id_value), &line); |
270 } | 270 } |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
340 | 340 |
341 const string AccessibilityTreeFormatterMac::GetAllowString() { | 341 const string AccessibilityTreeFormatterMac::GetAllowString() { |
342 return "@MAC-ALLOW:"; | 342 return "@MAC-ALLOW:"; |
343 } | 343 } |
344 | 344 |
345 const string AccessibilityTreeFormatterMac::GetDenyString() { | 345 const string AccessibilityTreeFormatterMac::GetDenyString() { |
346 return "@MAC-DENY:"; | 346 return "@MAC-DENY:"; |
347 } | 347 } |
348 | 348 |
349 } // namespace content | 349 } // namespace content |
OLD | NEW |