summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/extension_pref_store.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/extension_pref_store.h')
-rw-r--r--chromium/extensions/browser/extension_pref_store.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/chromium/extensions/browser/extension_pref_store.h b/chromium/extensions/browser/extension_pref_store.h
new file mode 100644
index 00000000000..3585c3311b1
--- /dev/null
+++ b/chromium/extensions/browser/extension_pref_store.h
@@ -0,0 +1,39 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_
+#define EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_
+
+#include <string>
+
+#include "base/macros.h"
+#include "components/prefs/value_map_pref_store.h"
+#include "extensions/browser/extension_pref_value_map.h"
+
+// A (non-persistent) PrefStore implementation that holds effective preferences
+// set by extensions. These preferences are managed by and fetched from an
+// ExtensionPrefValueMap.
+class ExtensionPrefStore : public ValueMapPrefStore,
+ public ExtensionPrefValueMap::Observer {
+ public:
+ // Constructs an ExtensionPrefStore for a regular or an incognito profile.
+ ExtensionPrefStore(ExtensionPrefValueMap* extension_pref_value_map,
+ bool incognito_pref_store);
+
+ // Overrides for ExtensionPrefValueMap::Observer:
+ void OnInitializationCompleted() override;
+ void OnPrefValueChanged(const std::string& key) override;
+ void OnExtensionPrefValueMapDestruction() override;
+
+ protected:
+ ~ExtensionPrefStore() override;
+
+ private:
+ ExtensionPrefValueMap* extension_pref_value_map_; // Weak pointer.
+ bool incognito_pref_store_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExtensionPrefStore);
+};
+
+#endif // EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_