15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#ifndef EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_ 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/prefs/value_map_pref_store.h" 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extension_pref_value_map.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// A (non-persistent) PrefStore implementation that holds effective preferences 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// set by extensions. These preferences are managed by and fetched from an 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ExtensionPrefValueMap. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExtensionPrefStore : public ValueMapPrefStore, 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public ExtensionPrefValueMap::Observer { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Constructs an ExtensionPrefStore for a regular or an incognito profile. 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionPrefStore(ExtensionPrefValueMap* extension_pref_value_map, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool incognito_pref_store); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overrides for ExtensionPrefValueMap::Observer: 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnInitializationCompleted() OVERRIDE; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnPrefValueChanged(const std::string& key) OVERRIDE; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnExtensionPrefValueMapDestruction() OVERRIDE; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ExtensionPrefStore(); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ExtensionPrefValueMap* extension_pref_value_map_; // Weak pointer. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool incognito_pref_store_; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ExtensionPrefStore); 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#endif // EXTENSIONS_BROWSER_EXTENSION_PREF_STORE_H_ 39