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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/NativePageFactory.java

Issue 2710323003: 🏠 Close the bottom sheet when opening link in incognito (Closed)
Patch Set: Properly make ContentSuggestionsActivity compile Created 3 years, 10 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/ntp/NativePageFactory.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
index a851b6489524ee3b8da793dbb55b4d140b28187c..1974177c15594a6f2e92f89b80162911e0754f43 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
@@ -11,6 +11,8 @@
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.NativePage;
+import org.chromium.chrome.browser.NativePageHost;
+import org.chromium.chrome.browser.TabLoadStatus;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.download.DownloadPage;
@@ -18,7 +20,9 @@
import org.chromium.chrome.browser.history.HistoryPage;
import org.chromium.chrome.browser.physicalweb.PhysicalWebDiagnosticsPage;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.TabModel;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+import org.chromium.content_public.browser.LoadUrlParams;
/**
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
@@ -33,20 +37,20 @@ protected NativePage buildNewTabPage(ChromeActivity activity, Tab tab,
if (tab.isIncognito()) {
return new IncognitoNewTabPage(activity);
} else {
- return new NewTabPage(activity, tab, tabModelSelector);
+ return new NewTabPage(activity, new TabShim(tab), tabModelSelector);
}
}
protected NativePage buildBookmarksPage(Activity activity, Tab tab) {
- return new BookmarkPage(activity, tab);
+ return new BookmarkPage(activity, new TabShim(tab));
}
protected NativePage buildDownloadsPage(Activity activity, Tab tab) {
- return new DownloadPage(activity, tab);
+ return new DownloadPage(activity, new TabShim(tab));
}
protected NativePage buildHistoryPage(Activity activity, Tab tab) {
- return new HistoryPage(activity, tab);
+ return new HistoryPage(activity, new TabShim(tab));
}
protected NativePage buildRecentTabsPage(Activity activity, Tab tab) {
@@ -56,7 +60,7 @@ protected NativePage buildRecentTabsPage(Activity activity, Tab tab) {
}
protected NativePage buildPhysicalWebDiagnosticsPage(Activity activity, Tab tab) {
- return new PhysicalWebDiagnosticsPage(activity, tab);
+ return new PhysicalWebDiagnosticsPage(activity, new TabShim(tab));
}
}
@@ -175,4 +179,40 @@ public static boolean isNativePageUrl(String url, boolean isIncognito) {
static void setNativePageBuilderForTesting(NativePageBuilder builder) {
sNativePageBuilder = builder;
}
+
+ /** 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;
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698