diff options
author | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-16 08:07:42 +0000 |
---|---|---|
committer | yoz@chromium.org <yoz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-16 08:07:42 +0000 |
commit | 836e29803eb5904c781a5ed752b615aeb51ff443 (patch) | |
tree | 6935b9eb9c4768ee47cc3338395ced4d06b48236 /chrome/browser/extensions/test_extension_system.cc | |
parent | 5f09747ae60598b164c8b4c6786619141012e769 (diff) | |
download | chromium_src-836e29803eb5904c781a5ed752b615aeb51ff443.zip chromium_src-836e29803eb5904c781a5ed752b615aeb51ff443.tar.gz chromium_src-836e29803eb5904c781a5ed752b615aeb51ff443.tar.bz2 |
Reland 200220 - Make ExtensionPrefs a ProfileKeyedService.
Since last time: Fixes leaks in TestExtensionSystem.
BUG=178218
TBR=asargent@chromium.org,thestig@chromium.org,rlp@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15111003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200490 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/test_extension_system.cc')
-rw-r--r-- | chrome/browser/extensions/test_extension_system.cc | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/chrome/browser/extensions/test_extension_system.cc b/chrome/browser/extensions/test_extension_system.cc index f1641e0..fcb55d6 100644 --- a/chrome/browser/extensions/test_extension_system.cc +++ b/chrome/browser/extensions/test_extension_system.cc @@ -11,6 +11,8 @@ #include "chrome/browser/extensions/extension_info_map.h" #include "chrome/browser/extensions/extension_pref_value_map.h" #include "chrome/browser/extensions/extension_pref_value_map_factory.h" +#include "chrome/browser/extensions/extension_prefs.h" +#include "chrome/browser/extensions/extension_prefs_factory.h" #include "chrome/browser/extensions/extension_process_manager.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_system.h" @@ -62,37 +64,40 @@ ExtensionPrefs* TestExtensionSystem::CreateExtensionPrefs( command_line && command_line->HasSwitch(switches::kDisableExtensions); // Note that the GetPrefs() creates a TestingPrefService, therefore - // the extension controlled pref values set in extension_prefs_ + // the extension controlled pref values set in ExtensionPrefs // are not reflected in the pref service. One would need to // inject a new ExtensionPrefStore(extension_pref_value_map, false). - extension_prefs_ = ExtensionPrefs::Create( + ExtensionPrefs* extension_prefs = ExtensionPrefs::Create( profile_->GetPrefs(), install_directory, ExtensionPrefValueMapFactory::GetForProfile(profile_), extensions_disabled); - return extension_prefs_.get(); + ExtensionPrefsFactory::GetInstance()->SetInstanceForTesting( + profile_, + extension_prefs); + return extension_prefs; } ExtensionService* TestExtensionSystem::CreateExtensionService( const CommandLine* command_line, const base::FilePath& install_directory, bool autoupdate_enabled) { - if (!extension_prefs_) + if (!ExtensionPrefs::Get(profile_)) CreateExtensionPrefs(command_line, install_directory); state_store_.reset(new StateStore(profile_, new TestingValueStore())); shell_window_geometry_cache_.reset( - new ShellWindowGeometryCache(profile_, extension_prefs_.get())); - blacklist_.reset(new Blacklist(extension_prefs_.get())); + new ShellWindowGeometryCache(profile_, ExtensionPrefs::Get(profile_))); + blacklist_.reset(new Blacklist(ExtensionPrefs::Get(profile_))); standard_management_policy_provider_.reset( - new StandardManagementPolicyProvider(extension_prefs_.get())); + new StandardManagementPolicyProvider(ExtensionPrefs::Get(profile_))); management_policy_.reset(new ManagementPolicy()); management_policy_->RegisterProvider( standard_management_policy_provider_.get()); extension_service_.reset(new ExtensionService(profile_, command_line, install_directory, - extension_prefs_.get(), + ExtensionPrefs::Get(profile_), blacklist_.get(), autoupdate_enabled, true)); @@ -128,10 +133,6 @@ StateStore* TestExtensionSystem::rules_store() { return state_store_.get(); } -ExtensionPrefs* TestExtensionSystem::extension_prefs() { - return extension_prefs_.get(); -} - ShellWindowGeometryCache* TestExtensionSystem::shell_window_geometry_cache() { return shell_window_geometry_cache_.get(); } |