OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/sessions/session_service_factory.h" |
| 6 |
| 7 #include "chrome/browser/profiles/profile_dependency_manager.h" |
| 8 #include "chrome/browser/sessions/session_service.h" |
| 9 |
| 10 // static |
| 11 SessionService* SessionServiceFactory::GetForProfile(Profile* profile) { |
| 12 return static_cast<SessionService*>( |
| 13 GetInstance()->GetServiceForProfile(profile, true)); |
| 14 } |
| 15 |
| 16 // static |
| 17 SessionService* SessionServiceFactory::GetForProfileIfExisting( |
| 18 Profile* profile) { |
| 19 return static_cast<SessionService*>( |
| 20 GetInstance()->GetServiceForProfile(profile, false)); |
| 21 } |
| 22 |
| 23 // static |
| 24 void SessionServiceFactory::ShutdownForProfile(Profile* profile) { |
| 25 // We're about to exit, force creation of the session service if it hasn't |
| 26 // been created yet. We do this to ensure session state matches the point in |
| 27 // time the user exited. |
| 28 SessionServiceFactory* factory = GetInstance(); |
| 29 factory->GetServiceForProfile(profile, true); |
| 30 |
| 31 // Shut down and remove the reference to the session service, and replace it |
| 32 // with an explicit NULL to prevent it being recreated on the next access. |
| 33 factory->ProfileShutdown(profile); |
| 34 factory->ProfileDestroyed(profile); |
| 35 factory->Associate(profile, NULL); |
| 36 } |
| 37 |
| 38 SessionServiceFactory* SessionServiceFactory::GetInstance() { |
| 39 return Singleton<SessionServiceFactory>::get(); |
| 40 } |
| 41 |
| 42 SessionServiceFactory::SessionServiceFactory() |
| 43 : ProfileKeyedServiceFactory( |
| 44 ProfileDependencyManager::GetInstance()) { |
| 45 } |
| 46 |
| 47 SessionServiceFactory::~SessionServiceFactory() { |
| 48 } |
| 49 |
| 50 ProfileKeyedService* SessionServiceFactory::BuildServiceInstanceFor( |
| 51 Profile* profile) const { |
| 52 SessionService* service = NULL; |
| 53 service = new SessionService(profile); |
| 54 service->ResetFromCurrentBrowsers(); |
| 55 return service; |
| 56 } |
OLD | NEW |