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

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

Issue 1589623002: Keep track of accessibility focus across windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Final suggestions Created 4 years, 10 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 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 10
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify 137 // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify
138 // the Android system that the accessibility hierarchy rooted at this 138 // the Android system that the accessibility hierarchy rooted at this
139 // node has changed. 139 // node has changed.
140 Java_BrowserAccessibilityManager_handleContentChanged( 140 Java_BrowserAccessibilityManager_handleContentChanged(
141 env, obj.obj(), node->GetId()); 141 env, obj.obj(), node->GetId());
142 142
143 switch (event_type) { 143 switch (event_type) {
144 case ui::AX_EVENT_LOAD_COMPLETE: 144 case ui::AX_EVENT_LOAD_COMPLETE:
145 Java_BrowserAccessibilityManager_handlePageLoaded( 145 Java_BrowserAccessibilityManager_handlePageLoaded(
146 env, obj.obj(), focus_->id()); 146 env, obj.obj(), GetFocus()->GetId());
147 break; 147 break;
148 case ui::AX_EVENT_FOCUS: 148 case ui::AX_EVENT_FOCUS:
149 Java_BrowserAccessibilityManager_handleFocusChanged( 149 Java_BrowserAccessibilityManager_handleFocusChanged(
150 env, obj.obj(), node->GetId()); 150 env, obj.obj(), node->GetId());
151 break; 151 break;
152 case ui::AX_EVENT_CHECKED_STATE_CHANGED: 152 case ui::AX_EVENT_CHECKED_STATE_CHANGED:
153 Java_BrowserAccessibilityManager_handleCheckStateChanged( 153 Java_BrowserAccessibilityManager_handleCheckStateChanged(
154 env, obj.obj(), node->GetId()); 154 env, obj.obj(), node->GetId());
155 break; 155 break;
156 case ui::AX_EVENT_CLICKED: 156 case ui::AX_EVENT_CLICKED:
(...skipping 19 matching lines...) Expand all
176 base::android::ConvertUTF16ToJavaString( 176 base::android::ConvertUTF16ToJavaString(
177 env, android_node->GetText()).obj()); 177 env, android_node->GetText()).obj());
178 break; 178 break;
179 } 179 }
180 case ui::AX_EVENT_TEXT_SELECTION_CHANGED: 180 case ui::AX_EVENT_TEXT_SELECTION_CHANGED:
181 Java_BrowserAccessibilityManager_handleTextSelectionChanged( 181 Java_BrowserAccessibilityManager_handleTextSelectionChanged(
182 env, obj.obj(), node->GetId()); 182 env, obj.obj(), node->GetId());
183 break; 183 break;
184 case ui::AX_EVENT_TEXT_CHANGED: 184 case ui::AX_EVENT_TEXT_CHANGED:
185 case ui::AX_EVENT_VALUE_CHANGED: 185 case ui::AX_EVENT_VALUE_CHANGED:
186 if (android_node->IsEditableText() && GetFocus(GetRoot()) == node) { 186 if (android_node->IsEditableText() && GetFocus() == node) {
187 Java_BrowserAccessibilityManager_handleEditableTextChanged( 187 Java_BrowserAccessibilityManager_handleEditableTextChanged(
188 env, obj.obj(), node->GetId()); 188 env, obj.obj(), node->GetId());
189 } else if (android_node->IsSlider()) { 189 } else if (android_node->IsSlider()) {
190 Java_BrowserAccessibilityManager_handleSliderChanged( 190 Java_BrowserAccessibilityManager_handleSliderChanged(
191 env, obj.obj(), node->GetId()); 191 env, obj.obj(), node->GetId());
192 } 192 }
193 break; 193 break;
194 default: 194 default:
195 // There are some notifications that aren't meaningful on Android. 195 // There are some notifications that aren't meaningful on Android.
196 // It's okay to skip them. 196 // It's okay to skip them.
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 BrowserAccessibility* node = GetFromID(id); 489 BrowserAccessibility* node = GetFromID(id);
490 if (node) 490 if (node)
491 DoDefaultAction(*node); 491 DoDefaultAction(*node);
492 } 492 }
493 493
494 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env, 494 void BrowserAccessibilityManagerAndroid::Focus(JNIEnv* env,
495 const JavaParamRef<jobject>& obj, 495 const JavaParamRef<jobject>& obj,
496 jint id) { 496 jint id) {
497 BrowserAccessibility* node = GetFromID(id); 497 BrowserAccessibility* node = GetFromID(id);
498 if (node) 498 if (node)
499 SetFocus(node, true); 499 SetFocus(*node);
500 } 500 }
501 501
502 void BrowserAccessibilityManagerAndroid::Blur( 502 void BrowserAccessibilityManagerAndroid::Blur(
503 JNIEnv* env, 503 JNIEnv* env,
504 const JavaParamRef<jobject>& obj) { 504 const JavaParamRef<jobject>& obj) {
505 SetFocus(GetRoot(), true); 505 SetFocus(*GetRoot());
506 } 506 }
507 507
508 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible( 508 void BrowserAccessibilityManagerAndroid::ScrollToMakeNodeVisible(
509 JNIEnv* env, 509 JNIEnv* env,
510 const JavaParamRef<jobject>& obj, 510 const JavaParamRef<jobject>& obj,
511 jint id) { 511 jint id) {
512 BrowserAccessibility* node = GetFromID(id); 512 BrowserAccessibility* node = GetFromID(id);
513 if (node) 513 if (node)
514 ScrollToMakeVisible(*node, gfx::Rect(node->GetLocation().size())); 514 ScrollToMakeVisible(*node, gfx::Rect(node->GetLocation().size()));
515 } 515 }
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 BrowserAccessibilityManagerAndroid::UseRootScrollOffsetsWhenComputingBounds() { 852 BrowserAccessibilityManagerAndroid::UseRootScrollOffsetsWhenComputingBounds() {
853 // The Java layer handles the root scroll offset. 853 // The Java layer handles the root scroll offset.
854 return false; 854 return false;
855 } 855 }
856 856
857 bool RegisterBrowserAccessibilityManager(JNIEnv* env) { 857 bool RegisterBrowserAccessibilityManager(JNIEnv* env) {
858 return RegisterNativesImpl(env); 858 return RegisterNativesImpl(env);
859 } 859 }
860 860
861 } // namespace content 861 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698