Index: chrome/browser/sessions/tab_restore_service_factory.cc |
diff --git a/chrome/browser/sessions/tab_restore_service_factory.cc b/chrome/browser/sessions/tab_restore_service_factory.cc |
index 3c457ed9809b9c4500abec38f5dee5fa0a4336bc..a0d5db400d9353f16cf4023697bbf0c1584fda28 100644 |
--- a/chrome/browser/sessions/tab_restore_service_factory.cc |
+++ b/chrome/browser/sessions/tab_restore_service_factory.cc |
@@ -5,9 +5,15 @@ |
#include "chrome/browser/sessions/tab_restore_service_factory.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/sessions/tab_restore_service.h" |
+#include "chrome/browser/sessions/chrome_tab_restore_service_client.h" |
#include "components/keyed_service/content/browser_context_dependency_manager.h" |
+#if defined(OS_ANDROID) |
+#include "chrome/browser/sessions/in_memory_tab_restore_service.h" |
+#else |
+#include "chrome/browser/sessions/persistent_tab_restore_service.h" |
+#endif |
+ |
// static |
TabRestoreService* TabRestoreServiceFactory::GetForProfile(Profile* profile) { |
return static_cast<TabRestoreService*>( |
@@ -44,3 +50,16 @@ TabRestoreServiceFactory::~TabRestoreServiceFactory() { |
bool TabRestoreServiceFactory::ServiceIsNULLWhileTesting() const { |
return true; |
} |
+ |
+KeyedService* TabRestoreServiceFactory::BuildServiceInstanceFor( |
+ content::BrowserContext* browser_context) const { |
+ Profile* profile = Profile::FromBrowserContext(browser_context); |
+ scoped_ptr<sessions::TabRestoreServiceClient> client( |
+ new ChromeTabRestoreServiceClient(profile)); |
+ |
+#if defined(OS_ANDROID) |
+ return new InMemoryTabRestoreService(profile, nullptr); |
+#else |
+ return new PersistentTabRestoreService(profile, client.Pass(), nullptr); |
+#endif |
+} |