| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| index 3d64a3f58ecafe7d277e8f5fc0420353700e6316..bc304268c0afa9d447340933aab3911cd88e995c 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| @@ -57,6 +57,7 @@ import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
|
| import org.chromium.chrome.browser.device.DeviceClassManager;
|
| import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
| import org.chromium.chrome.browser.document.DocumentUma;
|
| +import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
|
| import org.chromium.chrome.browser.firstrun.FirstRunActivity;
|
| import org.chromium.chrome.browser.firstrun.FirstRunFlowSequencer;
|
| import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
|
| @@ -802,7 +803,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| String herbFlavor = FeatureUtilities.getHerbFlavor();
|
| if (isAllowedToReturnToExternalApp
|
| && ChromeLauncherActivity.canBeHijackedByHerb(intent)
|
| - && TextUtils.equals(ChromeSwitches.HERB_FLAVOR_DILL, herbFlavor)) {
|
| + && TextUtils.equals(ChromeSwitches.HERB_FLAVOR_DILL, herbFlavor)
|
| + && !ReaderModeManager.isReaderModeCreatedIntent(
|
| + ChromeTabbedActivity.this, intent)) {
|
| Log.d(TAG, "Sending to CustomTabActivity");
|
| mActivityStopMetrics.setStopReason(
|
| ActivityStopMetrics.STOP_REASON_CUSTOM_TAB_STARTED);
|
| @@ -1217,6 +1220,20 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| return getCurrentTabCreator().launchUrl(url, TabLaunchType.FROM_LINK, intent,
|
| mIntentHandlingTimeMs);
|
| } else {
|
| + // Check if the tab is being created from a Reader Mode navigation.
|
| + if (ReaderModeManager.isReaderModeCreatedIntent(this, intent)) {
|
| + Bundle extras = intent.getExtras();
|
| + int readerParentId = IntentUtils.safeGetInt(extras,
|
| + ReaderModeManager.EXTRA_READER_MODE_PARENT, Tab.INVALID_TAB_ID);
|
| + extras.remove(ReaderModeManager.EXTRA_READER_MODE_PARENT);
|
| + // Set the parent tab to the tab that Reader Mode started from.
|
| + if (readerParentId != Tab.INVALID_TAB_ID && mTabModelSelectorImpl != null) {
|
| + return getCurrentTabCreator().createNewTab(
|
| + new LoadUrlParams(url, PageTransition.LINK), TabLaunchType.FROM_LINK,
|
| + mTabModelSelectorImpl.getTabById(readerParentId));
|
| + }
|
| + }
|
| +
|
| return getTabCreator(false).launchUrlFromExternalApp(url, referer, headers,
|
| externalAppId, forceNewTab, intent, mIntentHandlingTimeMs);
|
| }
|
|
|