Merge "Cherry-pick: cc: Always perform analysis to detect solid color tiles." into lmp-dev
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
index e9b9274..a0b4597 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/Tab.java
@@ -821,6 +821,11 @@
}
for (TabObserver observer : mObservers) observer.onContentChanged(this);
+
+ // For browser tabs, we want to set accessibility focus to the page
+ // when it loads. This is not the default behavior for embedded
+ // web views.
+ mContentViewCore.setShouldSetAccessibilityFocusOnPageLoad(true);
}
/**
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 a4aeed5..4b02e99 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
@@ -308,6 +308,12 @@
// Accessibility touch exploration state.
private boolean mTouchExplorationEnabled;
+ // Whether accessibility focus should be set to the page when it finishes loading.
+ // This only applies if an accessibility service like TalkBack is running.
+ // This is desirable behavior for a browser window, but not for an embedded
+ // WebView.
+ private boolean mShouldSetAccessibilityFocusOnPageLoad;
+
// Allows us to dynamically respond when the accessibility script injection flag changes.
private ContentObserver mAccessibilityScriptInjectionObserver;
@@ -3034,6 +3040,23 @@
}
/**
+ * Return whether or not we should set accessibility focus on page load.
+ */
+ public boolean shouldSetAccessibilityFocusOnPageLoad() {
+ return mShouldSetAccessibilityFocusOnPageLoad;
+ }
+
+ /**
+ * Sets whether or not we should set accessibility focus on page load.
+ * This only applies if an accessibility service like TalkBack is running.
+ * This is desirable behavior for a browser window, but not for an embedded
+ * WebView.
+ */
+ public void setShouldSetAccessibilityFocusOnPageLoad(boolean on) {
+ mShouldSetAccessibilityFocusOnPageLoad = on;
+ }
+
+ /**
* Inform WebKit that Fullscreen mode has been exited by the user.
*/
public void exitFullscreen() {
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 6f47233..8ba9800 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
@@ -370,8 +370,10 @@
private void handlePageLoaded(int id) {
if (mUserHasTouchExplored) return;
- mAccessibilityFocusId = id;
- sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
+ if (mContentViewCore.shouldSetAccessibilityFocusOnPageLoad()) {
+ mAccessibilityFocusId = id;
+ sendAccessibilityEvent(id, AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
+ }
}
@CalledByNative