| 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
|
|
|