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

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

Issue 12389028: Rename DumpAccesibilityTreeHelper to AccessibilityTreeFormatter, pull into content/browser. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add USE_AURA to conditions for stub implementations of AccessibilityTreeFormatter methods" Created 7 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/browser/accessibility/dump_accessibility_tree_helper.h"
6
7 #import <Cocoa/Cocoa.h>
8
9 #include "base/files/file_path.h"
10 #include "base/utf_string_conversions.h"
11 #include "content/browser/accessibility/browser_accessibility_cocoa.h"
12 #include "content/browser/accessibility/browser_accessibility_mac.h"
13 #include "content/browser/accessibility/browser_accessibility_manager.h"
14
15 namespace content {
16
17 namespace {
18
19 string16 Format(BrowserAccessibility* node,
20 const char *prefix,
21 SEL selector,
22 const char *suffix) {
23 BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
24 id value = [cocoa_node performSelector:selector];
25 if (!value)
26 return string16();
27 NSString* format_str =
28 [NSString stringWithFormat:@"%s%%@%s", prefix, suffix];
29 NSString* tmp = [NSString stringWithFormat:format_str, value];
30 return UTF8ToUTF16([tmp cStringUsingEncoding:NSUTF8StringEncoding]);
31 }
32
33 string16 FormatPosition(BrowserAccessibility* node) {
34 // The NSAccessibility position of an object is in global coordinates and
35 // based on the lower-left corner of the object. To make this easier and less
36 // confusing, convert it to local window coordinates using the top-left
37 // corner when dumping the position.
38 BrowserAccessibility* root = node->manager()->GetRoot();
39 BrowserAccessibilityCocoa* cocoa_root = root->ToBrowserAccessibilityCocoa();
40 NSPoint root_position = [[cocoa_root position] pointValue];
41 NSSize root_size = [[cocoa_root size] sizeValue];
42 int root_top = -static_cast<int>(root_position.y + root_size.height);
43 int root_left = static_cast<int>(root_position.x);
44
45 BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
46 NSPoint node_position = [[cocoa_node position] pointValue];
47 NSSize node_size = [[cocoa_node size] sizeValue];
48
49 NSString* position_str =
50 [NSString stringWithFormat:@"position=(%d, %d)",
51 static_cast<int>(node_position.x - root_left),
52 static_cast<int>(
53 -node_position.y - node_size.height - root_top)];
54 return UTF8ToUTF16([position_str cStringUsingEncoding:NSUTF8StringEncoding]);
55 }
56
57 string16 FormatSize(BrowserAccessibility* node) {
58 BrowserAccessibilityCocoa* cocoa_node = node->ToBrowserAccessibilityCocoa();
59 NSSize node_size = [[cocoa_node size] sizeValue];
60 NSString* size_str =
61 [NSString stringWithFormat:@"size=(%d, %d)",
62 static_cast<int>(node_size.width),
63 static_cast<int>(node_size.height)];
64 return UTF8ToUTF16([size_str cStringUsingEncoding:NSUTF8StringEncoding]);
65 }
66
67 } // namespace
68
69 void DumpAccessibilityTreeHelper::Initialize() {}
70
71 string16 DumpAccessibilityTreeHelper::ToString(BrowserAccessibility* node,
72 char* prefix) {
73 StartLine();
74 Add(true, Format(node, "", @selector(role), ""));
75 Add(false, Format(node, "subrole=", @selector(subrole), ""));
76 Add(false, Format(node, "roleDescription='",
77 @selector(roleDescription),
78 "'"));
79 Add(true, Format(node, "title='", @selector(title), "'"));
80 Add(true, Format(node, "value='", @selector(value), "'"));
81 Add(false, Format(node, "minValue='", @selector(minValue), "'"));
82 Add(false, Format(node, "maxValue='", @selector(maxValue), "'"));
83 Add(false, Format(node, "valueDescription='", @selector(valueDescription),
84 "'"));
85 Add(false, Format(node, "description='", @selector(description), "'"));
86 Add(false, Format(node, "help='", @selector(help), "'"));
87 Add(false, Format(node, "invalid='", @selector(invalid), "'"));
88 Add(false, Format(node, "disclosing='", @selector(disclosing), "'"));
89 Add(false, Format(node, "disclosureLevel='", @selector(disclosureLevel),
90 "'"));
91 Add(false, Format(node, "accessKey='", @selector(accessKey), "'"));
92 Add(false, Format(node, "ariaAtomic='", @selector(ariaAtomic), "'"));
93 Add(false, Format(node, "ariaBusy='", @selector(ariaBusy), "'"));
94 Add(false, Format(node, "ariaLive='", @selector(ariaLive), "'"));
95 Add(false, Format(node, "ariaRelevant='", @selector(ariaRelevant), "'"));
96 Add(false, Format(node, "enabled='", @selector(enabled), "'"));
97 Add(false, Format(node, "focused='", @selector(focused), "'"));
98 Add(false, Format(node, "loaded='", @selector(loaded), "'"));
99 Add(false, Format(node, "loadingProgress='", @selector(loadingProgress),
100 "'"));
101 Add(false, Format(node, "numberOfCharacters='",
102 @selector(numberOfCharacters), "'"));
103 Add(false, Format(node, "orientation='", @selector(orientation), "'"));
104 Add(false, Format(node, "required='", @selector(required), "'"));
105 Add(false, Format(node, "url='", @selector(url), "'"));
106 Add(false, Format(node, "visibleCharacterRange='",
107 @selector(visibleCharacterRange), "'"));
108 Add(false, Format(node, "visited='", @selector(visited), "'"));
109 Add(false, FormatPosition(node));
110 Add(false, FormatSize(node));
111
112 return ASCIIToUTF16(prefix) + FinishLine() + ASCIIToUTF16("\n");
113 }
114
115 const base::FilePath::StringType
116 DumpAccessibilityTreeHelper::GetActualFileSuffix()
117 const {
118 return FILE_PATH_LITERAL("-actual-mac.txt");
119 }
120
121 const base::FilePath::StringType
122 DumpAccessibilityTreeHelper::GetExpectedFileSuffix()
123 const {
124 return FILE_PATH_LITERAL("-expected-mac.txt");
125 }
126
127 const std::string DumpAccessibilityTreeHelper::GetAllowEmptyString() const {
128 return "@MAC-ALLOW-EMPTY:";
129 }
130
131 const std::string DumpAccessibilityTreeHelper::GetAllowString() const {
132 return "@MAC-ALLOW:";
133 }
134
135 const std::string DumpAccessibilityTreeHelper::GetDenyString() const {
136 return "@MAC-DENY:";
137 }
138
139 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698