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

Unified Diff: chrome/browser/extensions/extension_pref_store.h

Issue 4551001: Disable ExtensionPrefStore for local-state pref store (Closed) Base URL: http://git.chromium.org/git/chromium.git/@trunk
Patch Set: Addressed Pam's comments Created 10 years, 1 month 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
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_pref_store.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_pref_store.h
diff --git a/chrome/browser/extensions/extension_pref_store.h b/chrome/browser/extensions/extension_pref_store.h
index 67c7335c05af5922c705254dd628bee72e0011e5..5928445f8fda43fe4ff592d8a4f0b26243f6d87b 100644
--- a/chrome/browser/extensions/extension_pref_store.h
+++ b/chrome/browser/extensions/extension_pref_store.h
@@ -30,15 +30,6 @@ class Value;
// proxy settings. A stack of relevant extensions is stored in order of
// their addition to this PrefStore. For each preference, the last-added
// enabled extension that tries to set it overrules any others.
-//
-// TODO(battre): The ExtensionPrefStore has an issue if it serves for storing
-// extension preferences in the local-state (shared among all profiles on a
-// machine). In this context, there is no meaningful definition of a precedence
-// order as the same extensions can be installed in different profiles.
-// One instance would override the preferences of another instance. Also it is
-// unclear how settings should be removed in this case. For this reason we
-// (pamg, battre) decided to not support the ExtensionPrefStore for local-state.
-// This needs to be enforced by the code.
class ExtensionPrefStore : public PrefStore,
public NotificationObserver {
public:
@@ -52,6 +43,11 @@ class ExtensionPrefStore : public PrefStore,
typedef std::pair<const Extension*, std::pair<const char*, Value*> >
ExtensionPrefDetails;
+ // The local-state ExtensionPrefStore (shared among all profiles on a
+ // machine), indicated by a NULL |profile|, is prohibited from storing
+ // preferences. Since extensions are installed per profile, allowing them to
+ // control machine-wide settings could lead to unsolvable conflicts, and
+ // should not be necessary anyway.
ExtensionPrefStore(Profile* profile, PrefNotifier::PrefStoreType type);
virtual ~ExtensionPrefStore();
@@ -76,9 +72,7 @@ class ExtensionPrefStore : public PrefStore,
// This should only be accessed by subclasses for unit-testing.
void GetExtensionIDs(std::vector<std::string>* result);
- // Returns the applicable pref service from the profile (if we have one) or
- // the browser's local state. This should only be accessed or overridden by
- // subclasses for unit-testing.
+ // For PrefService injection for unit-testing
virtual PrefService* GetPrefService();
// The following functions delegate to
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_pref_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698