Skip to content

Commit 92a5be9

Browse files
committed
Reload page when A11y is on and the JavaScript state changes.
Bug: 6910403 Change-Id: I0965d76e76282736d053947eb96be0af32fd6001
1 parent 336b31c commit 92a5be9

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

core/java/android/webkit/AccessibilityInjector.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ public void onPageFinished(String url) {
279279
}
280280

281281
if (!shouldInjectJavaScript(url)) {
282+
mAccessibilityScriptInjected = false;
282283
toggleFallbackAccessibilityInjector(true);
283284
return;
284285
}
@@ -291,6 +292,23 @@ public void onPageFinished(String url) {
291292
mAccessibilityScriptInjected = true;
292293
}
293294

295+
/**
296+
* Adjusts the accessibility injection state to reflect changes in the
297+
* JavaScript enabled state.
298+
*
299+
* @param enabled Whether JavaScript is enabled.
300+
*/
301+
public void updateJavaScriptEnabled(boolean enabled) {
302+
if (enabled) {
303+
addAccessibilityApisIfNecessary();
304+
} else {
305+
removeAccessibilityApisIfNecessary();
306+
}
307+
308+
// We have to reload the page after adding or removing APIs.
309+
mWebView.reload();
310+
}
311+
294312
/**
295313
* Toggles the non-JavaScript method for handling accessibility.
296314
*

core/java/android/webkit/WebSettingsClassic.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,6 +1135,7 @@ public synchronized void setJavaScriptEnabled(boolean flag) {
11351135
if (mJavaScriptEnabled != flag) {
11361136
mJavaScriptEnabled = flag;
11371137
postSync();
1138+
mWebView.updateJavaScriptEnabled(flag);
11381139
}
11391140
}
11401141

core/java/android/webkit/WebViewClassic.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1630,6 +1630,12 @@ void updateMultiTouchSupport(Context context) {
16301630
mZoomManager.updateMultiTouchSupport(context);
16311631
}
16321632

1633+
void updateJavaScriptEnabled(boolean enabled) {
1634+
if (isAccessibilityEnabled()) {
1635+
getAccessibilityInjector().updateJavaScriptEnabled(enabled);
1636+
}
1637+
}
1638+
16331639
private void init() {
16341640
OnTrimMemoryListener.init(mContext);
16351641
mWebView.setWillNotDraw(false);

0 commit comments

Comments
 (0)