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

Side by Side Diff: chrome/browser/extensions/extension_pref_store.cc

Issue 10071035: RefCounted types should not have public destructors, chrome/browser/extensions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compile fix Created 8 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_pref_store.h" 5 #include "chrome/browser/extensions/extension_pref_store.h"
6 6
7 #include "base/values.h" 7 #include "base/values.h"
8 #include "chrome/browser/extensions/extension_pref_value_map.h" 8 #include "chrome/browser/extensions/extension_pref_value_map.h"
9 9
10 ExtensionPrefStore::ExtensionPrefStore( 10 ExtensionPrefStore::ExtensionPrefStore(
11 ExtensionPrefValueMap* extension_pref_value_map, 11 ExtensionPrefValueMap* extension_pref_value_map,
12 bool incognito_pref_store) 12 bool incognito_pref_store)
13 : extension_pref_value_map_(extension_pref_value_map), 13 : extension_pref_value_map_(extension_pref_value_map),
14 incognito_pref_store_(incognito_pref_store) { 14 incognito_pref_store_(incognito_pref_store) {
15 extension_pref_value_map_->AddObserver(this); 15 extension_pref_value_map_->AddObserver(this);
16 } 16 }
17 17
18 ExtensionPrefStore::~ExtensionPrefStore() {
19 if (extension_pref_value_map_)
20 extension_pref_value_map_->RemoveObserver(this);
21 }
22
23 void ExtensionPrefStore::OnInitializationCompleted() { 18 void ExtensionPrefStore::OnInitializationCompleted() {
24 NotifyInitializationCompleted(); 19 NotifyInitializationCompleted();
25 } 20 }
26 21
27 void ExtensionPrefStore::OnPrefValueChanged(const std::string& key) { 22 void ExtensionPrefStore::OnPrefValueChanged(const std::string& key) {
28 CHECK(extension_pref_value_map_); 23 CHECK(extension_pref_value_map_);
29 const Value *winner = 24 const Value *winner =
30 extension_pref_value_map_->GetEffectivePrefValue(key, 25 extension_pref_value_map_->GetEffectivePrefValue(key,
31 incognito_pref_store_, 26 incognito_pref_store_,
32 NULL); 27 NULL);
33 if (winner) 28 if (winner)
34 SetValue(key, winner->DeepCopy()); 29 SetValue(key, winner->DeepCopy());
35 else 30 else
36 RemoveValue(key); 31 RemoveValue(key);
37 } 32 }
38 33
39 void ExtensionPrefStore::OnExtensionPrefValueMapDestruction() { 34 void ExtensionPrefStore::OnExtensionPrefValueMapDestruction() {
40 CHECK(extension_pref_value_map_); 35 CHECK(extension_pref_value_map_);
41 extension_pref_value_map_->RemoveObserver(this); 36 extension_pref_value_map_->RemoveObserver(this);
42 extension_pref_value_map_ = NULL; 37 extension_pref_value_map_ = NULL;
43 } 38 }
39
40 ExtensionPrefStore::~ExtensionPrefStore() {
41 if (extension_pref_value_map_)
42 extension_pref_value_map_->RemoveObserver(this);
43 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_pref_store.h ('k') | chrome/browser/extensions/extension_preference_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698