Merge "Reload page when A11y is on and the JavaScript state changes." into jb-mr1-dev

This commit is contained in:
Charles Chen
2012-08-27 15:42:39 -07:00
committed by Android (Google) Code Review
3 changed files with 25 additions and 0 deletions

View File

@@ -279,6 +279,7 @@ class AccessibilityInjector {
}
if (!shouldInjectJavaScript(url)) {
mAccessibilityScriptInjected = false;
toggleFallbackAccessibilityInjector(true);
return;
}
@@ -291,6 +292,23 @@ class AccessibilityInjector {
mAccessibilityScriptInjected = true;
}
/**
* Adjusts the accessibility injection state to reflect changes in the
* JavaScript enabled state.
*
* @param enabled Whether JavaScript is enabled.
*/
public void updateJavaScriptEnabled(boolean enabled) {
if (enabled) {
addAccessibilityApisIfNecessary();
} else {
removeAccessibilityApisIfNecessary();
}
// We have to reload the page after adding or removing APIs.
mWebView.reload();
}
/**
* Toggles the non-JavaScript method for handling accessibility.
*

View File

@@ -1122,6 +1122,7 @@ public class WebSettingsClassic extends WebSettings {
if (mJavaScriptEnabled != flag) {
mJavaScriptEnabled = flag;
postSync();
mWebView.updateJavaScriptEnabled(flag);
}
}

View File

@@ -1633,6 +1633,12 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc
mZoomManager.updateMultiTouchSupport(context);
}
void updateJavaScriptEnabled(boolean enabled) {
if (isAccessibilityInjectionEnabled()) {
getAccessibilityInjector().updateJavaScriptEnabled(enabled);
}
}
private void init() {
OnTrimMemoryListener.init(mContext);
mWebView.setWillNotDraw(false);