diff options
author | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-28 03:32:30 +0000 |
---|---|---|
committer | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-28 03:32:30 +0000 |
commit | 8c3495cdfbc29b4d903103bf3f0cea7e5bfc24de (patch) | |
tree | 025f57b645272c61fe681d1418acfc4523309381 /chrome/browser/tabs | |
parent | 98af60b92b1828945dca0c8cf384645a62682f6d (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | chrome/browser/tabs/tab_strip_model_observer.cc | 1 | ||||
-rw-r--r-- | chrome/browser/tabs/tab_strip_model_observer.h | 10 | ||||
-rw-r--r-- | chrome/browser/tabs/tab_strip_model_unittest.cc | 3 |
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; |