| Index: chrome/browser/sessions/tab_restore_service.cc
|
| diff --git a/chrome/browser/sessions/tab_restore_service.cc b/chrome/browser/sessions/tab_restore_service.cc
|
| index 33c3ffc556d39844bd14dcb57ed9df05482e48a4..634a09dbc9855fbbf4ce6661f6670ed7c226231c 100644
|
| --- a/chrome/browser/sessions/tab_restore_service.cc
|
| +++ b/chrome/browser/sessions/tab_restore_service.cc
|
| @@ -12,7 +12,6 @@
|
| #include "base/metrics/histogram.h"
|
| #include "base/scoped_vector.h"
|
| #include "base/stl_util-inl.h"
|
| -#include "chrome/browser/browser_list.h"
|
| #include "chrome/browser/browser_window.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -20,7 +19,6 @@
|
| #include "chrome/browser/sessions/session_command.h"
|
| #include "chrome/browser/sessions/session_types.h"
|
| #include "chrome/browser/sessions/tab_restore_service_observer.h"
|
| -#include "chrome/browser/tabs/tab_strip_model.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "content/browser/tab_contents/navigation_controller.h"
|
| @@ -152,7 +150,8 @@ void RemoveEntryByID(SessionID::id_type id,
|
| }
|
| }
|
|
|
| -void RecordAppLaunch(Browser* browser, const TabRestoreService::Tab& tab) {
|
| +void RecordAppLaunch(TabRestoreServiceDelegate* browser,
|
| + const TabRestoreService::Tab& tab) {
|
| GURL url = tab.navigations.at(tab.current_navigation_index).virtual_url();
|
| Profile* profile = browser->profile();
|
| DCHECK(profile->GetExtensionService());
|
| @@ -218,7 +217,8 @@ void TabRestoreService::CreateHistoricalTab(NavigationController* tab) {
|
| if (restoring_)
|
| return;
|
|
|
| - Browser* browser = Browser::GetBrowserForController(tab, NULL);
|
| + TabRestoreServiceDelegate* browser =
|
| + TabRestoreServiceDelegate::GetBrowserForController(tab, NULL);
|
| if (closing_browsers_.find(browser) != closing_browsers_.end())
|
| return;
|
|
|
| @@ -230,9 +230,8 @@ void TabRestoreService::CreateHistoricalTab(NavigationController* tab) {
|
| AddEntry(local_tab.release(), true, true);
|
| }
|
|
|
| -void TabRestoreService::BrowserClosing(Browser* browser) {
|
| - if (browser->type() != Browser::TYPE_NORMAL ||
|
| - browser->tab_count() == 0)
|
| +void TabRestoreService::BrowserClosing(TabRestoreServiceDelegate* browser) {
|
| + if (!browser->IsNormalBrowser() || browser->tab_count() == 0)
|
| return;
|
|
|
| closing_browsers_.insert(browser);
|
| @@ -270,7 +269,7 @@ void TabRestoreService::BrowserClosing(Browser* browser) {
|
| }
|
| }
|
|
|
| -void TabRestoreService::BrowserClosed(Browser* browser) {
|
| +void TabRestoreService::BrowserClosed(TabRestoreServiceDelegate* browser) {
|
| closing_browsers_.erase(browser);
|
| }
|
|
|
| @@ -296,14 +295,15 @@ const TabRestoreService::Entries& TabRestoreService::entries() const {
|
| return entries_;
|
| }
|
|
|
| -void TabRestoreService::RestoreMostRecentEntry(Browser* browser) {
|
| +void TabRestoreService::RestoreMostRecentEntry(
|
| + TabRestoreServiceDelegate* browser) {
|
| if (entries_.empty())
|
| return;
|
|
|
| RestoreEntryById(browser, entries_.front()->id, false);
|
| }
|
|
|
| -void TabRestoreService::RestoreEntryById(Browser* browser,
|
| +void TabRestoreService::RestoreEntryById(TabRestoreServiceDelegate* browser,
|
| SessionID::id_type id,
|
| bool replace_existing_tab) {
|
| Entries::iterator i = GetEntryIteratorById(id);
|
| @@ -340,14 +340,14 @@ void TabRestoreService::RestoreEntryById(Browser* browser,
|
| browser = RestoreTab(*tab, browser, replace_existing_tab);
|
| browser->window()->Show();
|
| } else if (entry->type == WINDOW) {
|
| - Browser* current_browser = browser;
|
| + TabRestoreServiceDelegate* current_browser = browser;
|
| Window* window = static_cast<Window*>(entry);
|
|
|
| // When restoring a window, either the entire window can be restored, or a
|
| // single tab within it. If the entry's ID matches the one to restore, then
|
| // the entire window will be restored.
|
| if (!restoring_tab_in_window) {
|
| - browser = Browser::Create(profile());
|
| + browser = TabRestoreServiceDelegate::Create(profile());
|
| for (size_t tab_i = 0; tab_i < window->tabs.size(); ++tab_i) {
|
| const Tab& tab = window->tabs[tab_i];
|
| TabContents* restored_tab =
|
| @@ -476,7 +476,7 @@ void TabRestoreService::Save() {
|
| }
|
|
|
| void TabRestoreService::PopulateTab(Tab* tab,
|
| - Browser* browser,
|
| + TabRestoreServiceDelegate* browser,
|
| NavigationController* controller) {
|
| const int pending_index = controller->pending_entry_index();
|
| int entry_count = controller->entry_count();
|
| @@ -502,9 +502,8 @@ void TabRestoreService::PopulateTab(Tab* tab,
|
| // Browser may be NULL during unit tests.
|
| if (browser) {
|
| tab->browser_id = browser->session_id().id();
|
| - tab->tabstrip_index =
|
| - browser->tabstrip_model()->GetIndexOfController(controller);
|
| - tab->pinned = browser->tabstrip_model()->IsTabPinned(tab->tabstrip_index);
|
| + tab->tabstrip_index = browser->GetIndexOfController(controller);
|
| + tab->pinned = browser->IsTabPinned(tab->tabstrip_index);
|
| }
|
| }
|
|
|
| @@ -879,9 +878,9 @@ void TabRestoreService::CreateEntriesFromCommands(
|
| loaded_entries->swap(entries.get());
|
| }
|
|
|
| -Browser* TabRestoreService::RestoreTab(const Tab& tab,
|
| - Browser* browser,
|
| - bool replace_existing_tab) {
|
| +TabRestoreServiceDelegate* TabRestoreService::RestoreTab(const Tab& tab,
|
| + TabRestoreServiceDelegate* browser,
|
| + bool replace_existing_tab) {
|
| // |browser| will be NULL in cases where one isn't already available (eg,
|
| // when invoked on Mac OS X with no windows open). In this case, create a
|
| // new browser into which we restore the tabs.
|
| @@ -893,13 +892,13 @@ Browser* TabRestoreService::RestoreTab(const Tab& tab,
|
| tab.session_storage_namespace);
|
| } else {
|
| if (tab.has_browser())
|
| - browser = BrowserList::FindBrowserWithID(tab.browser_id);
|
| + browser = TabRestoreServiceDelegate::FindBrowserWithID(tab.browser_id);
|
|
|
| int tab_index = -1;
|
| if (browser) {
|
| tab_index = tab.tabstrip_index;
|
| } else {
|
| - browser = Browser::Create(profile());
|
| + browser = TabRestoreServiceDelegate::Create(profile());
|
| if (tab.has_browser()) {
|
| UpdateTabBrowserIDs(tab.browser_id, browser->session_id().id());
|
| }
|
|
|