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

Issue 15741009: Native Android accessibility. (Closed)

Created:
7 years, 7 months ago by dmazzoni
Modified:
7 years, 6 months ago
CC:
chromium-reviews, James Su, yusukes+watch_chromium.org, hashimoto+watch_chromium.org, aboxhall+watch_chromium.org, yoshiki+watch_chromium.org, jam, penghuang+watch_chromium.org, yuzo+watch_chromium.org, davidbarr+watch_chromium.org, joi+watch-content_chromium.org, nona+watch_chromium.org, darin-cc_chromium.org, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org, ctguil+watch_chromium.org, zork+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Native Android accessibility. This is the final changelist that completes the initial implementation. When accessibility is on and script injection is turned off or unavailable, constructs a BrowserAccessibilityManager for the ContentViewCore that provides a native accessibility implementation. BUG=242953 R=benm@chromium.org, bulach@chromium.org, dtrainor@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=207875 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=208379

Patch Set 1 #

Patch Set 2 : Candidate patch for public demo #

Total comments: 21

Patch Set 3 : Rebase #

Total comments: 121

Patch Set 4 : Address most reviewer feedback #

Total comments: 9

Patch Set 5 : Rebase #

Patch Set 6 : Remove file not needed here #

Patch Set 7 : Merge error #

Patch Set 8 : Fix #

Total comments: 2

Patch Set 9 : Enable only when script injection is off, address other feedback #

Patch Set 10 : Split RendererAccessibilityFocusOnly fix into separate changelist #

Total comments: 28

Patch Set 11 : Don't call super from AwContents #

Total comments: 2

Patch Set 12 : Now build objs from C++ code using Java helpers #

Total comments: 33

Patch Set 13 : Final feedback #

Patch Set 14 : Rebase #

Patch Set 15 : Fix rebase error #

Total comments: 4

Patch Set 16 : Rebase, update dispatchHoverEvent comment #

Patch Set 17 : Fix swipe navigation, fix ICS #

Patch Set 18 : Fix AwContents for ICS #

Total comments: 2

Patch Set 19 : Fix AwContents #

Total comments: 3

Patch Set 20 : Don't need BaseBrowserAccessibilityManager #

Patch Set 21 : Added comment for SDK version check in C++ code #

Patch Set 22 : Maybe we need BaseBrowserAccessibilityManager after all #

Total comments: 1

Patch Set 23 : Move AccessibilityNodeProvider to JellyBeanBrowserAccessibilityManager #

Patch Set 24 : Unregister ContentObserver to fix leak #

Patch Set 25 : Switch from using dispatchHoverEvent to onHoverEvent #

Patch Set 26 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1123 lines, -399 lines) Patch
M android_webview/java/src/org/chromium/android_webview/AwContents.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +11 lines, -0 lines 0 comments Download
M content/browser/accessibility/accessibility_tree_formatter_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +16 lines, -34 lines 0 comments Download
M content/browser/accessibility/browser_accessibility_android.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +32 lines, -57 lines 0 comments Download
M content/browser/accessibility/browser_accessibility_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 11 chunks +128 lines, -256 lines 0 comments Download
M content/browser/accessibility/browser_accessibility_manager_android.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +10 lines, -3 lines 0 comments Download
M content/browser/accessibility/browser_accessibility_manager_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 7 chunks +196 lines, -15 lines 0 comments Download
M content/browser/android/browser_jni_registrar.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -0 lines 0 comments Download
M content/browser/android/content_view_core_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/android/content_view_core_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +19 lines, -0 lines 0 comments Download
M content/content_jni.gypi View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 24 chunks +158 lines, -10 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/JellyBeanContentView.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 2 chunks +11 lines, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/accessibility/AccessibilityInjector.java View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +13 lines, -22 lines 0 comments Download
A content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +459 lines, -0 lines 0 comments Download
M content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanAccessibilityInjector.java View 1 2 3 4 1 chunk +0 lines, -1 line 0 comments Download
A content/public/android/java/src/org/chromium/content/browser/accessibility/JellyBeanBrowserAccessibilityManager.java View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +53 lines, -0 lines 0 comments Download
M content/renderer/accessibility/renderer_accessibility_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +11 lines, -1 line 0 comments Download

Messages

Total messages: 52 (0 generated)
dmazzoni
Here's a snapshot of what we have so far.
7 years, 7 months ago (2013-05-22 16:30:28 UTC) #1
dmazzoni
@dtrainor: we're going to split out a lot of the C++ infrastructure into a separate ...
7 years, 6 months ago (2013-06-03 18:42:25 UTC) #2
benm (inactive)
https://codereview.chromium.org/15741009/diff/6001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java File content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java (right): https://codereview.chromium.org/15741009/diff/6001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java#newcode337 content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java:337: sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED); This seems to be called despite accessibility ...
7 years, 6 months ago (2013-06-04 13:13:11 UTC) #3
dmazzoni
On Tue, Jun 4, 2013 at 6:13 AM, <benm@chromium.org> wrote: > AccessibilityEvent.TYPE_VIEW_**ACCESSIBILITY_FOCUSED); > This seems ...
7 years, 6 months ago (2013-06-04 13:53:33 UTC) #4
benm (inactive)
Just trying with TalkBack switched on ... no crashes, but I can't get it to ...
7 years, 6 months ago (2013-06-04 15:06:02 UTC) #5
dmazzoni
You shouldn't have to do anything for it to work, it should say the page ...
7 years, 6 months ago (2013-06-04 15:13:47 UTC) #6
benm (inactive)
On 4 June 2013 16:13, Dominic Mazzoni <dmazzoni@chromium.org> wrote: > You shouldn't have to do ...
7 years, 6 months ago (2013-06-04 15:32:21 UTC) #7
dmazzoni
On Tue, Jun 4, 2013 at 8:32 AM, Ben Murdoch <benm@chromium.org> wrote: > I just ...
7 years, 6 months ago (2013-06-04 15:41:46 UTC) #8
benm (inactive)
OK, let me hook that up and try again. On 4 June 2013 16:41, Dominic ...
7 years, 6 months ago (2013-06-04 15:45:31 UTC) #9
alanv
https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java File content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java (right): https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java#newcode121 content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java:121: info.setEnabled(true); Gets set later, can drop this line. https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java#newcode122 ...
7 years, 6 months ago (2013-06-04 17:50:22 UTC) #10
benm (inactive)
On 2013/06/04 15:45:31, benm wrote: > OK, let me hook that up and try again. ...
7 years, 6 months ago (2013-06-04 18:16:50 UTC) #11
David Trainor- moved to gerrit
Initial nits. I'm not an owner on anything but chrome/android and I don't know enough ...
7 years, 6 months ago (2013-06-04 20:27:18 UTC) #12
benm (inactive)
https://codereview.chromium.org/15741009/diff/6001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java File content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java (right): https://codereview.chromium.org/15741009/diff/6001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java#newcode2639 content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java:2639: public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) { Do we need the ...
7 years, 6 months ago (2013-06-05 10:52:39 UTC) #13
benm (inactive)
On 2013/06/04 18:16:50, benm wrote: > On 2013/06/04 15:45:31, benm wrote: > > OK, let ...
7 years, 6 months ago (2013-06-05 10:55:33 UTC) #14
dmazzoni
We've addressed almost all feedback. https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java File content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java (right): https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java#newcode121 content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java:121: info.setEnabled(true); On 2013/06/04 17:50:22, ...
7 years, 6 months ago (2013-06-07 20:23:15 UTC) #15
benm (inactive)
https://codereview.chromium.org/15741009/diff/27001/content/browser/accessibility/accessibility_tree_formatter_android.cc File content/browser/accessibility/accessibility_tree_formatter_android.cc (right): https://codereview.chromium.org/15741009/diff/27001/content/browser/accessibility/accessibility_tree_formatter_android.cc#newcode23 content/browser/accessibility/accessibility_tree_formatter_android.cc:23: const char* BOOL_ATTRIBUTES[] = { should these be in ...
7 years, 6 months ago (2013-06-10 14:24:23 UTC) #16
benm (inactive)
https://codereview.chromium.org/15741009/diff/53001/content/public/android/java/src/org/chromium/content/browser/ContentView.java File content/public/android/java/src/org/chromium/content/browser/ContentView.java (right): https://codereview.chromium.org/15741009/diff/53001/content/public/android/java/src/org/chromium/content/browser/ContentView.java#newcode499 content/public/android/java/src/org/chromium/content/browser/ContentView.java:499: public boolean dispatchHoverEvent(MotionEvent event) { Similar change still needed ...
7 years, 6 months ago (2013-06-17 11:17:49 UTC) #17
alanv
https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java File content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java (right): https://codereview.chromium.org/15741009/diff/2001/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java#newcode329 content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java:329: sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED); On 2013/06/07 20:23:15, Dominic Mazzoni wrote: > ...
7 years, 6 months ago (2013-06-17 22:53:28 UTC) #18
dmazzoni
Ready for another look! I made the changes to AwContents.java and Alice finished the logic ...
7 years, 6 months ago (2013-06-18 20:22:34 UTC) #19
dmazzoni
+bulach Marcus, I'd appreciate it if you could review this now! I think I've addressed ...
7 years, 6 months ago (2013-06-18 20:37:21 UTC) #20
benm (inactive)
https://codereview.chromium.org/15741009/diff/62002/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/15741009/diff/62002/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode1088 android_webview/java/src/org/chromium/android_webview/AwContents.java:1088: return super.dispatchHoverEvent(event); AwContents doesn't inherit from View, (doesn't have ...
7 years, 6 months ago (2013-06-19 09:35:52 UTC) #21
dmazzoni
https://codereview.chromium.org/15741009/diff/62002/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/15741009/diff/62002/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode1088 android_webview/java/src/org/chromium/android_webview/AwContents.java:1088: return super.dispatchHoverEvent(event); On 2013/06/19 09:35:53, benm wrote: > AwContents ...
7 years, 6 months ago (2013-06-19 10:05:57 UTC) #22
benm (inactive)
a_w lgtm, thanks!
7 years, 6 months ago (2013-06-19 10:07:18 UTC) #23
bulach
thanks dominic! some nits and one concert below regarding exposing the native side BrowserAccessibilityAndroid directly ...
7 years, 6 months ago (2013-06-19 10:26:52 UTC) #24
dmazzoni
https://codereview.chromium.org/15741009/diff/62002/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibility.java File content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibility.java (right): https://codereview.chromium.org/15741009/diff/62002/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibility.java#newcode27 content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibility.java:27: static native void nativeFocusJNI(int nativeBrowserAccessibilityAndroid); On 2013/06/19 10:26:53, bulach ...
7 years, 6 months ago (2013-06-19 14:00:15 UTC) #25
bulach
thanks dominic! suggestion below.. not sure where the critical-path is, but let's try to optimize ...
7 years, 6 months ago (2013-06-19 14:07:07 UTC) #26
dmazzoni
To expand on this some more, here are some alternatives and their tradeoffs: 1. Current ...
7 years, 6 months ago (2013-06-19 14:56:04 UTC) #27
dmazzoni
On 2013/06/19 14:07:07, bulach wrote: > thanks dominic! suggestion below.. not sure where the critical-path ...
7 years, 6 months ago (2013-06-19 15:03:01 UTC) #28
bulach
On 2013/06/19 15:03:01, Dominic Mazzoni wrote: > On 2013/06/19 14:07:07, bulach wrote: > > thanks ...
7 years, 6 months ago (2013-06-19 15:10:09 UTC) #29
dmazzoni
On 2013/06/19 15:10:09, bulach wrote: > something in between :) Sounds good, I'll try grouping ...
7 years, 6 months ago (2013-06-19 15:13:58 UTC) #30
dmazzoni
https://codereview.chromium.org/15741009/diff/62002/content/browser/accessibility/browser_accessibility_manager_android.cc File content/browser/accessibility/browser_accessibility_manager_android.cc (right): https://codereview.chromium.org/15741009/diff/62002/content/browser/accessibility/browser_accessibility_manager_android.cc#newcode88 content/browser/accessibility/browser_accessibility_manager_android.cc:88: case AccessibilityNotificationLoadComplete: On 2013/06/19 10:26:53, bulach wrote: > not ...
7 years, 6 months ago (2013-06-19 19:54:40 UTC) #31
bulach
lgtm for the JNI integration, thanks! some nit and suggestions, and important cleanups required below: ...
7 years, 6 months ago (2013-06-20 09:18:41 UTC) #32
benm (inactive)
https://codereview.chromium.org/15741009/diff/83001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java File content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java (right): https://codereview.chromium.org/15741009/diff/83001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java#newcode2734 content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java:2734: return false; We should also check whether javascript is ...
7 years, 6 months ago (2013-06-20 10:00:42 UTC) #33
David Trainor- moved to gerrit
nits, but lgtm. https://codereview.chromium.org/15741009/diff/83001/content/public/android/java/src/org/chromium/content/browser/ContentView.java File content/public/android/java/src/org/chromium/content/browser/ContentView.java (right): https://codereview.chromium.org/15741009/diff/83001/content/public/android/java/src/org/chromium/content/browser/ContentView.java#newcode600 content/public/android/java/src/org/chromium/content/browser/ContentView.java:600: return provider; need {} around these ...
7 years, 6 months ago (2013-06-20 16:57:10 UTC) #34
dmazzoni
All feedback addressed! I'm going to do some final testing to make sure I didn't ...
7 years, 6 months ago (2013-06-21 05:38:54 UTC) #35
joth
One small comment although we can follow up with this change if needed Thanks https://codereview.chromium.org/15741009/diff/105001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java ...
7 years, 6 months ago (2013-06-21 17:19:38 UTC) #36
dmazzoni
https://codereview.chromium.org/15741009/diff/105001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java File content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java (right): https://codereview.chromium.org/15741009/diff/105001/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java#newcode1687 content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java:1687: public boolean dispatchHoverEvent(MotionEvent event) { On 2013/06/21 17:19:38, joth ...
7 years, 6 months ago (2013-06-21 17:46:21 UTC) #37
dmazzoni
Committed patchset #16 manually as r207875 (presubmit successful).
7 years, 6 months ago (2013-06-21 17:52:44 UTC) #38
dmazzoni
I had to make a few changes so this doesn't crash on ICS. (Some of ...
7 years, 6 months ago (2013-06-21 23:05:02 UTC) #39
joth
sorry about the ICS hassle... https://codereview.chromium.org/15741009/diff/121001/content/browser/accessibility/browser_accessibility_manager_android.cc File content/browser/accessibility/browser_accessibility_manager_android.cc (right): https://codereview.chromium.org/15741009/diff/121001/content/browser/accessibility/browser_accessibility_manager_android.cc#newcode64 content/browser/accessibility/browser_accessibility_manager_android.cc:64: if (base::android::BuildInfo::GetInstance()->sdk_int() < kJellyBeanSdkLevel) ...
7 years, 6 months ago (2013-06-21 23:35:38 UTC) #40
dmazzoni
https://codereview.chromium.org/15741009/diff/121001/content/browser/accessibility/browser_accessibility_manager_android.cc File content/browser/accessibility/browser_accessibility_manager_android.cc (right): https://codereview.chromium.org/15741009/diff/121001/content/browser/accessibility/browser_accessibility_manager_android.cc#newcode64 content/browser/accessibility/browser_accessibility_manager_android.cc:64: if (base::android::BuildInfo::GetInstance()->sdk_int() < kJellyBeanSdkLevel) On 2013/06/21 23:35:39, joth wrote: ...
7 years, 6 months ago (2013-06-22 06:53:46 UTC) #41
joth
lgtm https://codereview.chromium.org/15741009/diff/146001/android_webview/java/src/org/chromium/android_webview/AwContents.java File android_webview/java/src/org/chromium/android_webview/AwContents.java (right): https://codereview.chromium.org/15741009/diff/146001/android_webview/java/src/org/chromium/android_webview/AwContents.java#newcode1313 android_webview/java/src/org/chromium/android_webview/AwContents.java:1313: public BaseBrowserAccessibilityManager getBrowserAccessibilityManager() { Thoughts on doing the ...
7 years, 6 months ago (2013-06-22 19:30:46 UTC) #42
dmazzoni
This is still causing problems...I think I see why, the JNI C++ code is trying ...
7 years, 6 months ago (2013-06-22 20:43:41 UTC) #43
dmazzoni
This looks promising! Down to just two test failures. Any idea about the failure in ...
7 years, 6 months ago (2013-06-24 03:07:47 UTC) #44
David Trainor- moved to gerrit
On 2013/06/24 03:07:47, Dominic Mazzoni wrote: > This looks promising! > > Down to just ...
7 years, 6 months ago (2013-06-24 16:21:05 UTC) #45
dmazzoni
On Mon, Jun 24, 2013 at 9:21 AM, <dtrainor@chromium.org> wrote: > Related to overriding dispatchhoverevent ...
7 years, 6 months ago (2013-06-24 22:34:39 UTC) #46
dmazzoni
I think I addressed all of the test failures, crossing my fingers I can land ...
7 years, 6 months ago (2013-06-24 22:36:12 UTC) #47
benm (inactive)
On 2013/06/24 22:36:12, Dominic Mazzoni wrote: > I think I addressed all of the test ...
7 years, 6 months ago (2013-06-24 22:39:37 UTC) #48
dmazzoni
On Mon, Jun 24, 2013 at 3:39 PM, <benm@chromium.org> wrote: > On 2013/06/24 22:36:12, Dominic ...
7 years, 6 months ago (2013-06-24 22:42:17 UTC) #49
benm (inactive)
On 2013/06/24 22:39:37, benm wrote: > On 2013/06/24 22:36:12, Dominic Mazzoni wrote: > > I ...
7 years, 6 months ago (2013-06-24 22:45:42 UTC) #50
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/dmazzoni@chromium.org/15741009/166001
7 years, 6 months ago (2013-06-24 23:43:49 UTC) #51
commit-bot: I haz the power
7 years, 6 months ago (2013-06-25 03:31:10 UTC) #52
Message was sent while issue was closed.
Change committed as 208379

Powered by Google App Engine
This is Rietveld 408576698