summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tabs
diff options
context:
space:
mode:
authorjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-28 03:32:30 +0000
committerjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-28 03:32:30 +0000
commit8c3495cdfbc29b4d903103bf3f0cea7e5bfc24de (patch)
tree025f57b645272c61fe681d1418acfc4523309381 /chrome/browser/tabs
parent98af60b92b1828945dca0c8cf384645a62682f6d (diff)
downloadchromium_src-8c3495cdfbc29b4d903103bf3f0cea7e5bfc24de.zip
chromium_src-8c3495cdfbc29b4d903103bf3f0cea7e5bfc24de.tar.gz
chromium_src-8c3495cdfbc29b4d903103bf3f0cea7e5bfc24de.tar.bz2
Extend chrome.tabs* API to support multiple tabs.
This adds support for handling multiple tabs, including selecting, removing and moving many tabs at once. (Selecting is now called highlighting for backwards compatibility). The changes are outlined below. Adds: - 'highlighted' property to Tab, chrome.tabs.update - chrome.tabs.query for searching across tabs - chrome.tabs.highlight for selecting multiple tabs - chrome.tabs.onHighlightChanged for listening to multi-select events Modifies: - renames 'selected' to 'active' on Tab, chrome.tabs.create, chrome.tabs.update - renames onSelectionChanged to onActiveChanged - chrome.tabs.move to accept an array of tabs or a single tab - chrome.tabs.remove to accept an array of tabs or a single tab - deprecates chrome.tabs.getSelected in favor of chrome.tabs.query - deprecates chrome.tabs.getAllInWindow in favor of chrome.tabs.query BUG=81411 TEST=ExtensionApiTest.*Tab* Review URL: http://codereview.chromium.org/7731004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103084 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tabs')
-rw-r--r--chrome/browser/tabs/tab_strip_model.cc4
-rw-r--r--chrome/browser/tabs/tab_strip_model_observer.cc1
-rw-r--r--chrome/browser/tabs/tab_strip_model_observer.h10
-rw-r--r--chrome/browser/tabs/tab_strip_model_unittest.cc3
4 files changed, 11 insertions, 7 deletions
diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc
index 278dcdb..2cc1dbd 100644
--- a/chrome/browser/tabs/tab_strip_model.cc
+++ b/chrome/browser/tabs/tab_strip_model.cc
@@ -247,7 +247,7 @@ TabContentsWrapper* TabStripModel::DetachTabContentsAt(int index) {
// |old_model| is stored after calling DecrementFrom().
if (was_selected) {
FOR_EACH_OBSERVER(TabStripModelObserver, observers_,
- TabSelectionChanged(old_model));
+ TabSelectionChanged(this, old_model));
}
}
return removed_contents;
@@ -1225,7 +1225,7 @@ void TabStripModel::NotifyIfActiveOrSelectionChanged(
if (!selection_model().Equals(old_model)) {
FOR_EACH_OBSERVER(TabStripModelObserver, observers_,
- TabSelectionChanged(old_model));
+ TabSelectionChanged(this, old_model));
}
}
diff --git a/chrome/browser/tabs/tab_strip_model_observer.cc b/chrome/browser/tabs/tab_strip_model_observer.cc
index cf0d1eb..e3035cf 100644
--- a/chrome/browser/tabs/tab_strip_model_observer.cc
+++ b/chrome/browser/tabs/tab_strip_model_observer.cc
@@ -28,6 +28,7 @@ void TabStripModelObserver::ActiveTabChanged(TabContentsWrapper* old_contents,
}
void TabStripModelObserver::TabSelectionChanged(
+ TabStripModel* tab_strip_model,
const TabStripSelectionModel& model) {
}
diff --git a/chrome/browser/tabs/tab_strip_model_observer.h b/chrome/browser/tabs/tab_strip_model_observer.h
index 5a69eb5..5b5e8ea 100644
--- a/chrome/browser/tabs/tab_strip_model_observer.h
+++ b/chrome/browser/tabs/tab_strip_model_observer.h
@@ -77,10 +77,12 @@ class TabStripModelObserver {
int index,
bool user_gesture);
- // Sent when the selection changes. More precisely when selected tabs, anchor
- // tab or active tab change. |old_model| is a snapshot of the selection model
- // before the change. See also ActiveTabChanged for details.
- virtual void TabSelectionChanged(const TabStripSelectionModel& old_model);
+ // Sent when the selection changes in |tab_strip_model|. More precisely when
+ // selected tabs, anchor tab or active tab change. |old_model| is a snapshot
+ // of the selection model before the change. See also ActiveTabChanged for
+ // details.
+ virtual void TabSelectionChanged(TabStripModel* tab_strip_model,
+ const TabStripSelectionModel& old_model);
// The specified TabContents at |from_index| was moved to |to_index|.
virtual void TabMoved(TabContentsWrapper* contents,
diff --git a/chrome/browser/tabs/tab_strip_model_unittest.cc b/chrome/browser/tabs/tab_strip_model_unittest.cc
index e615744..64b40b0 100644
--- a/chrome/browser/tabs/tab_strip_model_unittest.cc
+++ b/chrome/browser/tabs/tab_strip_model_unittest.cc
@@ -358,7 +358,8 @@ class MockTabStripModelObserver : public TabStripModelObserver {
s->user_gesture = user_gesture;
states_.push_back(s);
}
- virtual void TabSelectionChanged(const TabStripSelectionModel& old_model) {
+ virtual void TabSelectionChanged(TabStripModel* tab_strip_model,
+ const TabStripSelectionModel& old_model) {
if (!log_tab_selection_changed())
return;