| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| index f23fcc4407528a34372f97cd57bc6dd8c7c46650..33099aca886a9b3518c7152b5633a1c0753b9223 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
|
| @@ -4,11 +4,11 @@
|
|
|
| package org.chromium.chrome.browser.tab;
|
|
|
| +import android.content.Context;
|
| import android.content.Intent;
|
| import android.net.Uri;
|
|
|
| import org.chromium.base.metrics.RecordUserAction;
|
| -import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.IntentHandler;
|
| import org.chromium.chrome.browser.contextmenu.ContextMenuItemDelegate;
|
| import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
| @@ -29,14 +29,12 @@ import java.util.Locale;
|
| public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| private final Clipboard mClipboard;
|
| private final Tab mTab;
|
| - private final ChromeActivity mActivity;
|
|
|
| /**
|
| * Builds a {@link TabContextMenuItemDelegate} instance.
|
| */
|
| - public TabContextMenuItemDelegate(Tab tab, ChromeActivity activity) {
|
| + public TabContextMenuItemDelegate(Tab tab) {
|
| mTab = tab;
|
| - mActivity = activity;
|
| mClipboard = new Clipboard(mTab.getApplicationContext());
|
| }
|
|
|
| @@ -70,7 +68,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| RecordUserAction.record("MobileNewTabOpened");
|
| LoadUrlParams loadUrlParams = new LoadUrlParams(url);
|
| loadUrlParams.setReferrer(referrer);
|
| - mActivity.getTabModelSelector().openNewTab(loadUrlParams,
|
| + mTab.getTabModelSelector().openNewTab(loadUrlParams,
|
| TabLaunchType.FROM_LONGPRESS_BACKGROUND, mTab, isIncognito());
|
| }
|
|
|
| @@ -87,7 +85,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| @Override
|
| public void onOpenInNewIncognitoTab(String url) {
|
| RecordUserAction.record("MobileNewTabOpened");
|
| - mActivity.getTabModelSelector().openNewTab(new LoadUrlParams(url),
|
| + mTab.getTabModelSelector().openNewTab(new LoadUrlParams(url),
|
| TabLaunchType.FROM_LONGPRESS_FOREGROUND, mTab, true);
|
| }
|
|
|
| @@ -107,7 +105,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| @Override
|
| public void onOpenInChrome(String linkUrl, String pageUrl) {
|
| Intent chromeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl));
|
| - chromeIntent.setPackage(mActivity.getPackageName());
|
| + chromeIntent.setPackage(mTab.getApplicationContext().getPackageName());
|
| chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
|
| boolean activityStarted = false;
|
| @@ -116,7 +114,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| URI pageUri = URI.create(pageUrl);
|
| if (UrlUtilities.isInternalScheme(pageUri)) {
|
| IntentHandler.startChromeLauncherActivityForTrustedIntent(
|
| - chromeIntent, mActivity);
|
| + chromeIntent, mTab.getApplicationContext());
|
| activityStarted = true;
|
| }
|
| } catch (IllegalArgumentException ex) {
|
| @@ -126,7 +124,9 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
| }
|
|
|
| if (!activityStarted) {
|
| - mActivity.startActivity(chromeIntent);
|
| + Context context = mTab.getActivity();
|
| + if (context == null) context = mTab.getApplicationContext();
|
| + context.startActivity(chromeIntent);
|
| activityStarted = true;
|
| }
|
| }
|
|
|