OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 }; | 45 }; |
46 } | 46 } |
47 | 47 |
48 void AccessibilityTreeFormatter::Initialize() { | 48 void AccessibilityTreeFormatter::Initialize() { |
49 } | 49 } |
50 | 50 |
51 void AccessibilityTreeFormatter::AddProperties( | 51 void AccessibilityTreeFormatter::AddProperties( |
52 const BrowserAccessibility& node, DictionaryValue* dict) { | 52 const BrowserAccessibility& node, DictionaryValue* dict) { |
53 const BrowserAccessibilityAndroid* android_node = | 53 const BrowserAccessibilityAndroid* android_node = |
54 static_cast<const BrowserAccessibilityAndroid*>(&node); | 54 static_cast<const BrowserAccessibilityAndroid*>(&node); |
55 JNIEnv* env = base::android::AttachCurrentThread(); | |
56 | 55 |
57 // Class name. | 56 // Class name. |
58 dict->SetString("class", base::android::ConvertJavaStringToUTF8( | 57 dict->SetString("class", android_node->GetClassName()); |
59 android_node->GetClassNameJNI(env, NULL))); | |
60 | 58 |
61 // Bool attributes. | 59 // Bool attributes. |
62 dict->SetBoolean("focusable", | 60 dict->SetBoolean("focusable", android_node->IsFocusable()); |
63 android_node->IsFocusableJNI(env, NULL)); | 61 dict->SetBoolean("focused", android_node->IsFocused()); |
64 dict->SetBoolean("focused", | 62 dict->SetBoolean("clickable", android_node->IsClickable()); |
65 android_node->IsFocusedJNI(env, NULL)); | 63 dict->SetBoolean("editable_text", android_node->IsEditableText()); |
66 dict->SetBoolean("clickable", | 64 dict->SetBoolean("checkable", android_node->IsCheckable()); |
67 android_node->GetClickableJNI(env, NULL)); | 65 dict->SetBoolean("checked", android_node->IsChecked()); |
68 dict->SetBoolean("editable_text", | 66 dict->SetBoolean("disabled", !android_node->IsEnabled()); |
69 android_node->IsEditableTextJNI(env, NULL)); | 67 dict->SetBoolean("scrollable", android_node->IsScrollable()); |
70 dict->SetBoolean("checkable", | 68 dict->SetBoolean("password", android_node->IsPassword()); |
71 android_node->IsCheckableJNI(env, NULL)); | 69 dict->SetBoolean("selected", android_node->IsSelected()); |
72 dict->SetBoolean("checked", | 70 dict->SetBoolean("invisible", !android_node->IsVisibleToUser()); |
73 android_node->IsCheckedJNI(env, NULL)); | |
74 dict->SetBoolean("disabled", | |
75 !android_node->IsEnabledJNI(env, NULL)); | |
76 dict->SetBoolean("scrollable", | |
77 android_node->IsScrollableJNI(env, NULL)); | |
78 dict->SetBoolean("password", | |
79 android_node->IsPasswordJNI(env, NULL)); | |
80 dict->SetBoolean("selected", | |
81 android_node->IsSelectedJNI(env, NULL)); | |
82 dict->SetBoolean("invisible", | |
83 !android_node->IsVisibleJNI(env, NULL)); | |
84 | 71 |
85 // String attributes. | 72 // String attributes. |
86 dict->SetString("name", base::android::ConvertJavaStringToUTF8( | 73 dict->SetString("name", android_node->GetText()); |
87 android_node->GetNameJNI(env, NULL))); | |
88 | 74 |
89 // Int attributes. | 75 // Int attributes. |
90 dict->SetInteger("item_index", | 76 dict->SetInteger("item_index", android_node->GetItemIndex()); |
91 android_node->GetItemIndexJNI(env, NULL)); | 77 dict->SetInteger("item_count", android_node->GetItemCount()); |
92 dict->SetInteger("item_count", | |
93 android_node->GetItemCountJNI(env, NULL)); | |
94 } | 78 } |
95 | 79 |
96 bool AccessibilityTreeFormatter::IncludeChildren( | 80 bool AccessibilityTreeFormatter::IncludeChildren( |
97 const BrowserAccessibility& node) { | 81 const BrowserAccessibility& node) { |
98 const BrowserAccessibilityAndroid* android_node = | 82 const BrowserAccessibilityAndroid* android_node = |
99 static_cast<const BrowserAccessibilityAndroid*>(&node); | 83 static_cast<const BrowserAccessibilityAndroid*>(&node); |
100 JNIEnv* env = base::android::AttachCurrentThread(); | 84 return !android_node->IsLeaf(); |
101 | |
102 return 0 != android_node->GetChildCountJNI(env, NULL); | |
103 } | 85 } |
104 | 86 |
105 string16 AccessibilityTreeFormatter::ToString(const DictionaryValue& dict, | 87 string16 AccessibilityTreeFormatter::ToString(const DictionaryValue& dict, |
106 const string16& indent) { | 88 const string16& indent) { |
107 string16 line; | 89 string16 line; |
108 | 90 |
109 string16 class_value; | 91 string16 class_value; |
110 dict.GetString("class", &class_value); | 92 dict.GetString("class", &class_value); |
111 WriteAttribute(true, UTF16ToUTF8(class_value), &line); | 93 WriteAttribute(true, UTF16ToUTF8(class_value), &line); |
112 | 94 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 const std::string AccessibilityTreeFormatter::GetAllowString() { | 143 const std::string AccessibilityTreeFormatter::GetAllowString() { |
162 return "@ANDROID-ALLOW:"; | 144 return "@ANDROID-ALLOW:"; |
163 } | 145 } |
164 | 146 |
165 // static | 147 // static |
166 const std::string AccessibilityTreeFormatter::GetDenyString() { | 148 const std::string AccessibilityTreeFormatter::GetDenyString() { |
167 return "@ANDROID-DENY:"; | 149 return "@ANDROID-DENY:"; |
168 } | 150 } |
169 | 151 |
170 } // namespace content | 152 } // namespace content |
OLD | NEW |