summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tabs
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-20 19:42:19 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-20 19:42:19 +0000
commit88f9822ec3e513a19be297e43bcd34cbe233a658 (patch)
treef03ba75ca1900b1d59d322cc27c9c9b6fa7b7e54 /chrome/browser/tabs
parent7992883b810d2e6b1570ebc04a9049edab02e733 (diff)
downloadchromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.zip
chromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.tar.gz
chromium_src-88f9822ec3e513a19be297e43bcd34cbe233a658.tar.bz2
Re-landing this. Originally landed as http://codereview.chromium.org/1001003 but reverted due to reliability crashes.
Re-landing so I can see what those crashes are. Please do not revert without informing me. BUG=none TEST=none Review URL: http://codereview.chromium.org/1655010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45065 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tabs')
-rw-r--r--chrome/browser/tabs/tab_strip_model.cc26
-rw-r--r--chrome/browser/tabs/tab_strip_model.h11
-rw-r--r--chrome/browser/tabs/tab_strip_model_unittest.cc2
3 files changed, 37 insertions, 2 deletions
diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc
index b5095a2..b8c52b2 100644
--- a/chrome/browser/tabs/tab_strip_model.cc
+++ b/chrome/browser/tabs/tab_strip_model.cc
@@ -574,11 +574,25 @@ bool TabStripModel::IsContextMenuCommandEnabled(
return delegate_->CanRestoreTab();
case CommandTogglePinned:
return true;
- case CommandBookmarkAllTabs: {
+ case CommandBookmarkAllTabs:
return delegate_->CanBookmarkAllTabs();
- }
+ case CommandUseVerticalTabs:
+ return true;
+ default:
+ NOTREACHED();
+ }
+ return false;
+}
+
+bool TabStripModel::IsContextMenuCommandChecked(
+ int context_index,
+ ContextMenuCommand command_id) const {
+ switch (command_id) {
+ case CommandUseVerticalTabs:
+ return delegate()->UseVerticalTabs();
default:
NOTREACHED();
+ break;
}
return false;
}
@@ -655,6 +669,14 @@ void TabStripModel::ExecuteContextMenuCommand(
delegate_->BookmarkAllTabs();
break;
}
+ case CommandUseVerticalTabs: {
+ UserMetrics::RecordAction(
+ UserMetricsAction("TabContextMenu_UseVerticalTabs"),
+ profile_);
+
+ delegate()->ToggleUseVerticalTabs();
+ break;
+ }
default:
NOTREACHED();
}
diff --git a/chrome/browser/tabs/tab_strip_model.h b/chrome/browser/tabs/tab_strip_model.h
index 427fb6e..90b4419 100644
--- a/chrome/browser/tabs/tab_strip_model.h
+++ b/chrome/browser/tabs/tab_strip_model.h
@@ -223,6 +223,12 @@ class TabStripModelDelegate {
// Creates a bookmark folder containing a bookmark for all open tabs.
virtual void BookmarkAllTabs() = 0;
+
+ // Returns true if the vertical tabstrip presentation should be used.
+ virtual bool UseVerticalTabs() const = 0;
+
+ // Toggles the use of the vertical tabstrip.
+ virtual void ToggleUseVerticalTabs() = 0;
};
////////////////////////////////////////////////////////////////////////////////
@@ -547,6 +553,7 @@ class TabStripModel : public NotificationObserver {
CommandRestoreTab,
CommandTogglePinned,
CommandBookmarkAllTabs,
+ CommandUseVerticalTabs,
CommandLast
};
@@ -554,6 +561,10 @@ class TabStripModel : public NotificationObserver {
bool IsContextMenuCommandEnabled(int context_index,
ContextMenuCommand command_id) const;
+ // Returns true if the specified command is checked.
+ bool IsContextMenuCommandChecked(int context_index,
+ ContextMenuCommand command_id) const;
+
// Performs the action associated with the specified command for the given
// TabStripModel index |context_index|.
void ExecuteContextMenuCommand(int context_index,
diff --git a/chrome/browser/tabs/tab_strip_model_unittest.cc b/chrome/browser/tabs/tab_strip_model_unittest.cc
index 451cc81..44c56e6 100644
--- a/chrome/browser/tabs/tab_strip_model_unittest.cc
+++ b/chrome/browser/tabs/tab_strip_model_unittest.cc
@@ -71,6 +71,8 @@ class TabStripDummyDelegate : public TabStripModelDelegate {
virtual bool CanCloseContentsAt(int index) { return can_close_ ; }
virtual bool CanBookmarkAllTabs() const { return false; }
virtual void BookmarkAllTabs() {}
+ virtual bool UseVerticalTabs() const { return false; }
+ virtual void ToggleUseVerticalTabs() {}
private:
// A dummy TabContents we give to callers that expect us to actually build a