Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4113)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java

Issue 1616073006: Remove cached Activity from TabWebContentsDelegate and ContextMenuPopulator (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed findbugs Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
}

Powered by Google App Engine
This is Rietveld 408576698