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

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

Issue 23581015: Reland r223124: Don't clear existing extension-defined preferences and content settings when reload… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years, 3 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_value_map.h" 5 #include "chrome/browser/extensions/extension_pref_value_map.h"
6 6
7 #include "base/prefs/pref_value_map.h" 7 #include "base/prefs/pref_value_map.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 ExtensionEntryMap::const_iterator winner = 109 ExtensionEntryMap::const_iterator winner =
110 GetEffectivePrefValueController(pref_key, incognito, from_incognito); 110 GetEffectivePrefValueController(pref_key, incognito, from_incognito);
111 if (winner == entries_.end()) 111 if (winner == entries_.end())
112 return false; 112 return false;
113 return winner->first == extension_id; 113 return winner->first == extension_id;
114 } 114 }
115 115
116 void ExtensionPrefValueMap::RegisterExtension(const std::string& ext_id, 116 void ExtensionPrefValueMap::RegisterExtension(const std::string& ext_id,
117 const base::Time& install_time, 117 const base::Time& install_time,
118 bool is_enabled) { 118 bool is_enabled) {
119 if (entries_.find(ext_id) != entries_.end()) 119 if (entries_.find(ext_id) == entries_.end()) {
120 UnregisterExtension(ext_id); 120 entries_[ext_id] = new ExtensionEntry;
121 entries_[ext_id] = new ExtensionEntry; 121
122 entries_[ext_id]->install_time = install_time; 122 // Only update the install time if the extension is newly installed.
123 entries_[ext_id]->install_time = install_time;
124 }
125
123 entries_[ext_id]->enabled = is_enabled; 126 entries_[ext_id]->enabled = is_enabled;
124 } 127 }
125 128
126 void ExtensionPrefValueMap::UnregisterExtension(const std::string& ext_id) { 129 void ExtensionPrefValueMap::UnregisterExtension(const std::string& ext_id) {
127 ExtensionEntryMap::iterator i = entries_.find(ext_id); 130 ExtensionEntryMap::iterator i = entries_.find(ext_id);
128 if (i == entries_.end()) 131 if (i == entries_.end())
129 return; 132 return;
130 std::set<std::string> keys; // keys set by this extension 133 std::set<std::string> keys; // keys set by this extension
131 GetExtensionControlledKeys(*(i->second), &keys); 134 GetExtensionControlledKeys(*(i->second), &keys);
132 135
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 358
356 void ExtensionPrefValueMap::NotifyPrefValueChanged(const std::string& key) { 359 void ExtensionPrefValueMap::NotifyPrefValueChanged(const std::string& key) {
357 FOR_EACH_OBSERVER(ExtensionPrefValueMap::Observer, observers_, 360 FOR_EACH_OBSERVER(ExtensionPrefValueMap::Observer, observers_,
358 OnPrefValueChanged(key)); 361 OnPrefValueChanged(key));
359 } 362 }
360 363
361 void ExtensionPrefValueMap::NotifyOfDestruction() { 364 void ExtensionPrefValueMap::NotifyOfDestruction() {
362 FOR_EACH_OBSERVER(ExtensionPrefValueMap::Observer, observers_, 365 FOR_EACH_OBSERVER(ExtensionPrefValueMap::Observer, observers_,
363 OnExtensionPrefValueMapDestruction()); 366 OnExtensionPrefValueMapDestruction());
364 } 367 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/preference/preference_apitest.cc ('k') | chrome/browser/extensions/extension_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698