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); |