Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Unified Diff: chrome/browser/extensions/extension_pref_store.cc

Issue 5915004: Introduce incognito preference settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed whitespaces in mac files Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_pref_store.cc
diff --git a/chrome/browser/extensions/extension_pref_store.cc b/chrome/browser/extensions/extension_pref_store.cc
index b3aba4482c86285d16a237798fb3c00277b040d4..74504c18290c7023aaed866f9457eb36671e0965 100644
--- a/chrome/browser/extensions/extension_pref_store.cc
+++ b/chrome/browser/extensions/extension_pref_store.cc
@@ -1,28 +1,42 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
#include "chrome/browser/extensions/extension_pref_store.h"
-ExtensionPrefStore::ExtensionPrefStore()
- : initialization_complete_(false) {
-}
+#include "base/values.h"
+#include "chrome/browser/extensions/extension_pref_value_map.h"
-void ExtensionPrefStore::SetExtensionPref(const std::string& key,
- Value* value) {
- SetValue(key, value);
+ExtensionPrefStore::ExtensionPrefStore(
+ ExtensionPrefValueMap* extension_pref_value_map,
+ bool incognito_pref_store)
+ : extension_pref_value_map_(extension_pref_value_map),
+ incognito_pref_store_(incognito_pref_store) {
+ extension_pref_value_map_->AddObserver(this);
}
-void ExtensionPrefStore::RemoveExtensionPref(const std::string& key) {
- RemoveValue(key);
+ExtensionPrefStore::~ExtensionPrefStore() {
+ if (extension_pref_value_map_)
+ extension_pref_value_map_->RemoveObserver(this);
}
void ExtensionPrefStore::OnInitializationCompleted() {
- DCHECK(!initialization_complete_);
- initialization_complete_ = true;
NotifyInitializationCompleted();
}
-bool ExtensionPrefStore::IsInitializationComplete() const {
- return initialization_complete_;
+void ExtensionPrefStore::OnPrefValueChanged(const std::string& key) {
+ CHECK(extension_pref_value_map_);
+ const Value *winner =
+ extension_pref_value_map_->GetEffectivePrefValue(key,
+ incognito_pref_store_);
+ if (winner)
+ SetValue(key, winner->DeepCopy());
+ else
+ RemoveValue(key);
+}
+
+void ExtensionPrefStore::OnExtensionPrefValueMapDestruction() {
+ CHECK(extension_pref_value_map_);
+ extension_pref_value_map_->RemoveObserver(this);
+ extension_pref_value_map_ = NULL;
}

Powered by Google App Engine
This is Rietveld 408576698