Index: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java |
diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java |
index f74528ec457e2f347399dd51196cce5b7212560e..9f14d5d4615cee18614e644a2770de4e9b80fa6c 100644 |
--- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java |
+++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java |
@@ -8,6 +8,7 @@ import android.app.Activity; |
import android.app.FragmentManager; |
import android.content.Intent; |
import android.os.Bundle; |
+import android.provider.Browser; |
import android.support.v7.app.ActionBarActivity; |
import android.text.TextUtils; |
import android.util.Log; |
@@ -29,6 +30,7 @@ import org.chromium.base.library_loader.LibraryProcessType; |
import org.chromium.base.library_loader.ProcessInitException; |
import org.chromium.chrome.browser.DevToolsServer; |
import org.chromium.chrome.browser.FileProviderHelper; |
+import org.chromium.chrome.browser.ServiceTabLauncher; |
import org.chromium.chrome.browser.Tab; |
import org.chromium.chrome.browser.appmenu.AppMenuHandler; |
import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; |
@@ -244,10 +246,23 @@ public class ChromeShellActivity extends ActionBarActivity implements AppMenuPro |
if (MemoryPressureListener.handleDebugIntent(this, intent.getAction())) return; |
String url = getUrlFromIntent(intent); |
- if (!TextUtils.isEmpty(url)) { |
- ChromeShellTab tab = getActiveTab(); |
- if (tab != null) tab.loadUrlWithSanitization(url); |
+ if (TextUtils.isEmpty(url)) return; |
+ |
+ if (intent.getBooleanExtra(Browser.EXTRA_CREATE_NEW_TAB, false)) { |
+ if (mTabManager == null) return; |
+ |
+ Tab newTab = mTabManager.createTab(url, TabLaunchType.FROM_LINK); |
+ if (newTab != null && intent.hasExtra(ServiceTabLauncher.LAUNCH_REQUEST_ID_EXTRA)) { |
+ ServiceTabLauncher.onWebContentsForRequestAvailable( |
+ intent.getIntExtra(ServiceTabLauncher.LAUNCH_REQUEST_ID_EXTRA, 0), |
+ newTab.getWebContents()); |
+ } |
+ |
+ return; |
} |
+ |
+ ChromeShellTab tab = getActiveTab(); |
+ if (tab != null) tab.loadUrlWithSanitization(url); |
} |
@Override |