| 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;
|
| + }
|
| + }
|
| }
|
|
|