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

Unified Diff: extensions/browser/extension_prefs.cc

Issue 220353002: Remove //chrome dependency from ExtensionPrefs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: extensions/browser/extension_prefs.cc
diff --git a/extensions/browser/extension_prefs.cc b/extensions/browser/extension_prefs.cc
index 24f7e5831ba809aba5fac2d5fb2aea243ecfef5e..5d779d270e01ac31a2342cfda51f97168f53d08b 100644
--- a/extensions/browser/extension_prefs.cc
+++ b/extensions/browser/extension_prefs.cc
@@ -12,7 +12,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/value_conversions.h"
-#include "chrome/browser/extensions/api/content_settings/content_settings_store.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "extensions/browser/admin_policy.h"
#include "extensions/browser/app_sorting.h"
@@ -258,53 +257,6 @@ void LoadExtensionControlledPrefs(ExtensionPrefs* prefs,
}
}
-void InitExtensionControlledPrefs(ExtensionPrefs* prefs,
- ExtensionPrefValueMap* value_map) {
- ExtensionIdList extension_ids;
- prefs->GetExtensions(&extension_ids);
-
- for (ExtensionIdList::iterator extension_id = extension_ids.begin();
- extension_id != extension_ids.end();
- ++extension_id) {
- base::Time install_time = prefs->GetInstallTime(*extension_id);
- bool is_enabled = !prefs->IsExtensionDisabled(*extension_id);
- bool is_incognito_enabled = prefs->IsIncognitoEnabled(*extension_id);
- value_map->RegisterExtension(
- *extension_id, install_time, is_enabled, is_incognito_enabled);
- prefs->content_settings_store()->RegisterExtension(
- *extension_id, install_time, is_enabled);
-
- // Set regular extension controlled prefs.
- LoadExtensionControlledPrefs(
- prefs, value_map, *extension_id, kExtensionPrefsScopeRegular);
- // Set incognito extension controlled prefs.
- LoadExtensionControlledPrefs(prefs,
- value_map,
- *extension_id,
- kExtensionPrefsScopeIncognitoPersistent);
- // Set regular-only extension controlled prefs.
- LoadExtensionControlledPrefs(
- prefs, value_map, *extension_id, kExtensionPrefsScopeRegularOnly);
-
- // Set content settings.
- const base::ListValue* content_settings = NULL;
- if (prefs->ReadPrefAsList(*extension_id,
- pref_names::kPrefContentSettings,
- &content_settings)) {
- prefs->content_settings_store()->SetExtensionContentSettingFromList(
- *extension_id, content_settings, kExtensionPrefsScopeRegular);
- }
- if (prefs->ReadPrefAsList(*extension_id,
- pref_names::kPrefIncognitoContentSettings,
- &content_settings)) {
- prefs->content_settings_store()->SetExtensionContentSettingFromList(
- *extension_id,
- content_settings,
- kExtensionPrefsScopeIncognitoPersistent);
- }
- }
-}
-
} // namespace
//
@@ -510,7 +462,8 @@ void ExtensionPrefs::UpdateExtensionPref(const std::string& extension_id,
void ExtensionPrefs::DeleteExtensionPrefs(const std::string& extension_id) {
extension_pref_value_map_->UnregisterExtension(extension_id);
- content_settings_store_->UnregisterExtension(extension_id);
+ FOR_EACH_OBSERVER(
+ Observer, observer_list_, OnExtensionPrefsDeleted(extension_id));
DictionaryPrefUpdate update(prefs_, pref_names::kExtensions);
base::DictionaryValue* dict = update.Get();
dict->Remove(extension_id, NULL);
@@ -1257,7 +1210,8 @@ void ExtensionPrefs::OnExtensionUninstalled(const std::string& extension_id,
new base::FundamentalValue(
Extension::EXTERNAL_EXTENSION_UNINSTALLED));
extension_pref_value_map_->SetExtensionState(extension_id, false);
- content_settings_store_->SetExtensionState(extension_id, false);
+ FOR_EACH_OBSERVER(
+ Observer, observer_list_, OnExtensionStateChanged(extension_id, false));
} else {
int creation_flags = GetCreationFlags(extension_id);
if (creation_flags & Extension::IS_EPHEMERAL) {
@@ -1276,7 +1230,8 @@ void ExtensionPrefs::SetExtensionState(const std::string& extension_id,
new base::FundamentalValue(state));
bool enabled = (state == Extension::ENABLED);
extension_pref_value_map_->SetExtensionState(extension_id, enabled);
- content_settings_store_->SetExtensionState(extension_id, enabled);
+ FOR_EACH_OBSERVER(
+ Observer, observer_list_, OnExtensionStateChanged(extension_id, enabled));
}
void ExtensionPrefs::SetExtensionBlacklistState(const std::string& extension_id,
@@ -1783,6 +1738,8 @@ void ExtensionPrefs::RemoveObserver(Observer* observer) {
observer_list_.RemoveObserver(observer);
}
+void ExtensionPrefs::Initialize() { InitPrefStore(); }
+
void ExtensionPrefs::FixMissingPrefs(const ExtensionIdList& extension_ids) {
// Fix old entries that did not get an installation time entry when they
// were installed or don't have a preferences field.
@@ -1826,7 +1783,7 @@ void ExtensionPrefs::InitPrefStore() {
MigrateDisableReasons(extension_ids);
app_sorting_->Initialize(extension_ids);
- InitExtensionControlledPrefs(this, extension_pref_value_map_);
+ InitExtensionControlledPrefs(extension_pref_value_map_);
extension_pref_value_map_->NotifyInitializationCompleted();
}
@@ -1925,12 +1882,10 @@ ExtensionPrefs::ExtensionPrefs(
install_directory_(root_dir),
extension_pref_value_map_(extension_pref_value_map),
app_sorting_(app_sorting.Pass()),
- content_settings_store_(new ContentSettingsStore()),
time_provider_(time_provider.Pass()),
extensions_disabled_(extensions_disabled) {
app_sorting_->SetExtensionScopedPrefs(this);
MakePathsRelative();
- InitPrefStore();
}
void ExtensionPrefs::SetNeedsStorageGarbageCollection(bool value) {
@@ -2091,6 +2046,42 @@ void ExtensionPrefs::PopulateExtensionInfoPrefs(
}
}
+void ExtensionPrefs::InitExtensionControlledPrefs(
+ ExtensionPrefValueMap* value_map) {
+ ExtensionIdList extension_ids;
+ GetExtensions(&extension_ids);
+
+ for (ExtensionIdList::iterator extension_id = extension_ids.begin();
+ extension_id != extension_ids.end();
+ ++extension_id) {
+ base::Time install_time = GetInstallTime(*extension_id);
+ bool is_enabled = !IsExtensionDisabled(*extension_id);
+ bool is_incognito_enabled = IsIncognitoEnabled(*extension_id);
+ value_map->RegisterExtension(
+ *extension_id, install_time, is_enabled, is_incognito_enabled);
+
+ FOR_EACH_OBSERVER(
+ Observer,
+ observer_list_,
+ OnExtensionRegistered(*extension_id, install_time, is_enabled));
+
+ // Set regular extension controlled prefs.
+ LoadExtensionControlledPrefs(
+ this, value_map, *extension_id, kExtensionPrefsScopeRegular);
+ // Set incognito extension controlled prefs.
+ LoadExtensionControlledPrefs(this,
+ value_map,
+ *extension_id,
+ kExtensionPrefsScopeIncognitoPersistent);
+ // Set regular-only extension controlled prefs.
+ LoadExtensionControlledPrefs(
+ this, value_map, *extension_id, kExtensionPrefsScopeRegularOnly);
+
+ FOR_EACH_OBSERVER(
+ Observer, observer_list_, OnExtensionPrefsLoaded(*extension_id));
+ }
+}
+
void ExtensionPrefs::FinishExtensionInfoPrefs(
const std::string& extension_id,
const base::Time install_time,
@@ -2132,7 +2123,7 @@ void ExtensionPrefs::FinishExtensionInfoPrefs(
extension_dict->Remove(kPrefEvictedEphemeralApp, NULL);
// FYI, all code below here races on sudden shutdown because |extension_dict|,
- // |app_sorting_|, |extension_pref_value_map_|, and |content_settings_store_|
+ // |app_sorting_|, |extension_pref_value_map_|, and (potentially) observers
// are updated non-transactionally. This is probably not fixable without
// nested transactional updates to pref dictionaries.
if (needs_sort_ordinal)
@@ -2147,8 +2138,11 @@ void ExtensionPrefs::FinishExtensionInfoPrefs(
extension_pref_value_map_->RegisterExtension(
extension_id, install_time, is_enabled, is_incognito_enabled);
- content_settings_store_->RegisterExtension(extension_id, install_time,
- is_enabled);
+
+ FOR_EACH_OBSERVER(
+ Observer,
+ observer_list_,
+ OnExtensionRegistered(extension_id, install_time, is_enabled));
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698