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

Side by Side Diff: content/browser/accessibility/browser_accessibility_manager_android.cc

Issue 116293005: Refactor content/ to use ui::AXNodeData instead of blink. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update content/DEPS instead of subdirs Created 6 years, 11 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 | Annotate | Revision Log
OLDNEW
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/browser_accessibility_manager_android.h" 5 #include "content/browser/accessibility/browser_accessibility_manager_android.h"
6 6
7 #include <cmath> 7 #include <cmath>
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 24 matching lines...) Expand all
35 35
36 namespace content { 36 namespace content {
37 37
38 namespace aria_strings { 38 namespace aria_strings {
39 const char kAriaLivePolite[] = "polite"; 39 const char kAriaLivePolite[] = "polite";
40 const char kAriaLiveAssertive[] = "assertive"; 40 const char kAriaLiveAssertive[] = "assertive";
41 } 41 }
42 42
43 // static 43 // static
44 BrowserAccessibilityManager* BrowserAccessibilityManager::Create( 44 BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
45 const AccessibilityNodeData& src, 45 const ui::AXNodeData& src,
46 BrowserAccessibilityDelegate* delegate, 46 BrowserAccessibilityDelegate* delegate,
47 BrowserAccessibilityFactory* factory) { 47 BrowserAccessibilityFactory* factory) {
48 return new BrowserAccessibilityManagerAndroid(ScopedJavaLocalRef<jobject>(), 48 return new BrowserAccessibilityManagerAndroid(ScopedJavaLocalRef<jobject>(),
49 src, delegate, factory); 49 src, delegate, factory);
50 } 50 }
51 51
52 BrowserAccessibilityManagerAndroid* 52 BrowserAccessibilityManagerAndroid*
53 BrowserAccessibilityManager::ToBrowserAccessibilityManagerAndroid() { 53 BrowserAccessibilityManager::ToBrowserAccessibilityManagerAndroid() {
54 return static_cast<BrowserAccessibilityManagerAndroid*>(this); 54 return static_cast<BrowserAccessibilityManagerAndroid*>(this);
55 } 55 }
56 56
57 BrowserAccessibilityManagerAndroid::BrowserAccessibilityManagerAndroid( 57 BrowserAccessibilityManagerAndroid::BrowserAccessibilityManagerAndroid(
58 ScopedJavaLocalRef<jobject> content_view_core, 58 ScopedJavaLocalRef<jobject> content_view_core,
59 const AccessibilityNodeData& src, 59 const ui::AXNodeData& src,
60 BrowserAccessibilityDelegate* delegate, 60 BrowserAccessibilityDelegate* delegate,
61 BrowserAccessibilityFactory* factory) 61 BrowserAccessibilityFactory* factory)
62 : BrowserAccessibilityManager(src, delegate, factory) { 62 : BrowserAccessibilityManager(src, delegate, factory) {
63 SetContentViewCore(content_view_core); 63 SetContentViewCore(content_view_core);
64 } 64 }
65 65
66 BrowserAccessibilityManagerAndroid::~BrowserAccessibilityManagerAndroid() { 66 BrowserAccessibilityManagerAndroid::~BrowserAccessibilityManagerAndroid() {
67 JNIEnv* env = AttachCurrentThread(); 67 JNIEnv* env = AttachCurrentThread();
68 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 68 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
69 if (obj.is_null()) 69 if (obj.is_null())
70 return; 70 return;
71 71
72 Java_BrowserAccessibilityManager_onNativeObjectDestroyed(env, obj.obj()); 72 Java_BrowserAccessibilityManager_onNativeObjectDestroyed(env, obj.obj());
73 } 73 }
74 74
75 // static 75 // static
76 AccessibilityNodeData BrowserAccessibilityManagerAndroid::GetEmptyDocument() { 76 ui::AXNodeData BrowserAccessibilityManagerAndroid::GetEmptyDocument() {
77 AccessibilityNodeData empty_document; 77 ui::AXNodeData empty_document;
78 empty_document.id = 0; 78 empty_document.id = 0;
79 empty_document.role = blink::WebAXRoleRootWebArea; 79 empty_document.role = ui::AX_ROLE_ROOT_WEB_AREA;
80 empty_document.state = 1 << blink::WebAXStateReadonly; 80 empty_document.state = 1 << ui::AX_STATE_READONLY;
81 return empty_document; 81 return empty_document;
82 } 82 }
83 83
84 void BrowserAccessibilityManagerAndroid::SetContentViewCore( 84 void BrowserAccessibilityManagerAndroid::SetContentViewCore(
85 ScopedJavaLocalRef<jobject> content_view_core) { 85 ScopedJavaLocalRef<jobject> content_view_core) {
86 if (content_view_core.is_null()) 86 if (content_view_core.is_null())
87 return; 87 return;
88 88
89 JNIEnv* env = AttachCurrentThread(); 89 JNIEnv* env = AttachCurrentThread();
90 java_ref_ = JavaObjectWeakGlobalRef( 90 java_ref_ = JavaObjectWeakGlobalRef(
91 env, Java_BrowserAccessibilityManager_create( 91 env, Java_BrowserAccessibilityManager_create(
92 env, reinterpret_cast<intptr_t>(this), 92 env, reinterpret_cast<intptr_t>(this),
93 content_view_core.obj()).obj()); 93 content_view_core.obj()).obj());
94 } 94 }
95 95
96 void BrowserAccessibilityManagerAndroid::NotifyAccessibilityEvent( 96 void BrowserAccessibilityManagerAndroid::NotifyAccessibilityEvent(
97 blink::WebAXEvent event_type, 97 ui::AXEvent event_type,
98 BrowserAccessibility* node) { 98 BrowserAccessibility* node) {
99 JNIEnv* env = AttachCurrentThread(); 99 JNIEnv* env = AttachCurrentThread();
100 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 100 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
101 if (obj.is_null()) 101 if (obj.is_null())
102 return; 102 return;
103 103
104 if (event_type == blink::WebAXEventHide) 104 if (event_type == ui::AX_EVENT_HIDE)
105 return; 105 return;
106 106
107 // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify 107 // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify
108 // the Android system that the accessibility hierarchy rooted at this 108 // the Android system that the accessibility hierarchy rooted at this
109 // node has changed. 109 // node has changed.
110 Java_BrowserAccessibilityManager_handleContentChanged( 110 Java_BrowserAccessibilityManager_handleContentChanged(
111 env, obj.obj(), node->renderer_id()); 111 env, obj.obj(), node->renderer_id());
112 112
113 switch (event_type) { 113 switch (event_type) {
114 case blink::WebAXEventLoadComplete: 114 case ui::AX_EVENT_LOAD_COMPLETE:
115 Java_BrowserAccessibilityManager_handlePageLoaded( 115 Java_BrowserAccessibilityManager_handlePageLoaded(
116 env, obj.obj(), focus_->renderer_id()); 116 env, obj.obj(), focus_->renderer_id());
117 break; 117 break;
118 case blink::WebAXEventFocus: 118 case ui::AX_EVENT_FOCUS:
119 Java_BrowserAccessibilityManager_handleFocusChanged( 119 Java_BrowserAccessibilityManager_handleFocusChanged(
120 env, obj.obj(), node->renderer_id()); 120 env, obj.obj(), node->renderer_id());
121 break; 121 break;
122 case blink::WebAXEventCheckedStateChanged: 122 case ui::AX_EVENT_CHECKED_STATE_CHANGED:
123 Java_BrowserAccessibilityManager_handleCheckStateChanged( 123 Java_BrowserAccessibilityManager_handleCheckStateChanged(
124 env, obj.obj(), node->renderer_id()); 124 env, obj.obj(), node->renderer_id());
125 break; 125 break;
126 case blink::WebAXEventScrolledToAnchor: 126 case ui::AX_EVENT_SCROLLED_TO_ANCHOR:
127 Java_BrowserAccessibilityManager_handleScrolledToAnchor( 127 Java_BrowserAccessibilityManager_handleScrolledToAnchor(
128 env, obj.obj(), node->renderer_id()); 128 env, obj.obj(), node->renderer_id());
129 break; 129 break;
130 case blink::WebAXEventAlert: 130 case ui::AX_EVENT_ALERT:
131 // An alert is a special case of live region. Fall through to the 131 // An alert is a special case of live region. Fall through to the
132 // next case to handle it. 132 // next case to handle it.
133 case blink::WebAXEventShow: { 133 case ui::AX_EVENT_SHOW: {
134 // This event is fired when an object appears in a live region. 134 // This event is fired when an object appears in a live region.
135 // Speak its text. 135 // Speak its text.
136 BrowserAccessibilityAndroid* android_node = 136 BrowserAccessibilityAndroid* android_node =
137 static_cast<BrowserAccessibilityAndroid*>(node); 137 static_cast<BrowserAccessibilityAndroid*>(node);
138 Java_BrowserAccessibilityManager_announceLiveRegionText( 138 Java_BrowserAccessibilityManager_announceLiveRegionText(
139 env, obj.obj(), 139 env, obj.obj(),
140 base::android::ConvertUTF16ToJavaString( 140 base::android::ConvertUTF16ToJavaString(
141 env, android_node->GetText()).obj()); 141 env, android_node->GetText()).obj());
142 break; 142 break;
143 } 143 }
144 case blink::WebAXEventSelectedTextChanged: 144 case ui::AX_EVENT_SELECTED_TEXT_CHANGED:
145 Java_BrowserAccessibilityManager_handleTextSelectionChanged( 145 Java_BrowserAccessibilityManager_handleTextSelectionChanged(
146 env, obj.obj(), node->renderer_id()); 146 env, obj.obj(), node->renderer_id());
147 break; 147 break;
148 case blink::WebAXEventChildrenChanged: 148 case ui::AX_EVENT_CHILDREN_CHANGED:
149 case blink::WebAXEventTextChanged: 149 case ui::AX_EVENT_TEXT_CHANGED:
150 case blink::WebAXEventValueChanged: 150 case ui::AX_EVENT_VALUE_CHANGED:
151 if (node->IsEditableText()) { 151 if (node->IsEditableText()) {
152 Java_BrowserAccessibilityManager_handleEditableTextChanged( 152 Java_BrowserAccessibilityManager_handleEditableTextChanged(
153 env, obj.obj(), node->renderer_id()); 153 env, obj.obj(), node->renderer_id());
154 } 154 }
155 break; 155 break;
156 default: 156 default:
157 // There are some notifications that aren't meaningful on Android. 157 // There are some notifications that aren't meaningful on Android.
158 // It's okay to skip them. 158 // It's okay to skip them.
159 break; 159 break;
160 } 160 }
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 BrowserAccessibilityManagerAndroid::UseRootScrollOffsetsWhenComputingBounds() { 443 BrowserAccessibilityManagerAndroid::UseRootScrollOffsetsWhenComputingBounds() {
444 // The Java layer handles the root scroll offset. 444 // The Java layer handles the root scroll offset.
445 return false; 445 return false;
446 } 446 }
447 447
448 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { 448 bool RegisterBrowserAccessibilityManager(JNIEnv* env) {
449 return RegisterNativesImpl(env); 449 return RegisterNativesImpl(env);
450 } 450 }
451 451
452 } // namespace content 452 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698