|
13 | 13 | import android.net.Uri; |
14 | 14 | import android.os.Build; |
15 | 15 | import android.os.Environment; |
| 16 | +import android.os.SystemClock; |
16 | 17 | import android.text.TextUtils; |
17 | 18 | import android.util.Log; |
18 | 19 | import android.view.Gravity; |
|
88 | 89 | import java.util.HashMap; |
89 | 90 | import java.util.Locale; |
90 | 91 | import java.util.Map; |
91 | | -import java.util.concurrent.TimeUnit; |
92 | 92 | import java.util.concurrent.atomic.AtomicReference; |
93 | 93 |
|
94 | 94 | /** |
@@ -141,6 +141,7 @@ public class RNCWebViewManager extends SimpleViewManager<WebView> { |
141 | 141 | // Use `webView.loadUrl("about:blank")` to reliably reset the view |
142 | 142 | // state and release page resources (including any running JavaScript). |
143 | 143 | protected static final String BLANK_URL = "about:blank"; |
| 144 | + protected static final int SHOULD_OVERRIDE_URL_LOADING_TIMEOUT = 250; |
144 | 145 | protected WebViewConfig mWebViewConfig; |
145 | 146 |
|
146 | 147 | protected RNCWebChromeClient mWebChromeClient = null; |
@@ -806,14 +807,14 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) { |
806 | 807 | try { |
807 | 808 | assert lockObject != null; |
808 | 809 | synchronized (lockObject) { |
809 | | - final long startTime = System.nanoTime(); |
| 810 | + final long startTime = SystemClock.elapsedRealtime(); |
810 | 811 | while (lockObject.get() == ShouldOverrideCallbackState.UNDECIDED) { |
811 | | - if (TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime) > 250) { |
| 812 | + if (SystemClock.elapsedRealtime() - startTime > SHOULD_OVERRIDE_URL_LOADING_TIMEOUT) { |
812 | 813 | FLog.w(TAG, "Did not receive response to shouldOverrideUrlLoading in time, defaulting to allow loading."); |
813 | 814 | RNCWebViewModule.shouldOverrideUrlLoadingLock.removeLock(lockIdentifier); |
814 | 815 | return false; |
815 | 816 | } |
816 | | - lockObject.wait(250); |
| 817 | + lockObject.wait(SHOULD_OVERRIDE_URL_LOADING_TIMEOUT); |
817 | 818 | } |
818 | 819 | } |
819 | 820 | } catch (InterruptedException e) { |
|
0 commit comments