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

Side by Side Diff: chrome/browser/sessions/session_service_factory.cc

Issue 6901031: Profile shouldn't own Session/TabRestore services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix mac build Created 9 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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
sky 2011/04/27 15:58:28 nit: nuke this line.
56 return service;
57 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698