Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
index 411f8a06c2db654d1ca8adafa5257f7231709012..c06498850c7a765b5e901e7574bc26cce2e0c087 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
@@ -9,7 +9,6 @@ import android.annotation.TargetApi; |
import android.app.Activity; |
import android.app.SearchManager; |
import android.content.ClipboardManager; |
-import android.content.ContentResolver; |
import android.content.Context; |
import android.content.ContextWrapper; |
import android.content.Intent; |
@@ -19,14 +18,12 @@ import android.database.ContentObserver; |
import android.graphics.Bitmap; |
import android.graphics.Canvas; |
import android.graphics.Rect; |
-import android.net.Uri; |
import android.os.Build; |
import android.os.Bundle; |
import android.os.Handler; |
import android.os.ResultReceiver; |
import android.os.SystemClock; |
import android.provider.Browser; |
-import android.provider.Settings; |
import android.text.Editable; |
import android.text.Selection; |
import android.text.TextUtils; |
@@ -38,10 +35,8 @@ import android.view.KeyEvent; |
import android.view.MotionEvent; |
import android.view.View; |
import android.view.ViewGroup; |
-import android.view.accessibility.AccessibilityEvent; |
import android.view.accessibility.AccessibilityManager; |
import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener; |
-import android.view.accessibility.AccessibilityNodeInfo; |
import android.view.accessibility.AccessibilityNodeProvider; |
import android.view.inputmethod.EditorInfo; |
import android.view.inputmethod.InputConnection; |
@@ -58,7 +53,6 @@ import org.chromium.base.TraceEvent; |
import org.chromium.base.VisibleForTesting; |
import org.chromium.content.R; |
import org.chromium.content.browser.ScreenOrientationListener.ScreenOrientationObserver; |
-import org.chromium.content.browser.accessibility.AccessibilityInjector; |
import org.chromium.content.browser.accessibility.BrowserAccessibilityManager; |
import org.chromium.content.browser.accessibility.captioning.CaptioningBridgeFactory; |
import org.chromium.content.browser.accessibility.captioning.SystemCaptioningBridge; |
@@ -89,7 +83,6 @@ import org.chromium.ui.touch_selection.SelectionEventType; |
import java.lang.annotation.Annotation; |
import java.lang.ref.WeakReference; |
-import java.lang.reflect.Field; |
import java.util.ArrayList; |
import java.util.HashMap; |
import java.util.HashSet; |
@@ -314,20 +307,6 @@ public class ContentViewCore |
} |
@Override |
- public void didStartLoading(String url) { |
- ContentViewCore contentViewCore = mWeakContentViewCore.get(); |
- if (contentViewCore == null) return; |
- contentViewCore.mAccessibilityInjector.onPageLoadStarted(); |
- } |
- |
- @Override |
- public void didStopLoading(String url) { |
- ContentViewCore contentViewCore = mWeakContentViewCore.get(); |
- if (contentViewCore == null) return; |
- contentViewCore.mAccessibilityInjector.onPageLoadStopped(); |
- } |
- |
- @Override |
public void didFailLoad(boolean isProvisionalLoad, boolean isMainFrame, int errorCode, |
String description, String failingUrl) { |
// Navigation that fails the provisional load will have the strong binding removed |
@@ -539,9 +518,6 @@ public class ContentViewCore |
// Delegate that will handle GET downloads, and be notified of completion of POST downloads. |
private ContentViewDownloadDelegate mDownloadDelegate; |
- // The AccessibilityInjector that handles loading Accessibility scripts into the web page. |
- private AccessibilityInjector mAccessibilityInjector; |
- |
// Whether native accessibility, i.e. without any script injection, is allowed. |
private boolean mNativeAccessibilityAllowed; |
@@ -837,8 +813,6 @@ public class ContentViewCore |
mImeAdapter = createImeAdapter(); |
attachImeAdapter(); |
- mAccessibilityInjector = AccessibilityInjector.newInstance(this); |
- |
mWebContentsObserver = new ContentViewWebContentsObserver(this); |
} |
@@ -1442,7 +1416,6 @@ public class ContentViewCore |
public void onHide() { |
assert mWebContents != null; |
hidePopupsAndPreserveSelection(); |
- setInjectedAccessibility(false); |
mWebContents.onHide(); |
} |
@@ -1514,7 +1487,6 @@ public class ContentViewCore |
@SuppressWarnings("javadoc") |
@SuppressLint("MissingSuperCall") |
public void onDetachedFromWindow() { |
- setInjectedAccessibility(false); |
mZoomControlsDelegate.dismissZoomPicker(); |
unregisterAccessibilityContentObserver(); |
@@ -2878,7 +2850,8 @@ public class ContentViewCore |
* @return Whether or not this action is supported. |
*/ |
public boolean supportsAccessibilityAction(int action) { |
- return mAccessibilityInjector.supportsAccessibilityAction(action); |
+ // TODO(dmazzoni): implement this in BrowserAccessibilityManager. |
+ return false; |
} |
/** |
@@ -2892,10 +2865,7 @@ public class ContentViewCore |
* the super {@link View} class. |
*/ |
public boolean performAccessibilityAction(int action, Bundle arguments) { |
- if (mAccessibilityInjector.supportsAccessibilityAction(action)) { |
- return mAccessibilityInjector.performAccessibilityAction(action, arguments); |
- } |
- |
+ // TODO(dmazzoni): implement this in BrowserAccessibilityManager. |
return false; |
} |
@@ -2956,96 +2926,6 @@ public class ContentViewCore |
} |
/** |
- * @see View#onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) |
- */ |
- public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { |
- // Note: this is only used by the script-injecting accessibility code. |
- mAccessibilityInjector.onInitializeAccessibilityNodeInfo(info); |
- } |
- |
- /** |
- * @see View#onInitializeAccessibilityEvent(AccessibilityEvent) |
- */ |
- @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) |
- public void onInitializeAccessibilityEvent(AccessibilityEvent event) { |
- // Note: this is only used by the script-injecting accessibility code. |
- event.setClassName(this.getClass().getName()); |
- |
- // Identify where the top-left of the screen currently points to. |
- event.setScrollX(mRenderCoordinates.getScrollXPixInt()); |
- event.setScrollY(mRenderCoordinates.getScrollYPixInt()); |
- |
- // The maximum scroll values are determined by taking the content dimensions and |
- // subtracting off the actual dimensions of the ChromeView. |
- int maxScrollXPix = Math.max(0, mRenderCoordinates.getMaxHorizontalScrollPixInt()); |
- int maxScrollYPix = Math.max(0, mRenderCoordinates.getMaxVerticalScrollPixInt()); |
- event.setScrollable(maxScrollXPix > 0 || maxScrollYPix > 0); |
- |
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { |
- event.setMaxScrollX(maxScrollXPix); |
- event.setMaxScrollY(maxScrollYPix); |
- } |
- } |
- |
- /** |
- * Returns whether accessibility script injection is enabled on the device |
- */ |
- public boolean isDeviceAccessibilityScriptInjectionEnabled() { |
- try { |
- // On JellyBean and higher, native accessibility is the default so script |
- // injection is only allowed if enabled via a flag. |
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN |
- && !CommandLine.getInstance().hasSwitch( |
- ContentSwitches.ENABLE_ACCESSIBILITY_SCRIPT_INJECTION)) { |
- return false; |
- } |
- |
- if (!mContentViewClient.isJavascriptEnabled()) { |
- return false; |
- } |
- |
- int result = getContext().checkCallingOrSelfPermission( |
- android.Manifest.permission.INTERNET); |
- if (result != PackageManager.PERMISSION_GRANTED) { |
- return false; |
- } |
- |
- Field field = Settings.Secure.class.getField("ACCESSIBILITY_SCRIPT_INJECTION"); |
- field.setAccessible(true); |
- String accessibilityScriptInjection = (String) field.get(null); |
- ContentResolver contentResolver = getContext().getContentResolver(); |
- |
- if (mAccessibilityScriptInjectionObserver == null) { |
- ContentObserver contentObserver = new ContentObserver(new Handler()) { |
- @Override |
- public void onChange(boolean selfChange, Uri uri) { |
- setAccessibilityState(mAccessibilityManager.isEnabled()); |
- } |
- }; |
- contentResolver.registerContentObserver( |
- Settings.Secure.getUriFor(accessibilityScriptInjection), |
- false, |
- contentObserver); |
- mAccessibilityScriptInjectionObserver = contentObserver; |
- } |
- |
- return Settings.Secure.getInt(contentResolver, accessibilityScriptInjection, 0) == 1; |
- } catch (NoSuchFieldException e) { |
- // Do nothing, default to false. |
- } catch (IllegalAccessException e) { |
- // Do nothing, default to false. |
- } |
- return false; |
- } |
- |
- /** |
- * Returns whether or not accessibility injection is being used. |
- */ |
- public boolean isInjectingAccessibilityScript() { |
- return mAccessibilityInjector.accessibilityIsAvailable(); |
- } |
- |
- /** |
* Returns true if accessibility is on and touch exploration is enabled. |
*/ |
public boolean isTouchExplorationEnabled() { |
@@ -3060,33 +2940,15 @@ public class ContentViewCore |
*/ |
public void setAccessibilityState(boolean state) { |
if (!state) { |
- setInjectedAccessibility(false); |
mNativeAccessibilityAllowed = false; |
mTouchExplorationEnabled = false; |
} else { |
- boolean useScriptInjection = isDeviceAccessibilityScriptInjectionEnabled(); |
- setInjectedAccessibility(useScriptInjection); |
- mNativeAccessibilityAllowed = !useScriptInjection; |
+ mNativeAccessibilityAllowed = true; |
mTouchExplorationEnabled = mAccessibilityManager.isTouchExplorationEnabled(); |
} |
} |
/** |
- * Enable or disable injected accessibility features |
- */ |
- public void setInjectedAccessibility(boolean enabled) { |
- mAccessibilityInjector.addOrRemoveAccessibilityApisIfNecessary(); |
- mAccessibilityInjector.setScriptEnabled(enabled); |
- } |
- |
- /** |
- * Stop any TTS notifications that are currently going on. |
- */ |
- public void stopCurrentAccessibilityNotifications() { |
- mAccessibilityInjector.onPageLostFocus(); |
- } |
- |
- /** |
* Return whether or not we should set accessibility focus on page load. |
*/ |
public boolean shouldSetAccessibilityFocusOnPageLoad() { |