| Index: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| index 492a25db1fa12bc8b27cb4a7f5eb24bd160d02ec..08b6015d5b54ecdfa70232251623d1da047d2be1 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
|
| @@ -16,6 +16,7 @@ import android.content.pm.PackageManager;
|
| import android.content.pm.ResolveInfo;
|
| import android.net.Uri;
|
| import android.os.Build;
|
| +import android.os.Handler;
|
| import android.os.StrictMode;
|
| import android.provider.Browser;
|
| import android.provider.Telephony;
|
| @@ -490,7 +491,7 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
|
|
| @Override
|
| public OverrideUrlLoadingResult clobberCurrentTab(
|
| - String url, String referrerUrl, Tab tab) {
|
| + String url, String referrerUrl, final Tab tab) {
|
| int transitionType = PageTransition.LINK;
|
| LoadUrlParams loadUrlParams = new LoadUrlParams(url, transitionType);
|
| if (!TextUtils.isEmpty(referrerUrl)) {
|
| @@ -498,7 +499,16 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
|
| loadUrlParams.setReferrer(referrer);
|
| }
|
| if (tab != null) {
|
| - tab.loadUrl(loadUrlParams);
|
| + // Load the URL asynchronously for PlzNavigate.
|
| + final Handler handler = new Handler();
|
| + final LoadUrlParams finalParam = loadUrlParams;
|
| + Runnable openRunnable = new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + tab.loadUrl(finalParam);
|
| + }
|
| + };
|
| + handler.post(openRunnable);
|
| return OverrideUrlLoadingResult.OVERRIDE_WITH_CLOBBERING_TAB;
|
| } else {
|
| assert false : "clobberCurrentTab was called with an empty tab.";
|
|
|