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

Unified Diff: chrome/browser/ui/browser.cc

Issue 10117016: Implementation for switching between recently used tabs using ctrl tilde or quoteleft. Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added unit test Created 8 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/browser/ui/browser.cc
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 259099284eeda44650e8e3a86d02cd21445b61d3..7213efa25562cc30fc428ab940ac6eb7d56b1226 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -130,6 +130,7 @@
#include "chrome/browser/ui/tabs/dock_info.h"
#include "chrome/browser/ui/tabs/tab_finder.h"
#include "chrome/browser/ui/tabs/tab_menu_model.h"
+#include "chrome/browser/ui/tabs/tab_mru_list_manager.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/web_applications/web_app_ui.h"
#include "chrome/browser/ui/webui/feedback_ui.h"
@@ -374,7 +375,10 @@ Browser::Browser(Type type, Profile* profile)
bookmark_bar_state_(BookmarkBar::HIDDEN),
window_has_shown_(false) {
tab_strip_model_->AddObserver(this);
-
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableTabMRUSwitch)) {
+ tab_mru_list_manager_.reset(new TabMRUListManager(tab_strip_model_.get()));
sky 2012/06/11 18:21:51 spacing is wrong here.
NaveenBobbili (Motorola) 2012/06/13 06:07:32 Done.
+ }
toolbar_model_.reset(new ToolbarModel(toolbar_model_delegate_.get()));
registrar_.Add(this, content::NOTIFICATION_SSL_VISIBLE_STATE_CHANGED,
@@ -1461,6 +1465,13 @@ void Browser::SelectLastTab() {
tab_strip_model_->SelectLastTab();
}
+void Browser::SelectNextMRUTab() {
sky 2012/06/11 18:21:51 Isn't this more of selecting the previous mru tab,
NaveenBobbili (Motorola) 2012/06/13 06:07:32 Done.
+ content::RecordAction(UserMetricsAction("SelectNextMRUTab"));
+ TabContentsWrapper* contents = tab_mru_list_manager_->GetNextMRUTab();
+ if (contents)
+ ActivateTabAt(tab_strip_model_->GetIndexOfTabContents(contents), true);
+}
+
void Browser::DuplicateTab() {
content::RecordAction(UserMetricsAction("Duplicate"));
DuplicateContentsAt(active_index());
@@ -2574,6 +2585,7 @@ void Browser::ExecuteCommandWithDisposition(
case IDC_SHOW_SYNC_SETUP: ShowSyncSetup(SyncPromoUI::SOURCE_MENU);
break;
case IDC_TOGGLE_SPEECH_INPUT: ToggleSpeechInput(); break;
+ case IDC_SELECT_NEXT_MRU_TAB: SelectNextMRUTab(); break;
default:
LOG(WARNING) << "Received Unimplemented Command: " << id;
@@ -4079,6 +4091,11 @@ void Browser::InitCommandState() {
command_updater_.UpdateCommandEnabled(IDC_SELECT_NEXT_TAB, normal_window);
command_updater_.UpdateCommandEnabled(IDC_SELECT_PREVIOUS_TAB,
normal_window);
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableTabMRUSwitch)) {
+ command_updater_.UpdateCommandEnabled(IDC_SELECT_NEXT_MRU_TAB,
+ normal_window);
+ }
command_updater_.UpdateCommandEnabled(IDC_MOVE_TAB_NEXT, normal_window);
command_updater_.UpdateCommandEnabled(IDC_MOVE_TAB_PREVIOUS, normal_window);
command_updater_.UpdateCommandEnabled(IDC_SELECT_TAB_0, normal_window);

Powered by Google App Engine
This is Rietveld 408576698