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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java

Issue 2903583006: Collect metrics on running Accessibility services on Android (Closed)
Patch Set: Rebase Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
index 23e0ca37bcc9d00beefbc2d83aca147beb5a5719..774f036b63079135891038ec35d9d25a01eff1c3 100644
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/BrowserAccessibilityManager.java
@@ -4,6 +4,7 @@
package org.chromium.content.browser.accessibility;
+import android.accessibilityservice.AccessibilityServiceInfo;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.content.Context;
@@ -58,7 +59,7 @@ public class BrowserAccessibilityManager {
private final AccessibilityNodeProvider mAccessibilityNodeProvider;
protected ContentViewCore mContentViewCore;
- private final AccessibilityManager mAccessibilityManager;
+ protected final AccessibilityManager mAccessibilityManager;
private final RenderCoordinates mRenderCoordinates;
private long mNativeObj;
private Rect mAccessibilityFocusRect;
@@ -1213,6 +1214,65 @@ public class BrowserAccessibilityManager {
== 1);
}
+ /**
+ * Iterate over all enabled accessibility services and return a bitmask containing the union
+ * of all event types that they listen to.
+ * @return
+ */
+ @CalledByNative
+ private int getAccessibilityServiceEventTypeMask() {
+ int eventTypeMask = 0;
+ for (AccessibilityServiceInfo service :
+ mAccessibilityManager.getEnabledAccessibilityServiceList(
+ AccessibilityServiceInfo.FEEDBACK_ALL_MASK)) {
+ eventTypeMask |= service.eventTypes;
+ }
+ return eventTypeMask;
+ }
+
+ /**
+ * Iterate over all enabled accessibility services and return a bitmask containing the union
+ * of all feedback types that they provide.
+ * @return
+ */
+ @CalledByNative
+ private int getAccessibilityServiceFeedbackTypeMask() {
+ int feedbackTypeMask = 0;
+ for (AccessibilityServiceInfo service :
+ mAccessibilityManager.getEnabledAccessibilityServiceList(
+ AccessibilityServiceInfo.FEEDBACK_ALL_MASK)) {
+ feedbackTypeMask |= service.feedbackType;
+ }
+ return feedbackTypeMask;
+ }
+
+ /**
+ * Iterate over all enabled accessibility services and return a bitmask containing the union
+ * of all accessibility service flags from any of them.
+ * @return
+ */
+ @CalledByNative
+ private int getAccessibilityServiceFlagsMask() {
+ int flagsMask = 0;
+ for (AccessibilityServiceInfo service :
+ mAccessibilityManager.getEnabledAccessibilityServiceList(
+ AccessibilityServiceInfo.FEEDBACK_ALL_MASK)) {
+ flagsMask |= service.flags;
+ }
+ return flagsMask;
+ }
+
+ /**
+ * Iterate over all enabled accessibility services and return a bitmask containing the union
+ * of all service capabilities.
+ * @return
+ */
+ @CalledByNative
+ protected int getAccessibilityServiceCapabilitiesMask() {
+ // Implemented in KitKatBrowserAccessibilityManager.
+ return 0;
+ }
+
private native void nativeOnAutofillPopupDisplayed(
long nativeBrowserAccessibilityManagerAndroid);
private native void nativeOnAutofillPopupDismissed(

Powered by Google App Engine
This is Rietveld 408576698