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

* commit '6d00c724330702c6bfd2bba2b7b2501fa3ab62ff':
  Reload page when A11y is on and the JavaScript state changes.
This commit is contained in:
Svetoslav Ganov
2012-08-15 18:32:40 -07:00
committed by Android Git Automerger
3 changed files with 25 additions and 0 deletions

View File

@@ -279,6 +279,7 @@ class AccessibilityInjector {
} }
if (!shouldInjectJavaScript(url)) { if (!shouldInjectJavaScript(url)) {
mAccessibilityScriptInjected = false;
toggleFallbackAccessibilityInjector(true); toggleFallbackAccessibilityInjector(true);
return; return;
} }
@@ -291,6 +292,23 @@ class AccessibilityInjector {
mAccessibilityScriptInjected = true; 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. * Toggles the non-JavaScript method for handling accessibility.
* *

View File

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

View File

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