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

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

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 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_staging/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/NativePageFactory.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
deleted file mode 100644
index edc8eeaf29446ead170d5c9795e146308a8e8ddd..0000000000000000000000000000000000000000
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/NativePageFactory.java
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.ntp;
-
-import android.app.Activity;
-import android.net.Uri;
-
-import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.NativePage;
-import org.chromium.chrome.browser.Tab;
-import org.chromium.chrome.browser.UrlConstants;
-import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkPage;
-import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
-import org.chromium.chrome.browser.util.FeatureUtilities;
-import org.chromium.ui.base.DeviceFormFactor;
-
-/**
- * Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
- */
-public class NativePageFactory {
-
- public static final String CHROME_NATIVE_SCHEME = "chrome-native";
-
- private static NativePageBuilder sNativePageBuilder = new NativePageBuilder();
-
- @VisibleForTesting
- static class NativePageBuilder {
- protected NativePage buildNewTabPage(Activity activity, Tab tab,
- TabModelSelector tabModelSelector) {
- if (tab.isIncognito()) {
- return new IncognitoNewTabPage(activity);
- } else {
- return new NewTabPage(activity, tab, tabModelSelector);
- }
- }
-
- protected NativePage buildBookmarksPage(Activity activity, Tab tab,
- TabModelSelector tabModelSelector) {
- if (EnhancedBookmarkUtils.isEnhancedBookmarkEnabled(
- tab.getProfile().getOriginalProfile()) && DeviceFormFactor.isTablet(activity)) {
- return EnhancedBookmarkPage.buildPage(activity, tab);
- } else {
- return BookmarksPage.buildPage(activity, tab, tabModelSelector);
- }
- }
-
- protected NativePage buildRecentTabsPage(Activity activity, Tab tab) {
- RecentTabsManager recentTabsManager = FeatureUtilities.isDocumentMode(activity)
- ? new DocumentRecentTabsManager(tab, activity, false)
- : new RecentTabsManager(tab, tab.getProfile(), activity);
- return new RecentTabsPage(activity, recentTabsManager);
- }
- }
-
- enum NativePageType {
- NONE, CANDIDATE, NTP, BOOKMARKS, RECENT_TABS
- }
-
- private static NativePageType nativePageType(String url, NativePage candidatePage,
- boolean isIncognito) {
- if (url == null) return NativePageType.NONE;
-
- Uri uri = Uri.parse(url);
- if (!CHROME_NATIVE_SCHEME.equals(uri.getScheme())) {
- return NativePageType.NONE;
- }
-
- String host = uri.getHost();
- if (candidatePage != null && candidatePage.getHost().equals(host)) {
- return NativePageType.CANDIDATE;
- }
-
- if (UrlConstants.NTP_HOST.equals(host)) {
- return NativePageType.NTP;
- } else if (UrlConstants.BOOKMARKS_HOST.equals(host)) {
- return NativePageType.BOOKMARKS;
- } else if (UrlConstants.RECENT_TABS_HOST.equals(host) && !isIncognito) {
- return NativePageType.RECENT_TABS;
- } else {
- return NativePageType.NONE;
- }
- }
-
- /**
- * Returns a NativePage for displaying the given URL if the URL is a valid chrome-native URL,
- * or null otherwise. If candidatePage is non-null and corresponds to the URL, it will be
- * returned. Otherwise, a new NativePage will be constructed.
- *
- * @param url The URL to be handled.
- * @param candidatePage A NativePage to be reused if it matches the url, or null.
- * @param tab The Tab that will show the page.
- * @param tabModelSelector The TabModelSelector containing the tab.
- * @param activity The activity used to create the views for the page.
- * @return A NativePage showing the specified url or null.
- */
- public static NativePage createNativePageForURL(String url, NativePage candidatePage,
- Tab tab, TabModelSelector tabModelSelector, Activity activity) {
- return createNativePageForURL(url, candidatePage, tab, tabModelSelector, activity,
- tab.isIncognito());
- }
-
- @VisibleForTesting
- static NativePage createNativePageForURL(String url, NativePage candidatePage,
- Tab tab, TabModelSelector tabModelSelector, Activity activity,
- boolean isIncognito) {
- NativePage page;
-
- switch (nativePageType(url, candidatePage, isIncognito)) {
- case NONE:
- return null;
- case CANDIDATE:
- page = candidatePage;
- break;
- case NTP:
- page = sNativePageBuilder.buildNewTabPage(activity, tab, tabModelSelector);
- break;
- case BOOKMARKS:
- page = sNativePageBuilder.buildBookmarksPage(activity, tab, tabModelSelector);
- if (page == null) return null; // Enhanced Bookmarks page is not shown on phone
- break;
- case RECENT_TABS:
- page = sNativePageBuilder.buildRecentTabsPage(activity, tab);
- break;
- default:
- assert false;
- return null;
- }
- page.updateForUrl(url);
- return page;
- }
-
- /**
- * Returns whether the URL would navigate to a native page.
- *
- * @param url The URL to be checked.
- * @param isIncognito Whether the page will be displayed in incognito mode.
- * @return Whether the host and the scheme of the passed in URL matches one of the supported
- * native pages.
- */
- public static boolean isNativePageUrl(String url, boolean isIncognito) {
- return nativePageType(url, null, isIncognito) != NativePageType.NONE;
- }
-
- @VisibleForTesting
- static void setNativePageBuilderForTesting(NativePageBuilder builder) {
- sNativePageBuilder = builder;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698