Remove TabStripModel wrapper use.

BUG=167548
TEST=no functional change


Review URL: https://chromiumcodereview.appspot.com/12066003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179254 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/chrome_main_browsertest.cc b/chrome/browser/chrome_main_browsertest.cc
index 0236d409..7869654 100644
--- a/chrome/browser/chrome_main_browsertest.cc
+++ b/chrome/browser/chrome_main_browsertest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
@@ -57,7 +57,8 @@
   observer.Wait();
 
   GURL url = net::FilePathToFileURL(test_file_path);
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_EQ(url, tab->GetController().GetActiveEntry()->GetVirtualURL());
 }
 
diff --git a/chrome/browser/download/download_browsertest.cc b/chrome/browser/download/download_browsertest.cc
index 700cb37..962f5612 100644
--- a/chrome/browser/download/download_browsertest.cc
+++ b/chrome/browser/download/download_browsertest.cc
@@ -613,7 +613,8 @@
     ASSERT_TRUE(url.is_valid()) << s.str();
 
     DownloadManager* download_manager = DownloadManagerForBrowser(browser());
-    WebContents* web_contents = chrome::GetActiveWebContents(browser());
+    WebContents* web_contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ASSERT_TRUE(web_contents) << s.str();
 
     scoped_ptr<content::DownloadTestObserver> observer(
@@ -792,7 +793,7 @@
   void SetAllowMockInstallPrompt() {
     download_crx_util::SetMockInstallPromptForTesting(
         new MockAutoConfirmExtensionInstallPrompt(
-            chrome::GetActiveWebContents(browser())));
+            browser()->tab_strip_model()->GetActiveWebContents()));
   }
 
  private:
@@ -956,7 +957,8 @@
   EXPECT_EQ(0u, items.size());
 
   // Disable downloads for the tab.
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   DownloadRequestLimiter::TabDownloadState* tab_download_state =
       g_browser_process->download_request_limiter()->GetDownloadState(
           web_contents, web_contents, true);
@@ -973,7 +975,7 @@
       1);
   bool download_assempted;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(startDownload());",
       &download_assempted));
   ASSERT_TRUE(download_assempted);
@@ -1397,7 +1399,8 @@
   ui_test_utils::NavigateToURL(browser(), flags_url);
   DownloadAndWait(browser(), download_url);
   ui_test_utils::NavigateToURL(browser(), extensions_url);
-  WebContents* contents = chrome::GetActiveWebContents(browser());
+  WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(contents);
   bool webui_responded = false;
   EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
@@ -1416,7 +1419,7 @@
   GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file));
 
   ui_test_utils::NavigateToURL(browser(), downloads_url);
-  WebContents* contents = chrome::GetActiveWebContents(browser());
+  WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(contents);
   bool result = false;
   EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
@@ -1658,7 +1661,8 @@
   // DownloadUrl always prompts; return acceptance of whatever it prompts.
   EnableFileChooser(true);
 
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(web_contents);
 
   content::DownloadTestObserver* observer(
@@ -1684,7 +1688,8 @@
   FilePath file(FILE_PATH_LITERAL("download-test1.lib"));
   GURL url(URLRequestMockHTTPJob::GetMockUrl(file));
 
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(web_contents);
 
   base::ScopedTempDir other_directory;
@@ -1758,8 +1763,9 @@
   context_menu_params.media_type = WebKit::WebContextMenuData::MediaTypeImage;
   context_menu_params.src_url = url;
   context_menu_params.page_url = url;
-  TestRenderViewContextMenu menu(chrome::GetActiveWebContents(browser()),
-                                 context_menu_params);
+  TestRenderViewContextMenu menu(
+      browser()->tab_strip_model()->GetActiveWebContents(),
+      context_menu_params);
   menu.Init();
   menu.ExecuteCommand(IDC_CONTENT_CONTEXT_SAVEIMAGEAS);
   waiter_context_menu->WaitForFinished();
@@ -1795,7 +1801,8 @@
   // which normally requires revalidation each time.
   GURL jpeg_url = test_server()->GetURL("files/post/downloads/image.jpg");
   ASSERT_TRUE(jpeg_url.is_valid());
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(web_contents != NULL);
   content::WindowedNotificationObserver observer(
       content::NOTIFICATION_NAV_ENTRY_COMMITTED,
@@ -2156,7 +2163,7 @@
 
   // Click on the link with the alt key pressed. This will download the link
   // target.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   WebKit::WebMouseEvent mouse_event;
   mouse_event.type = WebKit::WebInputEvent::MouseDown;
   mouse_event.button = WebKit::WebMouseEvent::ButtonLeft;
@@ -2197,7 +2204,8 @@
           content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL));
 
   // Download and set IsHiddenDownload to true.
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   scoped_ptr<DownloadUrlParameters> params(
       DownloadUrlParameters::FromWebContents(web_contents, url));
   params->set_callback(base::Bind(&SetHiddenDownloadCallback));
diff --git a/chrome/browser/download/download_shelf.cc b/chrome/browser/download/download_shelf.cc
index be24469..843a662 100644
--- a/chrome/browser/download/download_shelf.cc
+++ b/chrome/browser/download/download_shelf.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/platform_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/download_item.h"
 #include "content/public/browser/download_manager.h"
@@ -117,10 +117,11 @@
   // Show the download started animation if:
   // - Download started animation is enabled for this download. It is disabled
   //   for "Save As" downloads and extension installs, for example.
-  // - The browser has an active visble WebContents. (browser isn't minimized,
+  // - The browser has an active visible WebContents. (browser isn't minimized,
   //   or running under a test etc.)
   // - Rich animations are enabled.
-  content::WebContents* shelf_tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* shelf_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   if (DownloadItemModel(download).ShouldShowDownloadStartedAnimation() &&
       shelf_tab &&
       platform_util::IsVisible(shelf_tab->GetNativeView()) &&
diff --git a/chrome/browser/errorpage_browsertest.cc b/chrome/browser/errorpage_browsertest.cc
index 40182694..e0b9e02d2 100644
--- a/chrome/browser/errorpage_browsertest.cc
+++ b/chrome/browser/errorpage_browsertest.cc
@@ -7,7 +7,7 @@
 #include "chrome/browser/net/url_request_mock_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -41,7 +41,7 @@
                                     const std::string& expected_title,
                                     int num_navigations) {
     content::TitleWatcher title_watcher(
-        chrome::GetActiveWebContents(browser()),
+        browser()->tab_strip_model()->GetActiveWebContents(),
         ASCIIToUTF16(expected_title));
 
     ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
@@ -87,12 +87,13 @@
                                       int num_navigations,
                                       HistoryNavigationDirection direction) {
     content::TitleWatcher title_watcher(
-        chrome::GetActiveWebContents(browser()),
+        browser()->tab_strip_model()->GetActiveWebContents(),
         ASCIIToUTF16(expected_title));
 
     content::TestNavigationObserver test_navigation_observer(
         content::Source<NavigationController>(
-              &chrome::GetActiveWebContents(browser())->GetController()),
+              &browser()->tab_strip_model()->GetActiveWebContents()->
+                  GetController()),
         NULL,
         num_navigations);
     if (direction == HISTORY_NAVIGATE_BACK) {
diff --git a/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc b/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
index 4460c29..84036e2 100644
--- a/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
+++ b/chrome/browser/extensions/api/alarms/alarms_api_unittest.cc
@@ -11,7 +11,8 @@
 #include "chrome/browser/extensions/extension_function_test_utils.h"
 #include "chrome/browser/extensions/test_extension_system.h"
 #include "chrome/browser/profiles/profile_manager.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/extensions/extension_messages.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "content/public/browser/web_contents.h"
@@ -61,7 +62,7 @@
 
     // Make sure there's a RenderViewHost for alarms to warn into.
     AddTab(browser(), extension_->GetBackgroundURL());
-    contents_ = chrome::GetActiveWebContents(browser());
+    contents_ = browser()->tab_strip_model()->GetActiveWebContents();
 
     current_time_ = base::Time::FromDoubleT(10);
     ON_CALL(mock_time_, Now())
diff --git a/chrome/browser/extensions/api/extension_action/page_action_apitest.cc b/chrome/browser/extensions/api/extension_action/page_action_apitest.cc
index ff8d54f..7c5a9dd 100644
--- a/chrome/browser/extensions/api/extension_action/page_action_apitest.cc
+++ b/chrome/browser/extensions/api/extension_action/page_action_apitest.cc
@@ -13,9 +13,9 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/sessions/session_tab_helper.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/omnibox/location_bar.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -46,7 +46,7 @@
 
   // Test that we received the changes.
   int tab_id = SessionTabHelper::FromWebContents(
-      chrome::GetActiveWebContents(browser()))->session_id().id();
+      browser()->tab_strip_model()->GetActiveWebContents())->session_id().id();
   ExtensionAction* action = GetPageAction(*extension);
   ASSERT_TRUE(action);
   EXPECT_EQ("Modified", action->GetTitle(tab_id));
@@ -54,8 +54,8 @@
   {
     // Simulate the page action being clicked.
     ResultCatcher catcher;
-    int tab_id =
-        ExtensionTabUtil::GetTabId(chrome::GetActiveWebContents(browser()));
+    int tab_id = ExtensionTabUtil::GetTabId(
+        browser()->tab_strip_model()->GetActiveWebContents());
     ExtensionService* service = extensions::ExtensionSystem::Get(
         browser()->profile())->extension_service();
     service->browser_event_router()->PageActionExecuted(
@@ -77,7 +77,7 @@
 
   // Test that we received the changes.
   tab_id = SessionTabHelper::FromWebContents(
-      chrome::GetActiveWebContents(browser()))->session_id().id();
+      browser()->tab_strip_model()->GetActiveWebContents())->session_id().id();
   EXPECT_FALSE(icon_factory.GetIcon(tab_id).IsEmpty());
 }
 
@@ -89,7 +89,7 @@
   ASSERT_TRUE(extension) << message_;
 
   int tab_id = ExtensionTabUtil::GetTabId(
-      chrome::GetActiveWebContents(browser()));
+      browser()->tab_strip_model()->GetActiveWebContents());
 
   ExtensionAction* page_action = GetPageAction(*extension);
   ASSERT_TRUE(page_action)
@@ -137,7 +137,7 @@
   ASSERT_TRUE(extension) << message_;
 
   int tab_id = ExtensionTabUtil::GetTabId(
-      chrome::GetActiveWebContents(browser()));
+      browser()->tab_strip_model()->GetActiveWebContents());
 
   ExtensionAction* page_action = GetPageAction(*extension);
   ASSERT_TRUE(page_action)
@@ -178,8 +178,8 @@
   // Simulate the page action being clicked.
   {
     ResultCatcher catcher;
-    int tab_id =
-        ExtensionTabUtil::GetTabId(chrome::GetActiveWebContents(browser()));
+    int tab_id = ExtensionTabUtil::GetTabId(
+        browser()->tab_strip_model()->GetActiveWebContents());
     ExtensionService* service = extensions::ExtensionSystem::Get(
         browser()->profile())->extension_service();
     ExtensionAction* page_action = GetPageAction(*extension);
diff --git a/chrome/browser/extensions/api/extension_action/script_badge_apitest.cc b/chrome/browser/extensions/api/extension_action/script_badge_apitest.cc
index 2cd19df0..959874c 100644
--- a/chrome/browser/extensions/api/extension_action/script_badge_apitest.cc
+++ b/chrome/browser/extensions/api/extension_action/script_badge_apitest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/common/extensions/features/feature.h"
@@ -50,11 +50,11 @@
   ASSERT_TRUE(script_badge);
   const extensions::LocationBarController* location_bar_controller =
       extensions::TabHelper::FromWebContents(
-          chrome::GetActiveWebContents(browser()))->
+          browser()->tab_strip_model()->GetActiveWebContents())->
               location_bar_controller();
 
   const int tab_id = SessionID::IdForTab(
-      chrome::GetActiveWebContents(browser()));
+      browser()->tab_strip_model()->GetActiveWebContents());
   EXPECT_EQ(GURL(extension->GetResourceURL("default_popup.html")),
             script_badge->GetPopupUrl(tab_id));
 
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
index 2af5f16..f6c0b71 100644
--- a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
+++ b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
@@ -22,7 +22,7 @@
 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.h"
 #include "chrome/browser/tab_contents/render_view_context_menu.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -414,7 +414,7 @@
       "webnavigation", "test_serverRedirectSingleProcess.html"))
           << message_;
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::WaitForLoadStop(tab);
 
   ResultCatcher catcher;
@@ -482,7 +482,7 @@
   ASSERT_TRUE(
       RunExtensionSubtest("webnavigation", "test_userAction.html")) << message_;
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::WaitForLoadStop(tab);
 
   ResultCatcher catcher;
@@ -516,7 +516,7 @@
   ASSERT_TRUE(RunExtensionSubtest("webnavigation", "test_requestOpenTab.html"))
       << message_;
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::WaitForLoadStop(tab);
 
   ResultCatcher catcher;
@@ -548,7 +548,7 @@
   ASSERT_TRUE(RunExtensionSubtest("webnavigation", "test_targetBlank.html"))
       << message_;
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::WaitForLoadStop(tab);
 
   ResultCatcher catcher;
@@ -587,7 +587,7 @@
 
   Browser* otr_browser = ui_test_utils::OpenURLOffTheRecord(
       browser()->profile(), url);
-  WebContents* tab = chrome::GetActiveWebContents(otr_browser);
+  WebContents* tab = otr_browser->tab_strip_model()->GetActiveWebContents();
 
   // There's a link with target=_blank on a.html. Click on it to open it in a
   // new tab.
diff --git a/chrome/browser/extensions/api/web_request/web_request_apitest.cc b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
index b7122bb..f9f24d57 100644
--- a/chrome/browser/extensions/api/web_request/web_request_apitest.cc
+++ b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
@@ -10,8 +10,8 @@
 #include "chrome/browser/extensions/extension_test_message_listener.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/login/login_prompt.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/features/feature.h"
@@ -114,7 +114,7 @@
   ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_newTab.html"))
       << message_;
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::WaitForLoadStop(tab);
 
   ResultCatcher catcher;
@@ -190,7 +190,7 @@
       test_server()->GetURL("files/extensions/test_file.html"));
 
   std::string body;
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
         tab,
         "window.domAutomationController.send(document.body.textContent)",
@@ -211,7 +211,7 @@
       test_server()->GetURL("files/extensions/test_file.html"));
 
   body.clear();
-  WebContents* otr_tab = chrome::GetActiveWebContents(otr_browser);
+  WebContents* otr_tab = otr_browser->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
       otr_tab,
       "window.domAutomationController.send(document.body.textContent)",
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc
index ef95b82..1aba48c7 100644
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc
@@ -18,7 +18,7 @@
 #include "chrome/browser/extensions/webstore_installer.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/test_launcher_utils.h"
@@ -255,7 +255,8 @@
 // Test cases for webstore origin frame blocking.
 IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest,
                        FrameWebstorePageBlocked) {
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   string16 expected_title = UTF8ToUTF16("PASS: about:blank");
   string16 failure_title = UTF8ToUTF16("FAIL");
   content::TitleWatcher watcher(contents, expected_title);
@@ -269,7 +270,8 @@
 
 IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest,
                        FrameErrorPageBlocked) {
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   string16 expected_title = UTF8ToUTF16("PASS: about:blank");
   string16 failure_title = UTF8ToUTF16("FAIL");
   content::TitleWatcher watcher(contents, expected_title);
diff --git a/chrome/browser/extensions/chrome_app_api_browsertest.cc b/chrome/browser/extensions/chrome_app_api_browsertest.cc
index 1b4b008..9e27d3b 100644
--- a/chrome/browser/extensions/chrome_app_api_browsertest.cc
+++ b/chrome/browser/extensions/chrome_app_api_browsertest.cc
@@ -13,7 +13,7 @@
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/common/extensions/manifest.h"
@@ -34,7 +34,7 @@
     bool result;
     CHECK(
         content::ExecuteScriptInFrameAndExtractBool(
-            chrome::GetActiveWebContents(browser()),
+            browser()->tab_strip_model()->GetActiveWebContents(),
             frame_xpath,
             kGetAppIsInstalled,
             &result));
@@ -49,7 +49,7 @@
     std::string result;
     CHECK(
         content::ExecuteScriptInFrameAndExtractString(
-            chrome::GetActiveWebContents(browser()),
+            browser()->tab_strip_model()->GetActiveWebContents(),
             frame_xpath,
             kGetAppInstallState,
             &result));
@@ -64,7 +64,7 @@
     std::string result;
     CHECK(
         content::ExecuteScriptInFrameAndExtractString(
-            chrome::GetActiveWebContents(browser()),
+            browser()->tab_strip_model()->GetActiveWebContents(),
             frame_xpath,
             kGetAppRunningState,
             &result));
@@ -120,7 +120,7 @@
   std::string result;
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           kGetAppDetails,
           &result));
   EXPECT_EQ("null", result);
@@ -134,7 +134,7 @@
   ui_test_utils::NavigateToURL(browser(), app_url);
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           kGetAppDetails,
           &result));
   scoped_ptr<DictionaryValue> app_details(
@@ -148,7 +148,7 @@
   // that isInstalled should have the initial value.
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           "window.domAutomationController.send("
           "    function() {"
           "        var value = window.chrome.app.isInstalled;"
@@ -198,7 +198,7 @@
   bool result = false;
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractBool(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           kTestUnsuccessfulAccess,
           &result));
   EXPECT_TRUE(result);
@@ -212,7 +212,7 @@
   std::string json;
   ASSERT_TRUE(
       content::ExecuteScriptAndExtractString(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           kGetDetailsForFrame,
           &json));
 
diff --git a/chrome/browser/extensions/content_script_apitest.cc b/chrome/browser/extensions/content_script_apitest.cc
index d1a71f31..bbee2a4 100644
--- a/chrome/browser/extensions/content_script_apitest.cc
+++ b/chrome/browser/extensions/content_script_apitest.cc
@@ -7,7 +7,7 @@
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
@@ -124,7 +124,7 @@
   // And check that its styles were affected by the styles that just got loaded.
   bool styles_injected;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send("
       "    document.defaultView.getComputedStyle(document.body, null)."
       "        getPropertyValue('background-color') == 'rgb(255, 0, 0)')",
diff --git a/chrome/browser/extensions/docs/examples/apps/calculator_browsertest.cc b/chrome/browser/extensions/docs/examples/apps/calculator_browsertest.cc
index f87e3a04..0f4a4da 100644
--- a/chrome/browser/extensions/docs/examples/apps/calculator_browsertest.cc
+++ b/chrome/browser/extensions/docs/examples/apps/calculator_browsertest.cc
@@ -4,7 +4,8 @@
 
 #include "base/file_path.h"
 #include "base/path_service.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -27,7 +28,7 @@
 
   bool success;
   bool executed = content::ExecuteScriptAndExtractBool(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(window.runTests().success)",
       &success);
 
diff --git a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
index 58998b6..6b9576a 100644
--- a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
+++ b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
@@ -18,7 +18,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/navigation_controller.h"
@@ -178,7 +177,8 @@
   SCOPED_TRACE("after reloading");
   CheckExtensionConsistency(first_extension_id_);
 
-  WebContents* current_tab = chrome::GetActiveWebContents(browser());
+  WebContents* current_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(current_tab);
 
   // The balloon should automatically hide after the extension is successfully
@@ -193,13 +193,15 @@
   CrashExtension(first_extension_id_);
   ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
 
-  WebContents* original_tab = chrome::GetActiveWebContents(browser());
+  WebContents* original_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(original_tab);
   ASSERT_EQ(1U, CountBalloons());
 
   // Open a new tab, but the balloon will still be there.
   chrome::NewTab(browser());
-  WebContents* new_current_tab = chrome::GetActiveWebContents(browser());
+  WebContents* new_current_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(new_current_tab);
   ASSERT_NE(new_current_tab, original_tab);
   ASSERT_EQ(1U, CountBalloons());
@@ -221,7 +223,8 @@
   CrashExtension(first_extension_id_);
   ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
 
-  WebContents* current_tab = chrome::GetActiveWebContents(browser());
+  WebContents* current_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(current_tab);
   ASSERT_EQ(1U, CountBalloons());
 
@@ -394,7 +397,8 @@
 
   {
     SCOPED_TRACE("first: reload");
-    WebContents* current_tab = chrome::GetActiveWebContents(browser());
+    WebContents* current_tab =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ASSERT_TRUE(current_tab);
     // At the beginning we should have one balloon displayed for each extension.
     ASSERT_EQ(2U, CountBalloons());
@@ -494,7 +498,8 @@
     content::WindowedNotificationObserver observer(
         content::NOTIFICATION_LOAD_STOP,
         content::Source<NavigationController>(
-            &chrome::GetActiveWebContents(browser())->GetController()));
+            &browser()->tab_strip_model()->GetActiveWebContents()->
+                GetController()));
     chrome::Reload(browser(), CURRENT_TAB);
     observer.Wait();
   }
diff --git a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
index 0226387..a0c1544 100644
--- a/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
+++ b/chrome/browser/extensions/extension_dom_clipboard_apitest.cc
@@ -5,7 +5,7 @@
 #include "base/stringprintf.h"
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test_utils.h"
@@ -68,7 +68,7 @@
 bool ClipboardApiTest::ExecuteScriptInSelectedTab(const std::string& script,
                                                   bool* result) {
   if (!content::ExecuteScriptAndExtractBool(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           script,
           result)) {
     message_ = "Failed to execute script in selected tab.";
diff --git a/chrome/browser/extensions/extension_icon_source_apitest.cc b/chrome/browser/extensions/extension_icon_source_apitest.cc
index 24b5df03..cdf2b50 100644
--- a/chrome/browser/extensions/extension_icon_source_apitest.cc
+++ b/chrome/browser/extensions/extension_icon_source_apitest.cc
@@ -7,7 +7,7 @@
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -35,7 +35,7 @@
       browser(),
       GURL("chrome-extension://gbmgkahjioeacddebbnengilkgbkhodg/index.html"));
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(document.title)",
       &result));
   EXPECT_EQ(result, "Loaded");
@@ -46,7 +46,7 @@
       browser(),
       GURL("chrome-extension://apocjbpjpkghdepdngjlknfpmabcmlao/index.html"));
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(document.title)",
       &result));
   EXPECT_EQ(result, "Not Loaded");
@@ -66,7 +66,7 @@
       browser()->profile(),
       GURL("chrome-extension://gbmgkahjioeacddebbnengilkgbkhodg/index.html"));
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-      chrome::GetActiveWebContents(otr_browser),
+      otr_browser->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(document.title)",
       &result));
   EXPECT_EQ(result, "Loaded");
@@ -77,7 +77,7 @@
       browser()->profile(),
       GURL("chrome-extension://apocjbpjpkghdepdngjlknfpmabcmlao/index.html"));
   ASSERT_TRUE(content::ExecuteScriptAndExtractString(
-      chrome::GetActiveWebContents(otr_browser),
+      otr_browser->tab_strip_model()->GetActiveWebContents(),
       "window.domAutomationController.send(document.title)",
       &result));
   EXPECT_EQ(result, "Not Loaded");
diff --git a/chrome/browser/extensions/extension_keybinding_apitest.cc b/chrome/browser/extensions/extension_keybinding_apitest.cc
index fa72cb4..32ae453 100644
--- a/chrome/browser/extensions/extension_keybinding_apitest.cc
+++ b/chrome/browser/extensions/extension_keybinding_apitest.cc
@@ -10,7 +10,6 @@
 #include "chrome/browser/extensions/tab_helper.h"
 #include "chrome/browser/sessions/session_tab_helper.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
@@ -135,7 +134,7 @@
   // Make sure it appears and is the right one.
   ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1));
   int tab_id = SessionTabHelper::FromWebContents(
-      chrome::GetActiveWebContents(browser()))->session_id().id();
+      browser()->tab_strip_model()->GetActiveWebContents())->session_id().id();
   ExtensionAction* action =
       ExtensionActionManager::Get(browser()->profile())->
       GetPageAction(*extension);
@@ -147,7 +146,7 @@
       browser(), ui::VKEY_F, false, true, true, false));
 
   // Verify the command worked (the page action turns the page red).
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   bool result = false;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
       tab,
diff --git a/chrome/browser/extensions/extension_nacl_browsertest.cc b/chrome/browser/extensions/extension_nacl_browsertest.cc
index 7d8d34c..e6ea410 100644
--- a/chrome/browser/extensions/extension_nacl_browsertest.cc
+++ b/chrome/browser/extensions/extension_nacl_browsertest.cc
@@ -13,7 +13,7 @@
 #include "chrome/browser/prefs/pref_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -101,7 +101,8 @@
 
     bool embedded_plugin_created = false;
     bool content_handler_plugin_created = false;
-    WebContents* web_contents = chrome::GetActiveWebContents(browser());
+    WebContents* web_contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
         web_contents,
         "window.domAutomationController.send(EmbeddedPluginCreated());",
diff --git a/chrome/browser/extensions/extension_override_apitest.cc b/chrome/browser/extensions/extension_override_apitest.cc
index 023e066..bbf3fd0 100644
--- a/chrome/browser/extensions/extension_override_apitest.cc
+++ b/chrome/browser/extensions/extension_override_apitest.cc
@@ -9,7 +9,7 @@
 #include "chrome/browser/prefs/scoped_user_pref_update.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/extensions/manifest_url_handler.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -54,7 +54,7 @@
     // Navigate to the new tab page.  The overridden new tab page
     // will call chrome.test.notifyPass() .
     ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab/"));
-    WebContents* tab = chrome::GetActiveWebContents(browser());
+    WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
     ASSERT_TRUE(tab->GetController().GetActiveEntry());
     EXPECT_TRUE(tab->GetController().GetActiveEntry()->GetURL().
                 SchemeIs(extensions::kExtensionScheme));
@@ -79,7 +79,7 @@
   // new tab page because we can't load chrome-extension URLs in incognito.
   Browser* otr_browser = ui_test_utils::OpenURLOffTheRecord(
       browser()->profile(), GURL("chrome://newtab/"));
-  WebContents* tab = chrome::GetActiveWebContents(otr_browser);
+  WebContents* tab = otr_browser->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(tab->GetController().GetActiveEntry());
   EXPECT_FALSE(tab->GetController().GetActiveEntry()->GetURL().
                SchemeIs(extensions::kExtensionScheme));
diff --git a/chrome/browser/extensions/extension_startup_browsertest.cc b/chrome/browser/extensions/extension_startup_browsertest.cc
index f1984c5..8557af0f 100644
--- a/chrome/browser/extensions/extension_startup_browsertest.cc
+++ b/chrome/browser/extensions/extension_startup_browsertest.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/extensions/user_script_master.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
@@ -127,7 +127,7 @@
 
     bool result = false;
     ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-        chrome::GetActiveWebContents(browser()),
+        browser()->tab_strip_model()->GetActiveWebContents(),
         "window.domAutomationController.send("
         "    document.defaultView.getComputedStyle(document.body, null)."
         "    getPropertyValue('background-color') == 'rgb(245, 245, 220)')",
@@ -136,7 +136,7 @@
 
     result = false;
     ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-        chrome::GetActiveWebContents(browser()),
+        browser()->tab_strip_model()->GetActiveWebContents(),
         "window.domAutomationController.send(document.title == 'Modified')",
         &result));
     EXPECT_EQ(expect_script, result);
diff --git a/chrome/browser/extensions/extension_url_rewrite_browsertest.cc b/chrome/browser/extensions/extension_url_rewrite_browsertest.cc
index 8199733..e30da01 100644
--- a/chrome/browser/extensions/extension_url_rewrite_browsertest.cc
+++ b/chrome/browser/extensions/extension_url_rewrite_browsertest.cc
@@ -8,10 +8,10 @@
 #include "chrome/browser/extensions/component_loader.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/omnibox/location_bar.h"
 #include "chrome/browser/ui/omnibox/omnibox_view.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/testing_profile.h"
@@ -42,7 +42,8 @@
   }
 
   content::NavigationController* GetNavigationController() const {
-    return &chrome::GetActiveWebContents(browser())->GetController();
+    return &browser()->tab_strip_model()->GetActiveWebContents()->
+        GetController();
   }
 
   NavigationEntry* GetNavigationEntry() const {
diff --git a/chrome/browser/extensions/page_action_browsertest.cc b/chrome/browser/extensions/page_action_browsertest.cc
index d40a2a5..f417d25 100644
--- a/chrome/browser/extensions/page_action_browsertest.cc
+++ b/chrome/browser/extensions/page_action_browsertest.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/extensions/extension_system.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -194,7 +194,7 @@
   EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur is my name").c_str(),
                extension->name().c_str());
   int tab_id = ExtensionTabUtil::GetTabId(
-      chrome::GetActiveWebContents(browser()));
+      browser()->tab_strip_model()->GetActiveWebContents());
   EXPECT_STREQ(WideToUTF8(L"Hreggvi\u00F0ur").c_str(),
                ExtensionActionManager::Get(browser()->profile())->
                GetPageAction(*extension)->
diff --git a/chrome/browser/extensions/plugin_apitest.cc b/chrome/browser/extensions/plugin_apitest.cc
index 28d7f60d..a125de3 100644
--- a/chrome/browser/extensions/plugin_apitest.cc
+++ b/chrome/browser/extensions/plugin_apitest.cc
@@ -9,7 +9,7 @@
 #include "chrome/browser/prefs/pref_service.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -43,7 +43,7 @@
 
   ui_test_utils::NavigateToURL(browser(),
       net::FilePathToFileURL(extension_dir.AppendASCII("test.html")));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   // With no extensions, the plugin should not be loaded.
   bool result = false;
@@ -86,7 +86,8 @@
     content::WindowedNotificationObserver observer(
         content::NOTIFICATION_LOAD_STOP,
         content::Source<NavigationController>(
-            &chrome::GetActiveWebContents(browser())->GetController()));
+            &browser()->tab_strip_model()->GetActiveWebContents()->
+                GetController()));
     chrome::Reload(browser(), CURRENT_TAB);
     observer.Wait();
   }
@@ -122,7 +123,7 @@
   // Load the test page through the extension URL, and the plugin should work.
   ui_test_utils::NavigateToURL(browser(),
       extension->GetResourceURL("test.html"));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   bool result = false;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
       tab, "testPluginWorks()", &result));
diff --git a/chrome/browser/extensions/web_contents_browsertest.cc b/chrome/browser/extensions/web_contents_browsertest.cc
index b8cd295c..6464c08 100644
--- a/chrome/browser/extensions/web_contents_browsertest.cc
+++ b/chrome/browser/extensions/web_contents_browsertest.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/test/browser_test_utils.h"
 
@@ -22,7 +22,7 @@
 
   bool result = false;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "testTabsAPI()",
       &result));
   EXPECT_TRUE(result);
@@ -35,7 +35,7 @@
       GURL("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/page.html"));
   result = false;
   ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "testTabsAPI()",
       &result));
   EXPECT_TRUE(result);
diff --git a/chrome/browser/extensions/webstore_standalone_install_browsertest.cc b/chrome/browser/extensions/webstore_standalone_install_browsertest.cc
index 881d95e..ba0e2b4 100644
--- a/chrome/browser/extensions/webstore_standalone_install_browsertest.cc
+++ b/chrome/browser/extensions/webstore_standalone_install_browsertest.cc
@@ -12,7 +12,6 @@
 #include "chrome/browser/extensions/startup_helper.h"
 #include "chrome/browser/extensions/webstore_standalone_installer.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
@@ -85,7 +84,7 @@
     std::string script = StringPrintf("%s('%s')", test_function_name.c_str(),
         test_gallery_url_.c_str());
     ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
-        chrome::GetActiveWebContents(browser()),
+        browser()->tab_strip_model()->GetActiveWebContents(),
         script,
         &result));
     EXPECT_TRUE(result);
@@ -150,7 +149,8 @@
 
   // The inline install should fail, and a store-provided URL should be opened
   // in a new tab.
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   EXPECT_EQ(GURL("http://cws.com/show-me-the-money"), web_contents->GetURL());
 }
 
diff --git a/chrome/browser/history/history_browsertest.cc b/chrome/browser/history/history_browsertest.cc
index e78d95a..29ee9f36 100644
--- a/chrome/browser/history/history_browsertest.cc
+++ b/chrome/browser/history/history_browsertest.cc
@@ -15,7 +15,6 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -103,7 +102,7 @@
   void LoadAndWaitForURL(const GURL& url) {
     string16 expected_title(ASCIIToUTF16("OK"));
     content::TitleWatcher title_watcher(
-        chrome::GetActiveWebContents(browser()), expected_title);
+        browser()->tab_strip_model()->GetActiveWebContents(), expected_title);
     title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
     ui_test_utils::NavigateToURL(browser(), url);
     EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
@@ -246,7 +245,8 @@
   // Therefore, Page 11 should be in the history in addition to Page 12.
   LoadAndWaitForFile("history_length_test_page_11.html");
 
-  content::SimulateMouseClick(chrome::GetActiveWebContents(browser()), 0,
+  content::SimulateMouseClick(
+      browser()->tab_strip_model()->GetActiveWebContents(), 0,
       WebKit::WebMouseEvent::ButtonLeft);
   LoadAndWaitForFile("history_length_test_page_11.html");
 }
@@ -277,11 +277,12 @@
   // so that we're not susceptible (less susceptible?) to a race condition.
   // Should a race condition ever trigger, it won't result in flakiness.
   int num = ui_test_utils::FindInPage(
-      chrome::GetActiveWebContents(browser()), ASCIIToUTF16("<img"), true,
+      browser()->tab_strip_model()->GetActiveWebContents(),
+      ASCIIToUTF16("<img"), true,
       true, NULL, NULL);
   EXPECT_GT(num, 0);
   EXPECT_EQ(ASCIIToUTF16("History"),
-            chrome::GetActiveWebContents(browser())->GetTitle());
+            browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
 }
 
 // Verify that history persists after session restart.
@@ -375,7 +376,8 @@
       FilePath().AppendASCII("landing.html"));
   ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
       browser(), redirector, 2);
-  ASSERT_EQ(landing_url, chrome::GetActiveWebContents(browser())->GetURL());
+  ASSERT_EQ(landing_url,
+            browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
   std::vector<GURL> urls(GetHistoryContents());
   ASSERT_EQ(2u, urls.size());
   ASSERT_EQ(landing_url, urls[0]);
@@ -413,7 +415,8 @@
   ASSERT_EQ(url2, urls[0]);
   ASSERT_EQ(url1, urls[1]);
 
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   tab->GetController().Reload(false);
   content::WaitForLoadStop(tab);
 
@@ -432,7 +435,8 @@
   ui_test_utils::NavigateToURL(browser(), url1);
   ui_test_utils::NavigateToURL(browser(), url2);
 
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   chrome::GoBack(browser(), CURRENT_TAB);
   content::WaitForLoadStop(tab);
 
@@ -459,10 +463,11 @@
       FilePath().AppendASCII("target.html"));
   ui_test_utils::NavigateToURL(browser(), form);
 
-  content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   string16 expected_title(ASCIIToUTF16("Target Page"));
   content::TitleWatcher title_watcher(
-      chrome::GetActiveWebContents(browser()), expected_title);
+      browser()->tab_strip_model()->GetActiveWebContents(), expected_title);
   ASSERT_TRUE(content::ExecuteScript(
       web_contents, "document.getElementById('form').submit()"));
   EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
@@ -480,7 +485,8 @@
 
   // Even after navigate completes, the currently-active tab title is
   // 'Loading...' for a brief time while the history page loads.
-  content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   string16 expected_title(ASCIIToUTF16("History"));
   content::TitleWatcher title_watcher(web_contents, expected_title);
   chrome::ExecuteCommand(browser(), IDC_SHOW_HISTORY);
diff --git a/chrome/browser/history/multipart_browsertest.cc b/chrome/browser/history/multipart_browsertest.cc
index 7b86bca8..2e40265 100644
--- a/chrome/browser/history/multipart_browsertest.cc
+++ b/chrome/browser/history/multipart_browsertest.cc
@@ -5,7 +5,7 @@
 #include "base/file_util.h"
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -36,11 +36,11 @@
   // creates one entry in the visits table.
   ASSERT_TRUE(test_server()->Start());
 
-  Observe(chrome::GetActiveWebContents(browser()));
+  Observe(browser()->tab_strip_model()->GetActiveWebContents());
   ui_test_utils::NavigateToURL(browser(), test_server()->GetURL("multipart"));
 
   EXPECT_EQ(ASCIIToUTF16("page 9"),
-            chrome::GetActiveWebContents(browser())->GetTitle());
+            browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
   EXPECT_EQ(1, update_history_count_);
   EXPECT_GT(did_navigate_any_frame_count_, update_history_count_);
 }
diff --git a/chrome/browser/history/redirect_browsertest.cc b/chrome/browser/history/redirect_browsertest.cc
index 9a8bb73b..4db52f79 100644
--- a/chrome/browser/history/redirect_browsertest.cc
+++ b/chrome/browser/history/redirect_browsertest.cc
@@ -21,7 +21,7 @@
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/view_ids.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -102,14 +102,16 @@
   EXPECT_EQ(final_url.spec(), redirects[0].spec());
 
   // The address bar should display the final URL.
-  EXPECT_EQ(final_url, chrome::GetActiveWebContents(browser())->GetURL());
+  EXPECT_EQ(final_url,
+            browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
 
   // Navigate one more time.
   ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(
       browser(), first_url, 2);
 
   // The address bar should still display the final URL.
-  EXPECT_EQ(final_url, chrome::GetActiveWebContents(browser())->GetURL());
+  EXPECT_EQ(final_url,
+            browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
 }
 
 // http://code.google.com/p/chromium/issues/detail?id=62772
@@ -156,7 +158,8 @@
       FilePath(), FilePath().AppendASCII("cancelled_redirect_test.html"));
   ui_test_utils::NavigateToURL(browser(), first_url);
 
-  content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   content::TestNavigationObserver navigation_observer(
       content::Source<content::NavigationController>(
           &web_contents->GetController()));
@@ -212,7 +215,9 @@
 
   ui_test_utils::NavigateToURL(browser(), initial_url);
 
-  EXPECT_EQ(ref, chrome::GetActiveWebContents(browser())->GetURL().ref());
+  EXPECT_EQ(ref,
+            browser()->tab_strip_model()->GetActiveWebContents()->
+                GetURL().ref());
 }
 
 // Test that redirect from http:// to file:// :
@@ -232,7 +237,7 @@
   // We make sure the title doesn't match the title from the file, because the
   // nav should not have taken place.
   EXPECT_NE(ASCIIToUTF16("File!"),
-            chrome::GetActiveWebContents(browser())->GetTitle());
+            browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
 }
 
 // Ensures that non-user initiated location changes (within page) are
@@ -270,7 +275,8 @@
   GURL first_url = test_server()->GetURL(
       "client-redirect?" + slow.spec());
 
-  content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   content::TestNavigationObserver observer(
       content::Source<content::NavigationController>(
           &web_contents->GetController()),
@@ -289,7 +295,7 @@
   // Check to make sure the navigation did in fact take place and we are
   // at the expected page.
   EXPECT_EQ(ASCIIToUTF16("Title Of Awesomeness"),
-            chrome::GetActiveWebContents(browser())->GetTitle());
+            browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
 
   bool final_navigation_not_redirect = true;
   std::vector<GURL> redirects = GetRedirects(first_url);
diff --git a/chrome/browser/instant/instant_browsertest.cc b/chrome/browser/instant/instant_browsertest.cc
index 543e3dafb..250446e 100644
--- a/chrome/browser/instant/instant_browsertest.cc
+++ b/chrome/browser/instant/instant_browsertest.cc
@@ -13,8 +13,8 @@
 #include "chrome/browser/search_engines/template_url_service_factory.h"
 #include "chrome/browser/task_manager/task_manager.h"
 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
+#include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/interactive_test_utils.h"
@@ -147,7 +147,8 @@
   // Use the Instant page as the active tab, so we can exploit its visibility
   // handler to check visibility transitions.
   ui_test_utils::NavigateToURL(browser(), instant_url_);
-  content::WebContents* active_tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* active_tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
 
   int active_tab_onvisibilitycalls = -1;
   EXPECT_TRUE(GetIntFromJS(active_tab, "onvisibilitycalls",
diff --git a/chrome/browser/loadtimes_extension_bindings_browsertest.cc b/chrome/browser/loadtimes_extension_bindings_browsertest.cc
index 1603f70..6eaa71a 100644
--- a/chrome/browser/loadtimes_extension_bindings_browsertest.cc
+++ b/chrome/browser/loadtimes_extension_bindings_browsertest.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -18,7 +18,8 @@
     // TODO(simonjam): There's a race on whether or not first paint is populated
     // before we read them. We ought to test that too. Until the race is fixed,
     // zero it out so the test is stable.
-    content::WebContents* contents = chrome::GetActiveWebContents(browser());
+    content::WebContents* contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ASSERT_TRUE(content::ExecuteScript(
         contents,
         "window.before.firstPaintAfterLoadTime = 0;"
@@ -47,7 +48,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL plain_url = test_server()->GetURL("blank");
   ui_test_utils::NavigateToURL(browser(), plain_url);
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(content::ExecuteScript(
       contents, "window.before = window.chrome.loadTimes()"));
   ASSERT_TRUE(content::ExecuteScript(
@@ -63,7 +65,8 @@
   GURL plain_url = test_server()->GetURL("blank");
   GURL hash_url(plain_url.spec() + "#");
   ui_test_utils::NavigateToURL(browser(), plain_url);
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(content::ExecuteScript(
       contents, "window.before = window.chrome.loadTimes()"));
   ui_test_utils::NavigateToURL(browser(), hash_url);
diff --git a/chrome/browser/managed_mode/managed_mode_browsertest.cc b/chrome/browser/managed_mode/managed_mode_browsertest.cc
index 9b0db77..99041ff5 100644
--- a/chrome/browser/managed_mode/managed_mode_browsertest.cc
+++ b/chrome/browser/managed_mode/managed_mode_browsertest.cc
@@ -15,7 +15,7 @@
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_navigator.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
@@ -94,8 +94,9 @@
   // Checks if the current number of shown infobars is equal to |expected|.
   void CheckNumberOfInfobars(unsigned int expected) {
     EXPECT_EQ(expected,
-        InfoBarService::FromWebContents(
-            chrome::GetActiveWebContents(browser()))->GetInfoBarCount());
+              InfoBarService::FromWebContents(
+                  browser()->tab_strip_model()->GetActiveWebContents())->
+                      GetInfoBarCount());
   }
 
   // Acts on the interstitial and infobar according to the values set to
@@ -187,7 +188,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_PROCEED, INFOBAR_ACCEPT);
@@ -205,7 +206,7 @@
 
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_PROCEED, INFOBAR_ACCEPT);
@@ -225,7 +226,7 @@
 
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsNotInterstitial(tab);
 
@@ -249,7 +250,7 @@
 
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsNotInterstitial(tab);
 
@@ -274,7 +275,7 @@
 
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   EXPECT_EQ(tab->GetURL().spec(), "http://" + last_url);
   CheckShownPageIsInterstitial(tab);
@@ -302,7 +303,7 @@
 
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   EXPECT_EQ(tab->GetURL().host(), "www.a.com");
   CheckShownPageIsInterstitial(tab);
@@ -321,7 +322,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_DONTPROCEED,
@@ -340,7 +341,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_PROCEED, INFOBAR_ACCEPT);
@@ -363,7 +364,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_PROCEED, INFOBAR_ACCEPT);
@@ -389,7 +390,7 @@
   GURL test_url("https://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
   ActOnInterstitialAndInfobar(tab, INTERSTITIAL_PROCEED, INFOBAR_ACCEPT);
@@ -408,7 +409,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
 
@@ -473,7 +474,7 @@
   GURL test_url("http://www.example.com/files/simple.html");
   ui_test_utils::NavigateToURL(browser(), test_url);
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckShownPageIsInterstitial(tab);
 
diff --git a/chrome/browser/media/chrome_webrtc_browsertest.cc b/chrome/browser/media/chrome_webrtc_browsertest.cc
index 1fbdf5d..1d35e28e 100644
--- a/chrome/browser/media/chrome_webrtc_browsertest.cc
+++ b/chrome/browser/media/chrome_webrtc_browsertest.cc
@@ -6,8 +6,9 @@
 #include "chrome/browser/api/infobars/infobar_service.h"
 #include "chrome/browser/infobars/infobar.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/media_stream_infobar_delegate.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -48,7 +49,7 @@
 
     while (base::Time::Now() - start_time < timeout) {
       EXPECT_TRUE(content::ExecuteScriptAndExtractString(
-          chrome::GetActiveWebContents(browser()),
+          browser()->tab_strip_model()->GetActiveWebContents(),
           "obtainGetUserMediaResult();",
           &result));
       if (result == evaluates_to)
@@ -76,7 +77,7 @@
   // Request user media: this will launch the media stream info bar.
   std::string result;
   EXPECT_TRUE(content::ExecuteScriptAndExtractString(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       "getUserMedia('{video: true}');",
       &result));
   EXPECT_EQ("ok-requested", result);
diff --git a/chrome/browser/mouseleave_browsertest.cc b/chrome/browser/mouseleave_browsertest.cc
index 7bfe0876..8027792 100644
--- a/chrome/browser/mouseleave_browsertest.cc
+++ b/chrome/browser/mouseleave_browsertest.cc
@@ -5,7 +5,7 @@
 #include "base/file_path.h"
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_controls.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -36,7 +36,8 @@
   GURL test_url = ui_test_utils::GetTestUrl(
       FilePath(), FilePath(FILE_PATH_LITERAL("mouseleave.html")));
 
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   gfx::Rect tab_view_bounds;
   tab->GetView()->GetContainerBounds(&tab_view_bounds);
 
diff --git a/chrome/browser/net/load_timing_observer_browsertest.cc b/chrome/browser/net/load_timing_observer_browsertest.cc
index 3d143ddf..b75320c 100644
--- a/chrome/browser/net/load_timing_observer_browsertest.cc
+++ b/chrome/browser/net/load_timing_observer_browsertest.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "content/public/browser/web_contents.h"
@@ -26,7 +26,8 @@
 
   int response_start = 0;
   int response_end = 0;
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(content::ExecuteScriptAndExtractInt(
       contents,
       "window.domAutomationController.send("
diff --git a/chrome/browser/net/proxy_browsertest.cc b/chrome/browser/net/proxy_browsertest.cc
index 24f06c5..1ca47cac 100644
--- a/chrome/browser/net/proxy_browsertest.cc
+++ b/chrome/browser/net/proxy_browsertest.cc
@@ -8,8 +8,8 @@
 #include "base/stringprintf.h"
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/login/login_prompt.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
@@ -96,7 +96,8 @@
                             net::GetWebSocketTestDataDirectory());
   ASSERT_TRUE(ws_server.Start());
 
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   content::NavigationController* controller = &tab->GetController();
   content::NotificationRegistrar registrar;
   // The proxy server will request basic authentication.
diff --git a/chrome/browser/page_cycler/page_cycler_unittest.cc b/chrome/browser/page_cycler/page_cycler_unittest.cc
index dd0bef7..015504c 100644
--- a/chrome/browser/page_cycler/page_cycler_unittest.cc
+++ b/chrome/browser/page_cycler/page_cycler_unittest.cc
@@ -11,8 +11,9 @@
 #include "chrome/app/chrome_command_ids.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/page_cycler/page_cycler.h"
+#include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
@@ -113,7 +114,7 @@
 
     BrowserWithTestWindowTest::SetUp();
     AddTab(browser(), kAboutURL);
-    ASSERT_FALSE(chrome::GetActiveWebContents(browser()) == NULL);
+    ASSERT_FALSE(browser()->tab_strip_model()->GetActiveWebContents() == NULL);
   }
 
   void InitFilePaths(const FilePath& temp_path) {
diff --git a/chrome/browser/prerender/prefetch_browsertest.cc b/chrome/browser/prerender/prefetch_browsertest.cc
index 4d0d40e..8ad1ca9 100644
--- a/chrome/browser/prerender/prefetch_browsertest.cc
+++ b/chrome/browser/prerender/prefetch_browsertest.cc
@@ -5,7 +5,7 @@
 #include "base/command_line.h"
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -54,7 +54,7 @@
 
   const string16 expected_title = ASCIIToUTF16("link onload");
   content::TitleWatcher title_watcher(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       expected_title);
   ui_test_utils::NavigateToURL(browser(), url);
 
@@ -67,7 +67,7 @@
 
   const string16 expected_title = ASCIIToUTF16("link onerror");
   content::TitleWatcher title_watcher(
-      chrome::GetActiveWebContents(browser()),
+      browser()->tab_strip_model()->GetActiveWebContents(),
       expected_title);
   ui_test_utils::NavigateToURL(browser(), url);
 
diff --git a/chrome/browser/referrer_policy_browsertest.cc b/chrome/browser/referrer_policy_browsertest.cc
index 05a34921..ff7f441 100644
--- a/chrome/browser/referrer_policy_browsertest.cc
+++ b/chrome/browser/referrer_policy_browsertest.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/tab_contents/render_view_context_menu_browsertest_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -139,7 +139,8 @@
         content::NotificationService::AllSources());
 
     string16 expected_title = GetExpectedTitle(start_url, expected_referrer);
-    content::WebContents* tab = chrome::GetActiveWebContents(browser());
+    content::WebContents* tab =
+        browser()->tab_strip_model()->GetActiveWebContents();
     content::TitleWatcher title_watcher(tab, expected_title);
 
     // Watch for all possible outcomes to avoid timeouts if something breaks.
@@ -379,7 +380,8 @@
 
   string16 expected_title =
       GetExpectedTitle(start_url, EXPECT_ORIGIN_AS_REFERRER);
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   scoped_ptr<content::TitleWatcher> title_watcher(
       new content::TitleWatcher(tab, expected_title));
 
diff --git a/chrome/browser/ssl/ssl_browser_tests.cc b/chrome/browser/ssl/ssl_browser_tests.cc
index fb8de31..843e70d9 100644
--- a/chrome/browser/ssl/ssl_browser_tests.cc
+++ b/chrome/browser/ssl/ssl_browser_tests.cc
@@ -216,7 +216,8 @@
 
   bool IsShowingWebContentsModalDialog() const {
     return WebContentsModalDialogManager::FromWebContents(
-        chrome::GetActiveWebContents(browser()))->IsShowingDialog();
+        browser()->tab_strip_model()->GetActiveWebContents())->
+            IsShowingDialog();
   }
 
   static bool GetFilePathWithHostAndPortReplacement(
@@ -332,7 +333,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                test_server()->GetURL("files/ssl/google.html"));
 
-  CheckUnauthenticatedState(chrome::GetActiveWebContents(browser()));
+  CheckUnauthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents());
 }
 
 // Visits a page over http which includes broken https resources (status should
@@ -352,7 +354,8 @@
   ui_test_utils::NavigateToURL(
       browser(), test_server()->GetURL(replacement_path));
 
-  CheckUnauthenticatedState(chrome::GetActiveWebContents(browser()));
+  CheckUnauthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents());
 }
 
 // http://crbug.com/91745
@@ -369,7 +372,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL("files/ssl/google.html"));
 
-  CheckAuthenticatedState(chrome::GetActiveWebContents(browser()), false);
+  CheckAuthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents(), false);
 }
 
 // Visits a page with https error and proceed:
@@ -379,7 +383,7 @@
   ui_test_utils::NavigateToURL(browser(),
       https_server_expired_.GetURL("files/ssl/google.html"));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
                                  true);  // Interstitial showing
 
@@ -400,7 +404,7 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL("files/ssl/google.html"));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   NavigationEntry* entry = tab->GetController().GetActiveEntry();
   ASSERT_TRUE(entry);
 
@@ -444,7 +448,7 @@
   // First navigate to an HTTP page.
   ui_test_utils::NavigateToURL(browser(),
       test_server()->GetURL("files/ssl/google.html"));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   NavigationEntry* entry = tab->GetController().GetActiveEntry();
   ASSERT_TRUE(entry);
 
@@ -466,7 +470,8 @@
       tab->GetRenderViewHost()));
 
   // We should be back at the original good page.
-  EXPECT_FALSE(chrome::GetActiveWebContents(browser())->GetInterstitialPage());
+  EXPECT_FALSE(browser()->tab_strip_model()->GetActiveWebContents()->
+                   GetInterstitialPage());
   CheckUnauthenticatedState(tab);
 }
 
@@ -480,7 +485,7 @@
   // First navigate to an HTTP page.
   ui_test_utils::NavigateToURL(browser(),
       test_server()->GetURL("files/ssl/google.html"));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   NavigationEntry* entry = tab->GetController().GetActiveEntry();
   ASSERT_TRUE(entry);
 
@@ -494,7 +499,8 @@
   tab->GetController().GoToOffset(-1);
 
   // We should be back at the original good page.
-  EXPECT_FALSE(chrome::GetActiveWebContents(browser())->GetInterstitialPage());
+  EXPECT_FALSE(browser()->tab_strip_model()->GetActiveWebContents()->
+                   GetInterstitialPage());
   CheckUnauthenticatedState(tab);
 }
 
@@ -506,7 +512,7 @@
   // First navigate to two HTTP pages.
   ui_test_utils::NavigateToURL(browser(),
       test_server()->GetURL("files/ssl/google.html"));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   NavigationEntry* entry1 = tab->GetController().GetActiveEntry();
   ASSERT_TRUE(entry1);
   ui_test_utils::NavigateToURL(browser(),
@@ -542,7 +548,8 @@
   }
 
   // We should be showing the second good page.
-  EXPECT_FALSE(chrome::GetActiveWebContents(browser())->GetInterstitialPage());
+  EXPECT_FALSE(browser()->tab_strip_model()->GetActiveWebContents()->
+                   GetInterstitialPage());
   CheckUnauthenticatedState(tab);
   EXPECT_FALSE(tab->GetController().CanGoForward());
   NavigationEntry* entry4 = tab->GetController().GetActiveEntry();
@@ -563,7 +570,7 @@
   ASSERT_TRUE(wss_server_expired_.Start());
 
   // Setup page title observer.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::TitleWatcher watcher(tab, ASCIIToUTF16("PASS"));
   watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
 
@@ -605,7 +612,7 @@
   ASSERT_TRUE(wss_server_expired_.Start());
 
   // Setup page title observer.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::TitleWatcher watcher(tab, ASCIIToUTF16("PASS"));
   watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
 
@@ -672,7 +679,7 @@
       replacements);
 
   // Setup page title observer.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::TitleWatcher watcher(tab, ASCIIToUTF16("PASS"));
   watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
 
@@ -766,7 +773,7 @@
 
   // Proceed through the SSL interstitial. This doesn't use
   // |ProceedThroughInterstitial| since no page load will commit.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(tab != NULL);
   ASSERT_TRUE(tab->GetInterstitialPage() != NULL);
   {
@@ -814,7 +821,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(replacement_path));
 
-  CheckAuthenticatedState(chrome::GetActiveWebContents(browser()), true);
+  CheckAuthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents(), true);
 }
 
 // Visits a page that runs insecure content and tries to suppress the insecure
@@ -828,8 +836,8 @@
   ui_test_utils::NavigateToURL(browser(), https_server_.GetURL(
       "files/ssl/page_runs_insecure_content.html"));
 
-  CheckAuthenticationBrokenState(chrome::GetActiveWebContents(browser()), 0,
-                                 true, false);
+  CheckAuthenticationBrokenState(
+      browser()->tab_strip_model()->GetActiveWebContents(), 0, true, false);
 }
 
 // Visits a page with unsafe content and make sure that:
@@ -847,7 +855,7 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(replacement_path));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   // When the bad content is filtered, the state is expected to be
   // authenticated.
   CheckAuthenticatedState(tab, false);
@@ -891,7 +899,7 @@
   ui_test_utils::NavigateToURL(browser(), https_server_.GetURL(
       replacement_path));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticatedState(tab, false);
 
   // Load the insecure image.
@@ -1010,7 +1018,7 @@
   // Load original page over HTTP.
   const GURL url_http = test_server()->GetURL(replacement_path);
   ui_test_utils::NavigateToURL(browser(), url_http);
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckUnauthenticatedState(tab);
 
   // Load again but over SSL.  It should be marked as displaying insecure
@@ -1044,7 +1052,7 @@
   // Load original page over HTTP.
   const GURL url_http = test_server()->GetURL(replacement_path);
   ui_test_utils::NavigateToURL(browser(), url_http);
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckUnauthenticatedState(tab);
 
   // Load again but over SSL.  It should be marked as displaying insecure
@@ -1066,7 +1074,7 @@
       https_server_mismatched_.GetURL("files/ssl/google.html"));
 
   // We get an interstitial page as a result.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_COMMON_NAME_INVALID,
                                  false, true);  // Interstitial showing.
   ProceedThroughInterstitial(tab);
@@ -1104,7 +1112,7 @@
   ui_test_utils::NavigateToURL(browser(),
       https_server_expired_.GetURL("files/ssl/page_with_refs.html"));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
                                  true);  // Interstitial showing.
 
@@ -1139,7 +1147,7 @@
   ui_test_utils::NavigateToURL(browser(),
                                test_server()->GetURL(replacement_path));
 
-  WebContents* tab1 = chrome::GetActiveWebContents(browser());
+  WebContents* tab1 = browser()->tab_strip_model()->GetActiveWebContents();
   // It is probably overkill to add a notification for a popup-opening, let's
   // just poll.
   for (int i = 0; i < 10; i++) {
@@ -1174,7 +1182,7 @@
 
   ui_test_utils::NavigateToURL(browser(), GURL(url1.spec() + url2.spec()));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
                                  true);  // Interstitial showing.
@@ -1194,7 +1202,7 @@
   GURL url2 = https_server_expired_.GetURL("files/ssl/google.html");
   ui_test_utils::NavigateToURL(browser(), GURL(url1.spec() + url2.spec()));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
                                  true);  // Interstitial showing.
 
@@ -1209,7 +1217,7 @@
   ASSERT_TRUE(test_server()->Start());
   ASSERT_TRUE(https_server_.Start());
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   // HTTP redirects to good HTTPS.
   GURL http_url = test_server()->GetURL("server-redirect?");
@@ -1226,7 +1234,7 @@
   ASSERT_TRUE(test_server()->Start());
   ASSERT_TRUE(https_server_expired_.Start());
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
 
   GURL http_url = test_server()->GetURL("server-redirect?");
   GURL bad_https_url =
@@ -1253,18 +1261,21 @@
 
   ui_test_utils::NavigateToURL(browser(),
                                GURL(https_url.spec() + http_url.spec()));
-  CheckUnauthenticatedState(chrome::GetActiveWebContents(browser()));
+  CheckUnauthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents());
 }
 
 // Visits a page to which we could not connect (bad port) over http and https
 // and make sure the security style is correct.
 IN_PROC_BROWSER_TEST_F(SSLUITest, TestConnectToBadPort) {
   ui_test_utils::NavigateToURL(browser(), GURL("http://localhost:17"));
-  CheckUnauthenticatedState(chrome::GetActiveWebContents(browser()));
+  CheckUnauthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents());
 
   // Same thing over HTTPS.
   ui_test_utils::NavigateToURL(browser(), GURL("https://localhost:17"));
-  CheckUnauthenticatedState(chrome::GetActiveWebContents(browser()));
+  CheckUnauthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents());
 }
 
 //
@@ -1287,7 +1298,7 @@
                               https_server_expired_,
                               &top_frame_path));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(top_frame_path));
 
@@ -1387,7 +1398,7 @@
                               https_server_expired_,
                               &top_frame_path));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   ui_test_utils::NavigateToURL(browser(),
                                https_server_expired_.GetURL(top_frame_path));
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
@@ -1426,7 +1437,7 @@
                               https_server_expired_,
                               &top_frame_path));
 
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   ui_test_utils::NavigateToURL(browser(),
                                test_server()->GetURL(top_frame_path));
   CheckUnauthenticatedState(tab);
@@ -1489,7 +1500,7 @@
                                           &page_with_unsafe_worker_path));
   ui_test_utils::NavigateToURL(browser(), https_server_.GetURL(
       page_with_unsafe_worker_path));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   // Expect Worker not to load insecure content.
   CheckWorkerLoadResult(tab, false);
   // The bad content is filtered, expect the state to be authenticated.
@@ -1504,7 +1515,7 @@
   // the user approves the bad certificate.
   ui_test_utils::NavigateToURL(browser(),
       https_server_expired_.GetURL("files/ssl/blank_page.html"));
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   CheckAuthenticationBrokenState(tab, net::CERT_STATUS_DATE_INVALID, false,
                                  true);  // Interstitial showing
   ProceedThroughInterstitial(tab);
@@ -1539,7 +1550,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(replacement_path));
 
-  CheckAuthenticatedState(chrome::GetActiveWebContents(browser()), false);
+  CheckAuthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents(), false);
 }
 
 // Test that when the browser blocks displaying insecure content (iframes), the
@@ -1558,7 +1570,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(replacement_path));
 
-  CheckAuthenticatedState(chrome::GetActiveWebContents(browser()), false);
+  CheckAuthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents(), false);
 }
 
 
@@ -1578,7 +1591,8 @@
   ui_test_utils::NavigateToURL(browser(),
                                https_server_.GetURL(replacement_path));
 
-  CheckAuthenticatedState(chrome::GetActiveWebContents(browser()), false);
+  CheckAuthenticatedState(
+      browser()->tab_strip_model()->GetActiveWebContents(), false);
 }
 
 // Visit a page and establish a WebSocket connection over bad https with
@@ -1589,7 +1603,7 @@
   ASSERT_TRUE(wss_server_expired_.Start());
 
   // Setup page title observer.
-  WebContents* tab = chrome::GetActiveWebContents(browser());
+  WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents();
   content::TitleWatcher watcher(tab, ASCIIToUTF16("PASS"));
   watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
 
diff --git a/chrome/browser/sync/test/integration/sync_test.cc b/chrome/browser/sync/test/integration/sync_test.cc
index a0e015c..d050886 100644
--- a/chrome/browser/sync/test/integration/sync_test.cc
+++ b/chrome/browser/sync/test/integration/sync_test.cc
@@ -32,7 +32,7 @@
 #include "chrome/browser/sync/test/integration/sync_datatype_helper.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/testing_browser_process.h"
@@ -650,7 +650,8 @@
   std::string path = "chromiumsync/disablenotifications";
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Notifications disabled",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 void SyncTest::DisableNotifications() {
@@ -663,7 +664,8 @@
   std::string path = "chromiumsync/enablenotifications";
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Notifications enabled",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 void SyncTest::EnableNotifications() {
@@ -685,7 +687,8 @@
       syncer::kSyncP2PNotificationChannel + "&data=" + data;
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Notification sent",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 bool SyncTest::ServerSupportsErrorTriggering() const {
@@ -709,7 +712,8 @@
   }
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Migration: 200",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 void SyncTest::TriggerBirthdayError() {
@@ -717,7 +721,8 @@
   std::string path = "chromiumsync/birthdayerror";
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Birthday error",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 void SyncTest::TriggerTransientError() {
@@ -725,7 +730,8 @@
   std::string path = "chromiumsync/transienterror";
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Transient error",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 void SyncTest::TriggerAuthError() {
@@ -809,7 +815,7 @@
 
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   std::string output = UTF16ToASCII(
-      chrome::GetActiveWebContents(browser())->GetTitle());
+      browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
   ASSERT_TRUE(output.find("SetError: 200") != string16::npos);
 }
 
@@ -818,7 +824,8 @@
   std::string path = "chromiumsync/createsyncedbookmarks";
   ui_test_utils::NavigateToURL(browser(), sync_server_.GetURL(path));
   ASSERT_EQ("Synced Bookmarks",
-            UTF16ToASCII(chrome::GetActiveWebContents(browser())->GetTitle()));
+            UTF16ToASCII(browser()->tab_strip_model()->GetActiveWebContents()->
+                GetTitle()));
 }
 
 int SyncTest::NumberOfDefaultSyncItems() const {
diff --git a/chrome/browser/tab_contents/render_view_context_menu_browsertest.cc b/chrome/browser/tab_contents/render_view_context_menu_browsertest.cc
index ea5f0a1..34ed6d7 100644
--- a/chrome/browser/tab_contents/render_view_context_menu_browsertest.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu_browsertest.cc
@@ -12,7 +12,7 @@
 #include "chrome/browser/tab_contents/render_view_context_menu_browsertest_util.h"
 #include "chrome/browser/tab_contents/render_view_context_menu_test_util.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -39,7 +39,8 @@
     params.media_type = WebKit::WebContextMenuData::MediaTypeNone;
     params.unfiltered_link_url = unfiltered_url;
     params.link_url = url;
-    WebContents* web_contents = chrome::GetActiveWebContents(browser());
+    WebContents* web_contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     params.page_url = web_contents->GetController().GetActiveEntry()->GetURL();
 #if defined(OS_MACOSX)
     params.writing_direction_default = 0;
@@ -47,7 +48,7 @@
     params.writing_direction_right_to_left = 0;
 #endif  // OS_MACOSX
     TestRenderViewContextMenu* menu = new TestRenderViewContextMenu(
-        chrome::GetActiveWebContents(browser()), params);
+        browser()->tab_strip_model()->GetActiveWebContents(), params);
     menu->Init();
     return menu;
   }
@@ -100,7 +101,8 @@
   mouse_event.x = 15;
   mouse_event.y = 15;
   gfx::Rect offset;
-  content::WebContents* tab = chrome::GetActiveWebContents(browser());
+  content::WebContents* tab =
+      browser()->tab_strip_model()->GetActiveWebContents();
   tab->GetView()->GetContainerBounds(&offset);
   mouse_event.globalX = 15 + offset.x();
   mouse_event.globalY = 15 + offset.y();
diff --git a/chrome/browser/task_manager/task_manager_browsertest.cc b/chrome/browser/task_manager/task_manager_browsertest.cc
index 2758317..43e2fd9 100644
--- a/chrome/browser/task_manager/task_manager_browsertest.cc
+++ b/chrome/browser/task_manager/task_manager_browsertest.cc
@@ -23,7 +23,6 @@
 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_navigator.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/panels/panel.h"
 #include "chrome/browser/ui/panels/panel_manager.h"
@@ -473,7 +472,7 @@
   // manager is still visible. Make sure we don't crash and the extension
   // gets reloaded and noticed in the task manager.
   InfoBarService* infobar_service = InfoBarService::FromWebContents(
-      chrome::GetActiveWebContents(browser()));
+      browser()->tab_strip_model()->GetActiveWebContents());
   ASSERT_EQ(1U, infobar_service->GetInfoBarCount());
   ConfirmInfoBarDelegate* delegate = infobar_service->
       GetInfoBarDelegateAt(0)->AsConfirmInfoBarDelegate();
diff --git a/chrome/browser/translate/translate_manager_browsertest.cc b/chrome/browser/translate/translate_manager_browsertest.cc
index 1b63937..0c764b5 100644
--- a/chrome/browser/translate/translate_manager_browsertest.cc
+++ b/chrome/browser/translate/translate_manager_browsertest.cc
@@ -25,7 +25,7 @@
 #include "chrome/browser/translate/translate_prefs.h"
 #include "chrome/browser/translate/translate_tab_helper.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/render_messages.h"
@@ -1511,7 +1511,8 @@
   SessionStartupPref pref(SessionStartupPref::LAST);
   SessionStartupPref::SetStartupPref(browser()->profile(), pref);
 
-  WebContents* current_web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* current_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   TranslateTabHelper* translate_tab_helper =
       TranslateTabHelper::FromWebContents(current_web_contents);
   content::Source<WebContents> source(current_web_contents);
@@ -1537,7 +1538,8 @@
 #define MAYBE_TranslateSessionRestore TranslateSessionRestore
 #endif
 IN_PROC_BROWSER_TEST_F(InProcessBrowserTest, MAYBE_TranslateSessionRestore) {
-  WebContents* current_web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* current_web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   content::Source<WebContents> source(current_web_contents);
 
   ui_test_utils::WindowedNotificationObserverWithDetails<std::string>
diff --git a/chrome/browser/ui/bookmarks/bookmark_prompt_controller_unittest.cc b/chrome/browser/ui/bookmarks/bookmark_prompt_controller_unittest.cc
index 350fe1a..f51b0dbc4 100644
--- a/chrome/browser/ui/bookmarks/bookmark_prompt_controller_unittest.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_prompt_controller_unittest.cc
@@ -9,8 +9,9 @@
 #include "chrome/browser/bookmarks/bookmark_prompt_prefs.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/prefs/pref_service.h"
+#include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "chrome/test/base/testing_browser_process.h"
 #include "chrome/test/base/test_browser_window.h"
@@ -35,7 +36,7 @@
     // Simulate page loaded.
     ++page_id_;
     content::WebContents* web_contents =
-        chrome::GetActiveWebContents(browser());
+        browser()->tab_strip_model()->GetActiveWebContents();
     content::NotificationService::current()->Notify(
         content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME,
         content::Source<content::WebContents>(web_contents),
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm b/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
index 609f172..5800a80 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
@@ -10,7 +10,6 @@
 #include "chrome/browser/api/infobars/confirm_infobar_delegate.h"
 #include "chrome/browser/api/infobars/infobar_service.h"
 #include "chrome/browser/browser_process.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/ui/browser.h"
@@ -24,6 +23,7 @@
 #import "chrome/browser/ui/cocoa/tab_contents/previewable_contents_controller.h"
 #include "chrome/browser/ui/search/search.h"
 #include "chrome/browser/ui/search/search_model.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "content/public/browser/web_contents.h"
 #import "testing/gtest_mac.h"
@@ -128,7 +128,7 @@
 
   void ShowInfoBar() {
     content::WebContents* web_contents =
-        chrome::GetActiveWebContents(browser());
+        browser()->tab_strip_model()->GetActiveWebContents();
     InfoBarService* service =
         InfoBarService::FromWebContents(web_contents);
     info_bar_delegate_.reset(new DummyInfoBar(service));
diff --git a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac_browsertest.mm b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac_browsertest.mm
index bc89850..3176016 100644
--- a/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac_browsertest.mm
+++ b/chrome/browser/ui/cocoa/content_settings/collected_cookies_mac_browsertest.mm
@@ -4,7 +4,8 @@
 
 #import "chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h"
 
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "content/public/test/test_utils.h"
@@ -12,14 +13,15 @@
 typedef InProcessBrowserTest CollectedCookiesMacTest;
 
 IN_PROC_BROWSER_TEST_F(CollectedCookiesMacTest, Close) {
-  content::WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   WebContentsModalDialogManager* web_contents_modal_dialog_manager =
       WebContentsModalDialogManager::FromWebContents(web_contents);
   EXPECT_FALSE(web_contents_modal_dialog_manager->IsShowingDialog());
 
   // Deletes itself.
-  CollectedCookiesMac* dialog =
-      new CollectedCookiesMac(chrome::GetActiveWebContents(browser()));
+  CollectedCookiesMac* dialog = new CollectedCookiesMac(
+      browser()->tab_strip_model()->GetActiveWebContents());
   EXPECT_TRUE(web_contents_modal_dialog_manager->IsShowingDialog());
 
   dialog->PerformClose();
@@ -29,8 +31,8 @@
 
 IN_PROC_BROWSER_TEST_F(CollectedCookiesMacTest, Outlets) {
   // Deletes itself.
-  CollectedCookiesMac* dialog =
-      new CollectedCookiesMac(chrome::GetActiveWebContents(browser()));
+  CollectedCookiesMac* dialog = new CollectedCookiesMac(
+      browser()->tab_strip_model()->GetActiveWebContents());
   CollectedCookiesWindowController* sheet_controller =
       dialog->sheet_controller();
 
diff --git a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu_browsertest.mm b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu_browsertest.mm
index d3c8cf0..214b410 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_action_context_menu_browsertest.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_action_context_menu_browsertest.mm
@@ -16,11 +16,11 @@
 #include "chrome/browser/prefs/pref_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/cocoa/browser_window_cocoa.h"
 #include "chrome/browser/ui/cocoa/browser_window_controller.h"
 #import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h"
 #include "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/extensions/extension.h"
 #include "chrome/common/pref_names.h"
@@ -45,7 +45,8 @@
     action_ = action_manager->GetPageAction(*extension_);
     EXPECT_TRUE(action_);
 
-    content::WebContents* contents = chrome::GetActiveWebContents(browser());
+    content::WebContents* contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     action_->SetAppearance(ExtensionTabUtil::GetTabId(contents),
                            ExtensionAction::ACTIVE);
 
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk.cc b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
index 4aafc40..18b9615 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk.cc
@@ -43,7 +43,6 @@
 #include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h"
 #include "chrome/browser/ui/browser_instant_controller.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
 #include "chrome/browser/ui/content_settings/content_setting_image_model.h"
 #include "chrome/browser/ui/gtk/action_box_button_gtk.h"
@@ -67,6 +66,7 @@
 #include "chrome/browser/ui/omnibox/location_bar_util.h"
 #include "chrome/browser/ui/omnibox/omnibox_edit_model.h"
 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/extensions/extension_info_ui.h"
 #include "chrome/browser/ui/zoom/zoom_controller.h"
 #include "chrome/common/badge_util.h"
@@ -702,7 +702,7 @@
 }
 
 WebContents* LocationBarViewGtk::GetWebContents() const {
-  return chrome::GetActiveWebContents(browser_);
+  return browser_->tab_strip_model()->GetActiveWebContents();
 }
 
 void LocationBarViewGtk::SetPreviewEnabledPageAction(
@@ -1006,7 +1006,7 @@
   }
 
   if (!page_action_views_.empty() && contents) {
-    GURL url = chrome::GetActiveWebContents(browser())->GetURL();
+    GURL url = browser()->tab_strip_model()->GetActiveWebContents()->GetURL();
 
     for (size_t i = 0; i < page_action_views_.size(); i++) {
       page_action_views_[i]->UpdateVisibility(
diff --git a/chrome/browser/ui/gtk/location_bar_view_gtk_browsertest.cc b/chrome/browser/ui/gtk/location_bar_view_gtk_browsertest.cc
index 19226fe..770f56e 100644
--- a/chrome/browser/ui/gtk/location_bar_view_gtk_browsertest.cc
+++ b/chrome/browser/ui/gtk/location_bar_view_gtk_browsertest.cc
@@ -7,12 +7,12 @@
 #include "base/string_number_conversions.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/gtk/browser_toolbar_gtk.h"
 #include "chrome/browser/ui/gtk/browser_window_gtk.h"
 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h"
 #include "chrome/browser/ui/gtk/view_id_util.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/zoom/zoom_controller.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -56,7 +56,8 @@
     gchar* text = gtk_widget_get_tooltip_text(GetZoomWidget());
     std::string tooltip(text);
     g_free(text);
-    content::WebContents* contents = chrome::GetActiveWebContents(browser());
+    content::WebContents* contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     std::string zoom_percent = base::IntToString(GetZoomPercent(contents));
     EXPECT_FALSE(tooltip.find(zoom_percent) == std::string::npos);
   }
@@ -67,7 +68,8 @@
 
   void ExpectIconIsResource(int resource_id) {
     // TODO(dbeam): actually compare the image bits with gfx::test::IsEqual?
-    content::WebContents* contents = chrome::GetActiveWebContents(browser());
+    content::WebContents* contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ZoomController* zoom_controller = ZoomController::FromWebContents(contents);
     EXPECT_EQ(resource_id, zoom_controller->GetResourceForZoomLevel());
   }
@@ -77,7 +79,8 @@
   }
 
   content::WebContents* SetUpTest() {
-    content::WebContents* contents = chrome::GetActiveWebContents(browser());
+    content::WebContents* contents =
+        browser()->tab_strip_model()->GetActiveWebContents();
     ResetZoom();
     ExpectAtDefaultZoom(contents);
     return contents;
diff --git a/chrome/browser/ui/login/login_prompt_browsertest.cc b/chrome/browser/ui/login/login_prompt_browsertest.cc
index 410ea94..9e5d455d 100644
--- a/chrome/browser/ui/login/login_prompt_browsertest.cc
+++ b/chrome/browser/ui/login/login_prompt_browsertest.cc
@@ -10,8 +10,8 @@
 #include "chrome/browser/prerender/prerender_manager.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
 #include "chrome/browser/ui/login/login_prompt.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/ui_test_utils.h"
@@ -254,7 +254,8 @@
     prerender::PrerenderManager::PrerenderManagerMode old_mode_;
   } set_prefetch_for_test(true);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -275,7 +276,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL test_page = test_server()->GetURL(kAuthBasicPage);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -322,7 +324,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL test_page = test_server()->GetURL(kAuthDigestPage);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -369,7 +372,8 @@
 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestTwoAuths) {
   ASSERT_TRUE(test_server()->Start());
 
-  content::WebContents* contents1 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents1 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller1 = &contents1->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -382,7 +386,8 @@
       NEW_FOREGROUND_TAB,
       ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
 
-  content::WebContents* contents2 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents2 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_NE(contents1, contents2);
   NavigationController* controller2 = &contents2->GetController();
   observer.Register(content::Source<NavigationController>(controller2));
@@ -430,7 +435,8 @@
   GURL no_auth_page_2 = test_server()->GetURL("b");
   GURL no_auth_page_3 = test_server()->GetURL("c");
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
 
   LoginPromptBrowserTestObserver observer;
@@ -527,7 +533,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL test_page = test_server()->GetURL(kMultiRealmTestPage);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -577,7 +584,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL test_page = test_server()->GetURL(kMultiRealmTestPage);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -627,7 +635,8 @@
   ASSERT_TRUE(test_server()->Start());
   GURL test_page = test_server()->GetURL(kSingleRealmTestPage);
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -696,7 +705,8 @@
 
   ASSERT_TRUE(test_server()->Start());
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
 
@@ -751,7 +761,8 @@
   host_resolver()->AddRule("www.b.com", "127.0.0.1");
   ASSERT_TRUE(test_server()->Start());
 
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
   LoginPromptBrowserTestObserver observer;
   observer.Register(content::Source<NavigationController>(controller));
@@ -816,7 +827,8 @@
   ASSERT_TRUE(test_server()->Start());
 
   // Get NavigationController for tab 1.
-  content::WebContents* contents_1 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents_1 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller_1 = &contents_1->GetController();
 
   // Open a new tab.
@@ -827,7 +839,8 @@
       ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
 
   // Get NavigationController for tab 2.
-  content::WebContents* contents_2 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents_2 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_NE(contents_1, contents_2);
   NavigationController* controller_2 = &contents_2->GetController();
 
@@ -878,7 +891,8 @@
   ASSERT_TRUE(test_server()->Start());
 
   // Get NavigationController for tab 1.
-  content::WebContents* contents_1 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents_1 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller_1 = &contents_1->GetController();
 
   // Open a new tab.
@@ -889,7 +903,8 @@
       ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB);
 
   // Get NavigationController for tab 2.
-  content::WebContents* contents_2 = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents_2 =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_NE(contents_1, contents_2);
   NavigationController* controller_2 = &contents_2->GetController();
 
@@ -941,7 +956,8 @@
   ASSERT_TRUE(test_server()->Start());
 
   // Get NavigationController for regular tab.
-  content::WebContents* contents = chrome::GetActiveWebContents(browser());
+  content::WebContents* contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   NavigationController* controller = &contents->GetController();
 
   // Open an incognito window.
@@ -949,7 +965,7 @@
 
   // Get NavigationController for incognito tab.
   content::WebContents* contents_incognito =
-      chrome::GetActiveWebContents(browser_incognito);
+      browser_incognito->tab_strip_model()->GetActiveWebContents();
   ASSERT_NE(contents, contents_incognito);
   NavigationController* controller_incognito =
       &contents_incognito->GetController();
diff --git a/chrome/browser/ui/tab_modal_confirm_dialog_browsertest.cc b/chrome/browser/ui/tab_modal_confirm_dialog_browsertest.cc
index b12d6ce..4f803877 100644
--- a/chrome/browser/ui/tab_modal_confirm_dialog_browsertest.cc
+++ b/chrome/browser/ui/tab_modal_confirm_dialog_browsertest.cc
@@ -9,7 +9,7 @@
 #include "chrome/browser/lifetime/application_lifetime.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_dialogs.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/test/base/ui_test_utils.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -50,9 +50,9 @@
 
 void TabModalConfirmDialogTest::SetUpOnMainThread() {
   delegate_ = new MockTabModalConfirmDialogDelegate(
-      chrome::GetActiveWebContents(browser()), this);
+      browser()->tab_strip_model()->GetActiveWebContents(), this);
   dialog_ = TabModalConfirmDialog::Create(
-      delegate_, chrome::GetActiveWebContents(browser()));
+      delegate_, browser()->tab_strip_model()->GetActiveWebContents());
   content::RunAllPendingInMessageLoop();
 }
 
diff --git a/chrome/browser/ui/views/web_dialog_view_browsertest.cc b/chrome/browser/ui/views/web_dialog_view_browsertest.cc
index 90af902..9b72c9e 100644
--- a/chrome/browser/ui/views/web_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/web_dialog_view_browsertest.cc
@@ -10,7 +10,7 @@
 #include "base/utf_string_conversions.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
 #include "chrome/common/url_constants.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -103,7 +103,8 @@
 
   TestWebDialogView* view =
       new TestWebDialogView(browser()->profile(), delegate);
-  WebContents* web_contents = chrome::GetActiveWebContents(browser());
+  WebContents* web_contents =
+      browser()->tab_strip_model()->GetActiveWebContents();
   ASSERT_TRUE(web_contents != NULL);
   views::Widget::CreateWindowWithParent(
       view, web_contents->GetView()->GetTopLevelNativeWindow());
diff --git a/chrome/browser/unload_browsertest.cc b/chrome/browser/unload_browsertest.cc
index 7ace9646..19e1c61f 100644
--- a/chrome/browser/unload_browsertest.cc
+++ b/chrome/browser/unload_browsertest.cc
@@ -16,7 +16,7 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_tabstrip.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/common/chrome_notification_types.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/test/base/in_process_browser_test.h"
@@ -130,7 +130,8 @@
 
   void CheckTitle(const char* expected_title) {
     string16 expected = ASCIIToUTF16(expected_title);
-    EXPECT_EQ(expected, chrome::GetActiveWebContents(browser())->GetTitle());
+    EXPECT_EQ(expected,
+              browser()->tab_strip_model()->GetActiveWebContents()->GetTitle());
   }
 
   void NavigateToDataURL(const std::string& html_content,
@@ -279,7 +280,7 @@
   // the renderer.
   string16 expected_title = ASCIIToUTF16("cancelled");
   content::TitleWatcher title_watcher(
-      chrome::GetActiveWebContents(browser()), expected_title);
+      browser()->tab_strip_model()->GetActiveWebContents(), expected_title);
   ClickModalDialogButton(false);
   ASSERT_EQ(expected_title, title_watcher.WaitAndGetTitle());
 
@@ -395,7 +396,8 @@
   content::WindowedNotificationObserver load_stop_observer(
       content::NOTIFICATION_LOAD_STOP,
       content::NotificationService::AllSources());
-  content::SimulateMouseClick(chrome::GetActiveWebContents(browser()), 0,
+  content::SimulateMouseClick(
+      browser()->tab_strip_model()->GetActiveWebContents(), 0,
       WebKit::WebMouseEvent::ButtonLeft);
   observer.Wait();
   load_stop_observer.Wait();