Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java |
| index c65b17552a230a51194b50edd827248164df616b..cde7bd39aa98f3098003496bae8e90046dcba847 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java |
| @@ -12,6 +12,8 @@ import android.os.SystemClock; |
| import android.provider.Browser; |
| import android.text.TextUtils; |
| +import org.chromium.chrome.browser.ChromeFeatureList; |
| +import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider; |
| import org.chromium.chrome.browser.document.ChromeLauncherActivity; |
| import org.chromium.chrome.browser.util.IntentUtils; |
| import org.chromium.ui.base.PageTransition; |
| @@ -70,15 +72,19 @@ public class TabRedirectHandler { |
| if (mContext == null || intent == null || !Intent.ACTION_VIEW.equals(intent.getAction())) { |
| return; |
| } |
| + mIsCustomTabIntent = ChromeLauncherActivity.isCustomTabIntent(intent); |
| + boolean sendToExternalApps = IntentUtils.safeGetBooleanExtra( |
|
Ted C
2016/10/05 23:51:38
This is getting harder to read, and I wonder if so
|
| + intent, CustomTabIntentDataProvider.EXTRA_SEND_TO_EXTERNAL_DEFAULT_HANDLER, false); |
| + boolean dontMarkAsHeadingToChrome = mIsCustomTabIntent && sendToExternalApps |
| + && ChromeFeatureList.isEnabled(ChromeFeatureList.CCT_EXTERNAL_LINK_HANDLING); |
| String chromePackageName = mContext.getPackageName(); |
| // If an intent is heading explicitly to Chrome, we should stay in Chrome. |
| - if (TextUtils.equals(chromePackageName, intent.getPackage()) |
| + if ((TextUtils.equals(chromePackageName, intent.getPackage()) |
| || TextUtils.equals(chromePackageName, IntentUtils.safeGetStringExtra(intent, |
| - Browser.EXTRA_APPLICATION_ID))) { |
| + Browser.EXTRA_APPLICATION_ID))) && !dontMarkAsHeadingToChrome) { |
| mIsInitialIntentHeadingToChrome = true; |
| } |
| - mIsCustomTabIntent = ChromeLauncherActivity.isCustomTabIntent(intent); |
| // Copies minimum information to retrieve resolvers. |
| mInitialIntent = new Intent(Intent.ACTION_VIEW); |