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