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

Side by Side Diff: chrome/browser/profiles/profile_dependency_manager.h

Issue 7285014: [wip] Profile: Sketch of a creation system. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase to retrybot Created 9 years, 5 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
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_ 5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_
6 #define CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_ 6 #define CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 13 matching lines...) Expand all
24 public: 24 public:
25 // Adds/Removes a component from our list of live components. Removing will 25 // Adds/Removes a component from our list of live components. Removing will
26 // also remove live dependency links. 26 // also remove live dependency links.
27 void AddComponent(ProfileKeyedServiceFactory* component); 27 void AddComponent(ProfileKeyedServiceFactory* component);
28 void RemoveComponent(ProfileKeyedServiceFactory* component); 28 void RemoveComponent(ProfileKeyedServiceFactory* component);
29 29
30 // Adds a dependency between two factories. 30 // Adds a dependency between two factories.
31 void AddEdge(ProfileKeyedServiceFactory* depended, 31 void AddEdge(ProfileKeyedServiceFactory* depended,
32 ProfileKeyedServiceFactory* dependee); 32 ProfileKeyedServiceFactory* dependee);
33 33
34 // Called by each Profile to alert us of its creation. Several services want
35 // to be started when a profile is created. Testing configuration is also
36 // done at this time. (If you want your ProfileKeyedService to be started
37 // with the Profile, override ProfileKeyedServiceFactory::
38 // ServiceIsCreatedWithProfile() to return true.)
39 void CreateProfileServices(Profile* profile, bool is_testing_profile);
40
34 // Called by each Profile to alert us that we should destroy services 41 // Called by each Profile to alert us that we should destroy services
35 // associated with it. 42 // associated with it.
36 // 43 //
37 // Why not use the existing PROFILE_DESTROYED notification? 44 // Why not use the existing PROFILE_DESTROYED notification?
38 // 45 //
39 // - Because we need to do everything here after the application has handled 46 // - Because we need to do everything here after the application has handled
40 // being notified about PROFILE_DESTROYED. 47 // being notified about PROFILE_DESTROYED.
41 // - Because this class is a singleton and Singletons can't rely on 48 // - Because this class is a singleton and Singletons can't rely on
42 // NotificationService in unit tests because NotificationService is 49 // NotificationService in unit tests because NotificationService is
43 // replaced in many tests. 50 // replaced in many tests.
44 void DestroyProfileServices(Profile* profile); 51 void DestroyProfileServices(Profile* profile);
45 52
46 #ifndef NDEBUG 53 #ifndef NDEBUG
47 // Unmark |profile| as dead. This exists because of unit tests, which will
48 // often have similar stack structures. 0xWhatever might be created, go out
49 // of scope, and then a new Profile object might be created at 0xWhatever.
50 void ProfileNowExists(Profile* profile);
51
52 // Debugging assertion called as part of GetServiceForProfile in debug 54 // Debugging assertion called as part of GetServiceForProfile in debug
53 // mode. This will NOTREACHED() whenever the user is trying to access a stale 55 // mode. This will NOTREACHED() whenever the user is trying to access a stale
54 // Profile*. 56 // Profile*.
55 void AssertProfileWasntDestroyed(Profile* profile); 57 void AssertProfileWasntDestroyed(Profile* profile);
56 #endif 58 #endif
57 59
58 static ProfileDependencyManager* GetInstance(); 60 static ProfileDependencyManager* GetInstance();
59 61
60 private: 62 private:
61 friend class ProfileDependencyManagerUnittests; 63 friend class ProfileDependencyManagerUnittests;
(...skipping 18 matching lines...) Expand all
80 #ifndef NDEBUG 82 #ifndef NDEBUG
81 // A list of profile objects that have gone through the Shutdown() 83 // A list of profile objects that have gone through the Shutdown()
82 // phase. These pointers are most likely invalid, but we keep track of their 84 // phase. These pointers are most likely invalid, but we keep track of their
83 // locations in memory so we can nicely assert if we're asked to do anything 85 // locations in memory so we can nicely assert if we're asked to do anything
84 // with them. 86 // with them.
85 std::set<Profile*> dead_profile_pointers_; 87 std::set<Profile*> dead_profile_pointers_;
86 #endif 88 #endif
87 }; 89 };
88 90
89 #endif // CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_ 91 #endif // CHROME_BROWSER_PROFILES_PROFILE_DEPENDENCY_MANAGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile.cc ('k') | chrome/browser/profiles/profile_dependency_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698