Index: chrome/browser/profile_impl.h |
diff --git a/chrome/browser/profile_impl.h b/chrome/browser/profile_impl.h |
index 83a4b935f47f43f64f138d12788c7e94b8b3095e..aa420e7ec838e0c9f2fb18ef430208974bcbc93a 100644 |
--- a/chrome/browser/profile_impl.h |
+++ b/chrome/browser/profile_impl.h |
@@ -18,7 +18,9 @@ |
#include "chrome/common/notification_observer.h" |
#include "chrome/common/notification_registrar.h" |
+class ExtensionPrefs; |
class PrefService; |
+class PrefStore; |
#if defined(OS_CHROMEOS) |
namespace chromeos { |
@@ -66,6 +68,8 @@ class ProfileImpl : public Profile, |
virtual WebDataService* GetWebDataServiceWithoutCreating(); |
virtual PasswordStore* GetPasswordStore(ServiceAccessType sat); |
virtual PrefService* GetPrefs(); |
+ virtual PrefStore* GetExtensionPrefStore(); |
+ virtual void SetExtensionPrefStore(PrefStore* extension_pref_store); |
virtual TemplateURLModel* GetTemplateURLModel(); |
virtual TemplateURLFetcher* GetTemplateURLFetcher(); |
virtual DownloadManager* GetDownloadManager(); |
@@ -168,8 +172,12 @@ class ProfileImpl : public Profile, |
FilePath path_; |
FilePath base_cache_path_; |
+ scoped_ptr<PrefService> prefs_; // Keep this on top for destruction order |
Aaron Boodman
2010/12/03 08:58:10
Scary comment is scary. What is causing the destru
battre (please use the other)
2010/12/03 19:32:58
Well, this is just playing save. The situation has
Aaron Boodman
2010/12/03 20:00:44
Sorry, I still don't understand. Can you clarify w
battre (please use the other)
2010/12/06 10:28:50
Maybe this comment is clearer:
// Keep prefs_ on
Aaron Boodman
2010/12/06 18:20:56
I talked to a few people in this office about this
Mattias Nissler (ping if slow)
2010/12/06 19:29:50
I agree that relying on implicit destruction order
|
+ // because many other class members depend |
+ // on it. |
scoped_ptr<VisitedLinkEventListener> visited_link_event_listener_; |
scoped_ptr<VisitedLinkMaster> visited_link_master_; |
+ scoped_ptr<ExtensionPrefs> extension_prefs_; |
scoped_refptr<ExtensionsService> extensions_service_; |
scoped_refptr<UserScriptMaster> user_script_master_; |
scoped_refptr<ExtensionDevToolsManager> extension_devtools_manager_; |
@@ -182,7 +190,6 @@ class ProfileImpl : public Profile, |
scoped_refptr<TransportSecurityPersister> |
transport_security_persister_; |
scoped_ptr<policy::ProfilePolicyContext> profile_policy_context_; |
- scoped_ptr<PrefService> prefs_; |
scoped_ptr<NetPrefObserver> net_pref_observer_; |
scoped_ptr<TemplateURLFetcher> template_url_fetcher_; |
scoped_ptr<TemplateURLModel> template_url_model_; |
@@ -276,6 +283,10 @@ class ProfileImpl : public Profile, |
scoped_refptr<ExtensionInfoMap> extension_info_map_; |
+ // weak pointer to ExtensionPrefStore that stores effective extension |
+ // controlled preferences. |
+ PrefStore* extension_pref_store_; |
+ |
#if defined(OS_CHROMEOS) |
scoped_ptr<chromeos::Preferences> chromeos_preferences_; |