Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(758)

Unified Diff: chrome/browser/sessions/tab_restore_service.cc

Issue 6660028: Decouple TabRestoreService from Browser (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698