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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java

Issue 2088443003: Shortcut ctrl+shift+T added on android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes based on review feedback. Created 4 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/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
index 85f5a65bc85bf78cee4009a29482dec305e01974..c3203f4c541701a1bec3738c7e771c1ce16fa17c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
@@ -9,6 +9,7 @@ import org.chromium.base.ObserverList;
import org.chromium.base.TraceEvent;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
+import org.chromium.chrome.browser.ntp.RecentlyClosedBridge;
import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
@@ -45,6 +46,7 @@ public class TabModelImpl extends TabModelJniBridge {
private final TabPersistentStore mTabSaver;
private final TabModelDelegate mModelDelegate;
private final ObserverList<TabModelObserver> mObservers;
+ private RecentlyClosedBridge mRecentlyClosedBridge;
// Undo State Tracking -------------------------------------------------------------------------
@@ -81,6 +83,7 @@ public class TabModelImpl extends TabModelJniBridge {
mModelDelegate = modelDelegate;
mIsUndoSupported = supportUndo;
mObservers = new ObserverList<TabModelObserver>();
+ mRecentlyClosedBridge = new RecentlyClosedBridge(getProfile());
}
@Override
@@ -99,7 +102,7 @@ public class TabModelImpl extends TabModelJniBridge {
mRewoundList.destroy();
mTabs.clear();
mObservers.clear();
-
+ mRecentlyClosedBridge.destroy();
super.destroy();
}
@@ -720,8 +723,11 @@ public class TabModelImpl extends TabModelJniBridge {
@Override
protected boolean createTabWithWebContents(Tab parent, boolean incognito,
WebContents webContents, int parentId) {
+ // TODO(xingliu): figure out if TabLaunchType.FROM_LONGPRESS_FOREGROUND affects
+ // other features. FROM_LONGPRESS_FOREGROUND makes tab restored in foreground when called
+ // from native code.
return getTabCreator(incognito).createTabWithWebContents(parent, webContents, parentId,
- TabLaunchType.FROM_LONGPRESS_BACKGROUND);
+ TabLaunchType.FROM_LONGPRESS_FOREGROUND);
}
@Override
@@ -738,4 +744,23 @@ public class TabModelImpl extends TabModelJniBridge {
protected boolean isSessionRestoreInProgress() {
return mModelDelegate.isSessionRestoreInProgress();
}
+
+ /**
+ * Opens the most recently closed tab, bringing the tab back into this model.
+ * If no tabs are currently in the rewound list, restore the tab from tab restore service.
Theresa 2016/06/30 20:50:24 Generally we don't add JavaDocs for overridden met
xingliu 2016/07/01 00:30:38 Done.
+ */
+ @Override
+ public void openRecentlyClosedTab() {
+ // First try to recover tab from rewound list, same as {@link UndoBarController}.
+ if (mRewoundList.hasPendingClosures()) {
+ Tab tab = mRewoundList.getNextRewindableTab();
+ if (tab == null) return;
+ cancelTabClosure(tab.getId());
+ return;
+ }
+
+ // If there are no pending closures in the rewound list,
+ // then try to restore the tab from tab restore service in native code.
Theresa 2016/06/30 20:50:24 nit: "..from the native tab restore service."
xingliu 2016/07/01 00:30:38 Done.
+ mRecentlyClosedBridge.openRecentlyClosedTab();
+ }
}

Powered by Google App Engine
This is Rietveld 408576698