Index: chrome/android/java/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsActivity.java |
index 70cd127e554b58a4cd291bcec827a01b5ee4e34b..a5591407ee34007f82e61b95e9308a50a9115970 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/ContentSuggestionsActivity.java |
@@ -10,11 +10,17 @@ |
import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.ChromeFeatureList; |
+import org.chromium.chrome.browser.NativePageHost; |
import org.chromium.chrome.browser.SynchronousInitializationActivity; |
+import org.chromium.chrome.browser.TabLoadStatus; |
+import org.chromium.chrome.browser.tab.Tab; |
+import org.chromium.chrome.browser.tabmodel.TabModel; |
+import org.chromium.content_public.browser.LoadUrlParams; |
import java.lang.ref.WeakReference; |
/** |
+ * TODO(dgn): Nuke this class |
* Experimental activity to show content suggestions outside of the New Tab Page. |
*/ |
public class ContentSuggestionsActivity extends SynchronousInitializationActivity { |
@@ -46,7 +52,7 @@ protected void onCreate(Bundle savedInstanceState) { |
// the surface, some things, like closing the context menu will not work as they would |
// affect the wrong one. |
mBottomSheetContent = new SuggestionsBottomSheetContent( |
- activity, activity.getActivityTab(), activity.getTabModelSelector()); |
+ activity, new TabShim(activity.getActivityTab()), activity.getTabModelSelector()); |
setContentView(mBottomSheetContent.getScrollingContentView()); |
} |
@@ -60,4 +66,40 @@ protected void onDestroy() { |
mBottomSheetContent.destroy(); |
super.onDestroy(); |
} |
+ |
+ /** Simple implementation of NativePageHost backed by a {@link Tab} */ |
+ private static class TabShim implements NativePageHost { |
+ private final Tab mTab; |
+ |
+ public TabShim(Tab mTab) { |
+ this.mTab = mTab; |
+ } |
+ |
+ @Override |
+ public int loadUrl(LoadUrlParams urlParams, boolean incognito) { |
+ if (incognito && !mTab.isIncognito()) { |
+ mTab.getTabModelSelector().openNewTab(urlParams, |
+ TabModel.TabLaunchType.FROM_LONGPRESS_BACKGROUND, mTab, |
+ /* incognito = */ true); |
+ return TabLoadStatus.DEFAULT_PAGE_LOAD; |
+ } |
+ |
+ return mTab.loadUrl(urlParams); |
+ } |
+ |
+ @Override |
+ public boolean isIncognito() { |
+ return mTab.isIncognito(); |
+ } |
+ |
+ @Override |
+ public int getParentId() { |
+ return mTab.getParentId(); |
+ } |
+ |
+ @Override |
+ public Tab getActiveTab() { |
+ return mTab; |
+ } |
+ } |
} |