Chromium Code Reviews| Index: chrome/browser/prefs/overlay_user_pref_store.h |
| diff --git a/chrome/browser/prefs/incognito_user_pref_store.h b/chrome/browser/prefs/overlay_user_pref_store.h |
| similarity index 65% |
| copy from chrome/browser/prefs/incognito_user_pref_store.h |
| copy to chrome/browser/prefs/overlay_user_pref_store.h |
| index b5be17eb7c66b728feb9a24615738884c9bc1da0..1776c465466633eb3db7a691e0b6510004fef42e 100644 |
| --- a/chrome/browser/prefs/incognito_user_pref_store.h |
| +++ b/chrome/browser/prefs/overlay_user_pref_store.h |
| @@ -2,13 +2,14 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CHROME_BROWSER_PREFS_INCOGNITO_USER_PREF_STORE_H_ |
| -#define CHROME_BROWSER_PREFS_INCOGNITO_USER_PREF_STORE_H_ |
| +#ifndef CHROME_BROWSER_PREFS_OVERLAY_USER_PREF_STORE_H_ |
| +#define CHROME_BROWSER_PREFS_OVERLAY_USER_PREF_STORE_H_ |
| #pragma once |
| #include <string> |
| #include "base/basictypes.h" |
| +#include "base/hash_tables.h" |
|
Mattias Nissler (ping if slow)
2011/11/14 12:04:55
remove this and instead #include <map>
mnaganov (inactive)
2011/11/14 12:07:31
Done.
|
| #include "base/memory/ref_counted.h" |
| #include "base/observer_list.h" |
| #include "chrome/browser/prefs/pref_value_map.h" |
| @@ -18,14 +19,14 @@ |
| // PrefValueMap. Read operations are first answered by the PrefValueMap. |
| // If the PrefValueMap does not contain a value for the requested key, |
| // the look-up is passed on to an underlying PersistentPrefStore |underlay_|. |
| -class IncognitoUserPrefStore : public PersistentPrefStore, |
| - public PrefStore::Observer { |
| +class OverlayUserPrefStore : public PersistentPrefStore, |
| + public PrefStore::Observer { |
| public: |
| - explicit IncognitoUserPrefStore(PersistentPrefStore* underlay); |
| - virtual ~IncognitoUserPrefStore(); |
| + explicit OverlayUserPrefStore(PersistentPrefStore* underlay); |
| + virtual ~OverlayUserPrefStore(); |
| // Returns true if a value has been set for the |key| in this |
| - // IncognitoUserPrefStore, i.e. if it potentially overrides a value |
| + // OverlayUserPrefStore, i.e. if it potentially overrides a value |
| // from the |underlay_|. |
| virtual bool IsSetInOverlay(const std::string& key) const; |
| @@ -50,22 +51,34 @@ class IncognitoUserPrefStore : public PersistentPrefStore, |
| virtual void CommitPendingWrite(); |
| virtual void ReportValueChanged(const std::string& key); |
| + protected: |
| + void RegisterOverlayProperty(const std::string& key); |
| + void RegisterOverlayProperty(const std::string& overlay_key, |
| + const std::string& underlay_key); |
| + |
| private: |
| + friend class OverlayUserPrefStoreTest; |
| + |
| + typedef std::map<std::string, std::string> NamesMap; |
| + |
| // Methods of PrefStore::Observer. |
| virtual void OnPrefValueChanged(const std::string& key); |
| virtual void OnInitializationCompleted(bool succeeded); |
| + const std::string& GetOverlayKey(const std::string& underlay_key) const; |
| + const std::string& GetUnderlayKey(const std::string& overlay_key) const; |
| + |
| // Returns true if |key| corresponds to a preference that shall be stored in |
| - // an in-memory PrefStore that is not persisted to disk. All preferences |
| - // that store information about the browsing history or behavior of the user |
| - // should have this property. |
| - virtual bool ShallBeStoredInOverlay(const std::string& key) const; |
| + // an in-memory PrefStore that is not persisted to disk. |
| + bool ShallBeStoredInOverlay(const std::string& key) const; |
| ObserverList<PrefStore::Observer, true> observers_; |
| PrefValueMap overlay_; |
| scoped_refptr<PersistentPrefStore> underlay_; |
| + NamesMap overlay_to_underlay_names_map_; |
| + NamesMap underlay_to_overlay_names_map_; |
| - DISALLOW_COPY_AND_ASSIGN(IncognitoUserPrefStore); |
| + DISALLOW_COPY_AND_ASSIGN(OverlayUserPrefStore); |
| }; |
| -#endif // CHROME_BROWSER_PREFS_INCOGNITO_USER_PREF_STORE_H_ |
| +#endif // CHROME_BROWSER_PREFS_OVERLAY_USER_PREF_STORE_H_ |