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 |