| Index: chrome/browser/extensions/extension_prefs.h
|
| diff --git a/chrome/browser/extensions/extension_prefs.h b/chrome/browser/extensions/extension_prefs.h
|
| index 8c8be82e15eb3db056902a833e593fe705c2bad3..90990783b48097678c18155d8765b76c748fc9d7 100644
|
| --- a/chrome/browser/extensions/extension_prefs.h
|
| +++ b/chrome/browser/extensions/extension_prefs.h
|
| @@ -11,6 +11,7 @@
|
| #include <vector>
|
|
|
| #include "base/linked_ptr.h"
|
| +#include "base/ref_counted.h"
|
| #include "base/time.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/common/extensions/extension.h"
|
| @@ -59,9 +60,14 @@ class ExtensionPrefs {
|
| LAUNCH_WINDOW
|
| };
|
|
|
| + // Does not assume owner ship of |prefs| and |incognito_prefs|.
|
| explicit ExtensionPrefs(PrefService* prefs,
|
| + PrefService* incognito_prefs,
|
| const FilePath& root_dir,
|
| - ExtensionPrefStore* extension_pref_store);
|
| + scoped_refptr<ExtensionPrefStore>
|
| + extension_pref_store,
|
| + scoped_refptr<ExtensionPrefStore>
|
| + incognito_pref_store);
|
| ~ExtensionPrefs();
|
|
|
| // Returns a copy of the Extensions prefs.
|
| @@ -263,6 +269,7 @@ class ExtensionPrefs {
|
| // global the extension wants to override.
|
| void SetExtensionControlledPref(const std::string& extension_id,
|
| const std::string& pref_key,
|
| + bool incognito,
|
| Value* value);
|
|
|
| static void RegisterUserPrefs(PrefService* prefs);
|
| @@ -335,9 +342,10 @@ class ExtensionPrefs {
|
| DictionaryValue* GetExtensionPref(const std::string& id) const;
|
|
|
| // Returns the dictionary of preferences controlled by the specified extension
|
| - // or NULL if unknown. All entries in the dictionary contain non-expanded
|
| + // or creates a new one. All entries in the dictionary contain non-expanded
|
| // paths.
|
| - DictionaryValue* GetExtensionControlledPrefs(const std::string& id) const;
|
| + DictionaryValue* GetExtensionControlledPrefs(const std::string& id,
|
| + bool incognito) const;
|
|
|
| // Serializes the data and schedules a persistent save via the |PrefService|.
|
| // Additionally fires a PREF_CHANGED notification with the top-level
|
| @@ -370,7 +378,7 @@ class ExtensionPrefs {
|
| // Returns the extension controlled preference value of the extension that was
|
| // installed most recently.
|
| const Value* GetWinningExtensionControlledPrefValue(
|
| - const std::string& key) const;
|
| + const std::string& key, bool incognito) const;
|
|
|
| // Executes UpdatePrefStore for all |pref_keys|.
|
| void UpdatePrefStore(const PrefKeySet& pref_keys);
|
| @@ -378,21 +386,24 @@ class ExtensionPrefs {
|
| // Finds the most recently installed extension that defines a preference
|
| // for |pref_key|, then stores its value in the PrefValueStore's extension
|
| // pref store and sends notifications to observers in case the value changed.
|
| - void UpdatePrefStore(const std::string& pref_key);
|
| + void UpdatePrefStore(const std::string& pref_key, bool incognito);
|
|
|
| // Retrieves a list of preference keys that the specified extension
|
| // intends to manage. Keys are always appended, |out| is not cleared.
|
| void GetExtensionControlledPrefKeys(const std::string& extension_id,
|
| PrefKeySet *out) const;
|
|
|
| - // The pref service specific to this set of extension prefs.
|
| + // The pref service specific to this set of extension prefs. Owned by profile.
|
| PrefService* prefs_;
|
| + PrefService* incognito_prefs_;
|
|
|
| // Base extensions install directory.
|
| FilePath install_directory_;
|
|
|
| // Used to manipulate extension preferences.
|
| - ExtensionPrefStore* pref_store_;
|
| + scoped_refptr<ExtensionPrefStore> pref_store_;
|
| + // Shared with PrefValueStore of |incognito_prefs_|.
|
| + scoped_refptr<ExtensionPrefStore> incognito_pref_store_;
|
|
|
| // The URLs of all of the toolstrips.
|
| URLList shelf_order_;
|
|
|