| Index: chrome/browser/extensions/extensions_service.cc
|
| diff --git a/chrome/browser/extensions/extensions_service.cc b/chrome/browser/extensions/extensions_service.cc
|
| index e2e6342c4eae061db991e5818610034fd54899ea..017890ff28583135d77a27337d9199cd90077784 100644
|
| --- a/chrome/browser/extensions/extensions_service.cc
|
| +++ b/chrome/browser/extensions/extensions_service.cc
|
| @@ -528,11 +528,11 @@ bool ExtensionsService::IsDownloadFromMiniGallery(const GURL& download_url) {
|
|
|
| ExtensionsService::ExtensionsService(Profile* profile,
|
| const CommandLine* command_line,
|
| - PrefService* prefs,
|
| const FilePath& install_directory,
|
| bool autoupdate_enabled)
|
| : profile_(profile),
|
| - extension_prefs_(new ExtensionPrefs(prefs, install_directory)),
|
| + extension_prefs_(new ExtensionPrefs(profile->GetPrefs(),
|
| + install_directory)),
|
| install_directory_(install_directory),
|
| extensions_enabled_(true),
|
| show_extensions_prompts_(true),
|
| @@ -547,8 +547,9 @@ ExtensionsService::ExtensionsService(Profile* profile,
|
|
|
| registrar_.Add(this, NotificationType::EXTENSION_PROCESS_TERMINATED,
|
| NotificationService::AllSources());
|
| - prefs->AddPrefObserver(prefs::kExtensionInstallAllowList, this);
|
| - prefs->AddPrefObserver(prefs::kExtensionInstallDenyList, this);
|
| + pref_change_registrar_.Init(profile->GetPrefs());
|
| + pref_change_registrar_.Add(prefs::kExtensionInstallAllowList, this);
|
| + pref_change_registrar_.Add(prefs::kExtensionInstallDenyList, this);
|
|
|
| // Set up the ExtensionUpdater
|
| if (autoupdate_enabled) {
|
| @@ -558,7 +559,9 @@ ExtensionsService::ExtensionsService(Profile* profile,
|
| switches::kExtensionsUpdateFrequency),
|
| &update_frequency);
|
| }
|
| - updater_ = new ExtensionUpdater(this, prefs, update_frequency);
|
| + updater_ = new ExtensionUpdater(this,
|
| + profile->GetPrefs(),
|
| + update_frequency);
|
| }
|
|
|
| backend_ = new ExtensionsServiceBackend(install_directory_,
|
| @@ -572,6 +575,7 @@ ExtensionsService::ExtensionsService(Profile* profile,
|
| }
|
|
|
| ExtensionsService::~ExtensionsService() {
|
| + DCHECK(!profile_); // Profile should have told us it's going away.
|
| UnloadAllExtensions();
|
| if (updater_.get()) {
|
| updater_->Stop();
|
| @@ -1186,12 +1190,9 @@ void ExtensionsService::UpdateExtensionBlacklist(
|
| }
|
|
|
| void ExtensionsService::DestroyingProfile() {
|
| - profile_->GetPrefs()->RemovePrefObserver(
|
| - prefs::kExtensionInstallAllowList, this);
|
| - profile_->GetPrefs()->RemovePrefObserver(
|
| - prefs::kExtensionInstallDenyList, this);
|
| -
|
| + pref_change_registrar_.RemoveAll();
|
| profile_ = NULL;
|
| + toolbar_model_.DestroyingProfile();
|
| }
|
|
|
| void ExtensionsService::CheckAdminBlacklist() {
|
|
|