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

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

Issue 2610143002: Add RecentTabsPageTest (Closed)
Patch Set: Undo the prefs changes. Created 3 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/ntp/RecentTabsManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
index cc198aa1f1790ae9708524048efefd1553ca4a68..00c9dbbc268b85624fadb27d9a6cef5092ae7ef3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -10,6 +10,7 @@ import android.graphics.Bitmap;
import org.chromium.base.ContextUtils;
import org.chromium.base.ThreadUtils;
+import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.favicon.FaviconHelper;
import org.chromium.chrome.browser.favicon.FaviconHelper.FaviconImageCallback;
@@ -18,8 +19,7 @@ import org.chromium.chrome.browser.metrics.StartupMetrics;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionCallback;
import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab;
-import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedCallback;
-import org.chromium.chrome.browser.ntp.RecentlyClosedBridge.RecentlyClosedTab;
+import org.chromium.chrome.browser.ntp.RecentlyClosedTabManager.RecentlyClosedCallback;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
@@ -51,6 +51,8 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
private static final String PREF_SIGNIN_PROMO_DECLINED =
"recent_tabs_signin_promo_declined";
+ private static RecentlyClosedTabManager sRecentlyClosedTabManagerForTests;
+
private final Profile mProfile;
private final Tab mTab;
private final Context mContext;
@@ -75,13 +77,21 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
public RecentTabsManager(Tab tab, Profile profile, Context context) {
mProfile = profile;
mTab = tab;
- mForeignSessionHelper = buildForeignSessionHelper(mProfile);
- mNewTabPagePrefs = buildNewTabPagePrefs(mProfile);
- mFaviconHelper = buildFaviconHelper();
- mRecentlyClosedBridge = buildRecentlyClosedBridge(mProfile);
+ mForeignSessionHelper = new ForeignSessionHelper(profile);
+ mNewTabPagePrefs = new NewTabPagePrefs(profile);
+ mFaviconHelper = new FaviconHelper();
+ mRecentlyClosedBridge = new RecentlyClosedBridge(profile);
mSignInManager = SigninManager.get(context);
mContext = context;
+ getRecentlyClosedTabManager().setRecentlyClosedCallback(new RecentlyClosedCallback() {
Bernhard Bauer 2017/01/04 11:54:16 Actually, you could probably pass the callback in
Michael van Ouwerkerk 2017/01/05 11:02:14 That wouldn't work with an injected manager, as we
+ @Override
+ public void onUpdated() {
+ updateRecentlyClosedTabs();
+ postUpdate();
+ }
+ });
+
updateRecentlyClosedTabs();
registerForForeignSessionUpdates();
updateForeignSessions();
@@ -113,42 +123,10 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
mUpdatedCallback = null;
mNewTabPagePrefs.destroy();
- mNewTabPagePrefs = null;
InvalidationController.get(mContext).onRecentTabsPageClosed();
}
- /**
- * Returns true if destroy() has been called.
- */
- public boolean isDestroyed() {
- return mIsDestroyed;
- }
-
- private static ForeignSessionHelper buildForeignSessionHelper(Profile profile) {
- return new ForeignSessionHelper(profile);
- }
-
- private static NewTabPagePrefs buildNewTabPagePrefs(Profile profile) {
- return new NewTabPagePrefs(profile);
- }
-
- private static FaviconHelper buildFaviconHelper() {
- return new FaviconHelper();
- }
-
- private RecentlyClosedBridge buildRecentlyClosedBridge(Profile profile) {
- RecentlyClosedBridge bridge = new RecentlyClosedBridge(profile);
- bridge.setRecentlyClosedCallback(new RecentlyClosedCallback() {
- @Override
- public void onUpdated() {
- updateRecentlyClosedTabs();
- postUpdate();
- }
- });
- return bridge;
- }
-
private void registerForForeignSessionUpdates() {
mForeignSessionHelper.setOnForeignSessionCallback(new ForeignSessionCallback() {
@Override
@@ -165,8 +143,8 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
}
private void updateRecentlyClosedTabs() {
- mRecentlyClosedTabs = mRecentlyClosedBridge.getRecentlyClosedTabs(
- RECENTLY_CLOSED_MAX_TAB_COUNT);
+ mRecentlyClosedTabs =
+ getRecentlyClosedTabManager().getRecentlyClosedTabs(RECENTLY_CLOSED_MAX_TAB_COUNT);
}
private void updateForeignSessions() {
@@ -214,7 +192,7 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_RECENTLY_CLOSED_ENTRY);
- mRecentlyClosedBridge.openRecentlyClosedTab(mTab, tab, windowDisposition);
+ getRecentlyClosedTabManager().openRecentlyClosedTab(mTab, tab, windowDisposition);
}
/**
@@ -301,7 +279,7 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
return mNewTabPagePrefs.getRecentlyClosedTabsCollapsed();
}
- /**
+ /**
* Remove Foreign session to display. Note that it might reappear during the next sync if the
* session is not orphaned.
*
@@ -318,7 +296,7 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
*/
public void clearRecentlyClosedTabs() {
if (mIsDestroyed) return;
- mRecentlyClosedBridge.clearRecentlyClosedTabs();
+ getRecentlyClosedTabManager().clearRecentlyClosedTabs();
}
/**
@@ -369,7 +347,7 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
return mNewTabPagePrefs.getSyncPromoCollapsed();
}
- protected void postUpdate() {
+ private void postUpdate() {
if (mUpdatedCallback != null) {
mUpdatedCallback.onUpdated();
}
@@ -402,4 +380,14 @@ public class RecentTabsManager implements AndroidSyncSettingsObserver, SignInSta
public boolean isSignedIn() {
return ChromeSigninController.get(mContext).isSignedIn();
}
+
+ private RecentlyClosedTabManager getRecentlyClosedTabManager() {
+ if (sRecentlyClosedTabManagerForTests != null) return sRecentlyClosedTabManagerForTests;
+ return mRecentlyClosedBridge;
+ }
+
+ @VisibleForTesting
+ public static void setRecentlyClosedTabManagerForTests(RecentlyClosedTabManager manager) {
+ sRecentlyClosedTabManagerForTests = manager;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698