Skip to content

Commit 4574df0

Browse files
clchenAndroid (Google) Code Review
authored andcommitted
Merge "Reducing WebView navigation timeout for accessibility." into jb-mr1-dev
2 parents e8f4fa1 + 2203cf3 commit 4574df0

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

core/java/android/webkit/AccessibilityInjector.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,18 @@ private static class CallbackHandler {
710710
"javascript:(function() { %s.onResult(%d, %s); })();";
711711

712712
// Time in milliseconds to wait for a result before failing.
713-
private static final long RESULT_TIMEOUT = 5000;
713+
// Based on recorded times, we have found that in a complex real-world
714+
// web app (such as the desktop version of Gmail), there can be spikes
715+
// of ~2600ms in the worst case. These are temporary spikes and are not
716+
// repeatable; GMail eventually settles down to around ~60ms. The
717+
// longest duration that is consistently repeatable is ~300ms when
718+
// loading extremely large plain text documents in WebView.
719+
// If this timeout hits, the navigation is considered to have "failed",
720+
// meaning there is no content. Since the longer spikes are one-off
721+
// events triggered by the page loading and itself running a large
722+
// amount of JS, subsequent runs would succeed, so the worst impact
723+
// is that the first run will look like it had not loaded yet.
724+
private static final long RESULT_TIMEOUT = 1500;
714725

715726
private final AtomicInteger mResultIdCounter = new AtomicInteger();
716727
private final Object mResultLock = new Object();

0 commit comments

Comments
 (0)