| Index: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| index 99c2a0418e6c33bcb9d4d677230334e3549929bd..ece7817e2585d69e40c8514104590c961e2a40ed 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
| @@ -15,12 +15,17 @@ import android.text.TextUtils;
|
| import android.webkit.WebView;
|
|
|
| import org.chromium.base.CommandLine;
|
| +import org.chromium.base.ContextUtils;
|
| import org.chromium.base.Log;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.browser.ChromeSwitches;
|
| +import org.chromium.chrome.browser.ChromeTabbedActivity;
|
| import org.chromium.chrome.browser.IntentHandler;
|
| import org.chromium.chrome.browser.UrlConstants;
|
| +import org.chromium.chrome.browser.customtabs.CustomTabActivity;
|
| +import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
|
| +import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.chrome.browser.tab.TabRedirectHandler;
|
| import org.chromium.chrome.browser.util.IntentUtils;
|
| @@ -373,7 +378,22 @@ public class ExternalNavigationHandler {
|
| if (!mDelegate.isSpecializedHandlerAvailable(resolvingInfos)) {
|
| if (params.webApkPackageName() != null) {
|
| intent.setPackage(mDelegate.getPackageName());
|
| + intent.setClassName(mDelegate.getPackageName(), CustomTabActivity.class.getName());
|
| +
|
| + ChromeLauncherActivity.updateHerbIntent(ContextUtils.getApplicationContext(), intent, intent.getData());
|
| + intent.putExtra(Browser.EXTRA_APPLICATION_ID, mDelegate.getPackageName());
|
| + intent.putExtra(
|
| + CustomTabIntentDataProvider.EXTRA_IS_OPENED_BY_CHROME, true);
|
| +
|
| +
|
| + // Launch the Activity on top of this task.
|
| + int updatedFlags = intent.getFlags();
|
| + updatedFlags &= ~Intent.FLAG_ACTIVITY_NEW_TASK;
|
| + updatedFlags &= ~Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
|
| + intent.setFlags(updatedFlags);
|
| mDelegate.startActivity(intent);
|
| +
|
| +
|
| return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
|
| }
|
| return OverrideUrlLoadingResult.NO_OVERRIDE;
|
|
|