summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tabs
diff options
context:
space:
mode:
authormaruel@chromium.org <maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-06 15:08:12 +0000
committermaruel@chromium.org <maruel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-06 15:08:12 +0000
commit902cdf777ff20af9fc5ecc2877781dcb9571df69 (patch)
tree87c24705ad420bf5299402c53a6855259959844b /chrome/browser/tabs
parenta727df08d3cff1b48e116ce215a03ed139828bda (diff)
downloadchromium_src-902cdf777ff20af9fc5ecc2877781dcb9571df69.zip
chromium_src-902cdf777ff20af9fc5ecc2877781dcb9571df69.tar.gz
chromium_src-902cdf777ff20af9fc5ecc2877781dcb9571df69.tar.bz2
Reverting 15399.
broke purify Review URL: http://codereview.chromium.org/115026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15409 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tabs')
-rw-r--r--chrome/browser/tabs/tab_strip_model.cc11
-rw-r--r--chrome/browser/tabs/tab_strip_model.h4
-rw-r--r--chrome/browser/tabs/tab_strip_model_order_controller.cc2
-rw-r--r--chrome/browser/tabs/tab_strip_model_unittest.cc2
4 files changed, 18 insertions, 1 deletions
diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc
index 58b15f5..e1a93f3 100644
--- a/chrome/browser/tabs/tab_strip_model.cc
+++ b/chrome/browser/tabs/tab_strip_model.cc
@@ -199,6 +199,17 @@ int TabStripModel::GetIndexOfTabContents(const TabContents* contents) const {
return kNoTab;
}
+int TabStripModel::GetIndexOfController(
+ const NavigationController* controller) const {
+ int index = 0;
+ TabContentsDataVector::const_iterator iter = contents_data_.begin();
+ for (; iter != contents_data_.end(); ++iter, ++index) {
+ if (&(*iter)->contents->controller() == controller)
+ return index;
+ }
+ return kNoTab;
+}
+
void TabStripModel::UpdateTabContentsStateAt(int index, bool loading_only) {
DCHECK(ContainsIndex(index));
diff --git a/chrome/browser/tabs/tab_strip_model.h b/chrome/browser/tabs/tab_strip_model.h
index 266860c..7f496c8 100644
--- a/chrome/browser/tabs/tab_strip_model.h
+++ b/chrome/browser/tabs/tab_strip_model.h
@@ -306,6 +306,10 @@ class TabStripModel : public NotificationObserver {
// is not in this TabStripModel.
int GetIndexOfTabContents(const TabContents* contents) const;
+ // Returns the index of the specified NavigationController, or -1 if it is
+ // not in this TabStripModel.
+ int GetIndexOfController(const NavigationController* controller) const;
+
// Notify any observers that the TabContents at the specified index has
// changed in some way. Loading only specifies whether only the loading state
// has changed.
diff --git a/chrome/browser/tabs/tab_strip_model_order_controller.cc b/chrome/browser/tabs/tab_strip_model_order_controller.cc
index 70530b0..1db0525 100644
--- a/chrome/browser/tabs/tab_strip_model_order_controller.cc
+++ b/chrome/browser/tabs/tab_strip_model_order_controller.cc
@@ -78,7 +78,7 @@ int TabStripModelOrderController::DetermineNewSelectedIndex(
// If we can't find a subsequent group member, just fall back to the
// parent_opener itself. Note that we use "group" here since opener is
// reset by select operations..
- index = tabstrip_->GetIndexOfTabContents(parent_opener->tab_contents());
+ index = tabstrip_->GetIndexOfController(parent_opener);
if (index != TabStripModel::kNoTab)
return GetValidIndex(index, removing_index);
}
diff --git a/chrome/browser/tabs/tab_strip_model_unittest.cc b/chrome/browser/tabs/tab_strip_model_unittest.cc
index 6e2dd80..a5b63a7 100644
--- a/chrome/browser/tabs/tab_strip_model_unittest.cc
+++ b/chrome/browser/tabs/tab_strip_model_unittest.cc
@@ -372,6 +372,8 @@ TEST_F(TabStripModelTest, TestBasicAPI) {
EXPECT_EQ(contents1, tabstrip.GetTabContentsAt(1));
EXPECT_EQ(0, tabstrip.GetIndexOfTabContents(contents2));
EXPECT_EQ(1, tabstrip.GetIndexOfTabContents(contents1));
+ EXPECT_EQ(0, tabstrip.GetIndexOfController(&contents2->controller()));
+ EXPECT_EQ(1, tabstrip.GetIndexOfController(&contents1->controller()));
}
// Test UpdateTabContentsStateAt