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

Side by Side Diff: content/browser/accessibility/accessibility_tree_formatter_mac.mm

Issue 1762143002: Use unique IDs for accessibility nodes on Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix null obj deref in DCHECK Created 4 years, 9 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
OLDNEW
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"
(...skipping 24 matching lines...) Expand all
35 const char* kRangeLenDictAttr = "len"; 35 const char* kRangeLenDictAttr = "len";
36 36
37 scoped_ptr<base::DictionaryValue> PopulatePosition( 37 scoped_ptr<base::DictionaryValue> PopulatePosition(
38 const BrowserAccessibility& node) { 38 const BrowserAccessibility& node) {
39 scoped_ptr<base::DictionaryValue> position(new base::DictionaryValue); 39 scoped_ptr<base::DictionaryValue> position(new base::DictionaryValue);
40 // The NSAccessibility position of an object is in global coordinates and 40 // The NSAccessibility position of an object is in global coordinates and
41 // based on the lower-left corner of the object. To make this easier and less 41 // based on the lower-left corner of the object. To make this easier and less
42 // confusing, convert it to local window coordinates using the top-left 42 // confusing, convert it to local window coordinates using the top-left
43 // corner when dumping the position. 43 // corner when dumping the position.
44 BrowserAccessibility* root = node.manager()->GetRootManager()->GetRoot(); 44 BrowserAccessibility* root = node.manager()->GetRootManager()->GetRoot();
45 BrowserAccessibilityCocoa* cocoa_root = root->ToBrowserAccessibilityCocoa(); 45 BrowserAccessibilityCocoa* cocoa_root = ToBrowserAccessibilityCocoa(root);
46 NSPoint root_position = [[cocoa_root position] pointValue]; 46 NSPoint root_position = [[cocoa_root position] pointValue];
47 NSSize root_size = [[cocoa_root size] sizeValue]; 47 NSSize root_size = [[cocoa_root size] sizeValue];
48 int root_top = -static_cast<int>(root_position.y + root_size.height); 48 int root_top = -static_cast<int>(root_position.y + root_size.height);
49 int root_left = static_cast<int>(root_position.x); 49 int root_left = static_cast<int>(root_position.x);
50 50
51 BrowserAccessibilityCocoa* cocoa_node = 51 BrowserAccessibilityCocoa* cocoa_node =
52 const_cast<BrowserAccessibility*>(&node)->ToBrowserAccessibilityCocoa(); 52 ToBrowserAccessibilityCocoa(const_cast<BrowserAccessibility*>(&node));
53 NSPoint node_position = [[cocoa_node position] pointValue]; 53 NSPoint node_position = [[cocoa_node position] pointValue];
54 NSSize node_size = [[cocoa_node size] sizeValue]; 54 NSSize node_size = [[cocoa_node size] sizeValue];
55 55
56 position->SetInteger(kXCoordDictAttr, 56 position->SetInteger(kXCoordDictAttr,
57 static_cast<int>(node_position.x - root_left)); 57 static_cast<int>(node_position.x - root_left));
58 position->SetInteger(kYCoordDictAttr, 58 position->SetInteger(kYCoordDictAttr,
59 static_cast<int>(-node_position.y - node_size.height - root_top)); 59 static_cast<int>(-node_position.y - node_size.height - root_top));
60 return position; 60 return position;
61 } 61 }
62 62
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 } 214 }
215 215
216 AccessibilityTreeFormatterMac::~AccessibilityTreeFormatterMac() { 216 AccessibilityTreeFormatterMac::~AccessibilityTreeFormatterMac() {
217 } 217 }
218 218
219 void AccessibilityTreeFormatterMac::AddProperties( 219 void AccessibilityTreeFormatterMac::AddProperties(
220 const BrowserAccessibility& node, 220 const BrowserAccessibility& node,
221 base::DictionaryValue* dict) { 221 base::DictionaryValue* dict) {
222 dict->SetInteger("id", node.GetId()); 222 dict->SetInteger("id", node.GetId());
223 BrowserAccessibilityCocoa* cocoa_node = 223 BrowserAccessibilityCocoa* cocoa_node =
224 const_cast<BrowserAccessibility*>(&node)->ToBrowserAccessibilityCocoa(); 224 ToBrowserAccessibilityCocoa(const_cast<BrowserAccessibility*>(&node));
225 NSArray* supportedAttributes = [cocoa_node accessibilityAttributeNames]; 225 NSArray* supportedAttributes = [cocoa_node accessibilityAttributeNames];
226 226
227 string role = SysNSStringToUTF8( 227 string role = SysNSStringToUTF8(
228 [cocoa_node accessibilityAttributeValue:NSAccessibilityRoleAttribute]); 228 [cocoa_node accessibilityAttributeValue:NSAccessibilityRoleAttribute]);
229 dict->SetString(SysNSStringToUTF8(NSAccessibilityRoleAttribute), role); 229 dict->SetString(SysNSStringToUTF8(NSAccessibilityRoleAttribute), role);
230 230
231 NSString* subrole = 231 NSString* subrole =
232 [cocoa_node accessibilityAttributeValue:NSAccessibilitySubroleAttribute]; 232 [cocoa_node accessibilityAttributeValue:NSAccessibilitySubroleAttribute];
233 if (subrole != nil) { 233 if (subrole != nil) {
234 dict->SetString(SysNSStringToUTF8(NSAccessibilitySubroleAttribute), 234 dict->SetString(SysNSStringToUTF8(NSAccessibilitySubroleAttribute),
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 330
331 const string AccessibilityTreeFormatterMac::GetAllowString() { 331 const string AccessibilityTreeFormatterMac::GetAllowString() {
332 return "@MAC-ALLOW:"; 332 return "@MAC-ALLOW:";
333 } 333 }
334 334
335 const string AccessibilityTreeFormatterMac::GetDenyString() { 335 const string AccessibilityTreeFormatterMac::GetDenyString() {
336 return "@MAC-DENY:"; 336 return "@MAC-DENY:";
337 } 337 }
338 338
339 } // namespace content 339 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698