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