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

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

Issue 7649006: more changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix another typo Created 9 years, 4 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_settings_storage_cache.h" 5 #include "chrome/browser/extensions/extension_settings_storage_cache.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 std::string key; 142 std::string key;
143 DictionaryValue* settings = new DictionaryValue(); 143 DictionaryValue* settings = new DictionaryValue();
144 ListValue missing_keys; 144 ListValue missing_keys;
145 145
146 for (ListValue::const_iterator it = keys.begin(); it != keys.end(); ++it) { 146 for (ListValue::const_iterator it = keys.begin(); it != keys.end(); ++it) {
147 if ((*it)->GetAsString(&key)) { 147 if ((*it)->GetAsString(&key)) {
148 Value *value; 148 Value *value;
149 if (GetFromCache(key, &value)) { 149 if (GetFromCache(key, &value)) {
150 settings->Set(key, value); 150 settings->Set(key, value);
151 } else { 151 } else {
152 missing_keys.Append(Value::CreateStringValue(key)); 152 missing_keys.Append(base::StringValue::New(key));
153 } 153 }
154 } 154 }
155 } 155 }
156 156
157 if (missing_keys.empty()) { 157 if (missing_keys.empty()) {
158 MessageLoop::current()->PostTask( 158 MessageLoop::current()->PostTask(
159 FROM_HERE, 159 FROM_HERE,
160 base::Bind( 160 base::Bind(
161 &ExtensionSettingsStorageCache::Callback::OnSuccess, 161 &ExtensionSettingsStorageCache::Callback::OnSuccess,
162 base::Unretained(callback), 162 base::Unretained(callback),
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 213
214 void ExtensionSettingsStorageCache::Remove( 214 void ExtensionSettingsStorageCache::Remove(
215 const std::string& key, 215 const std::string& key,
216 ExtensionSettingsStorageCache::Callback *callback) { 216 ExtensionSettingsStorageCache::Callback *callback) {
217 // Invalidate the cached entry first, in case the remove fails. 217 // Invalidate the cached entry first, in case the remove fails.
218 // We will also need to do if after the callback, to avoid race conditions 218 // We will also need to do if after the callback, to avoid race conditions
219 // whether other API calls fill the cache on the UI thread. 219 // whether other API calls fill the cache on the UI thread.
220 // This would be a good time to use structured cloning... 220 // This would be a good time to use structured cloning...
221 cache_.Remove(key, NULL); 221 cache_.Remove(key, NULL);
222 ListValue* key_list = new ListValue(); 222 ListValue* key_list = new ListValue();
223 key_list->Append(Value::CreateStringValue(key)); 223 key_list->Append(base::StringValue::New(key));
224 delegate_->Remove( 224 delegate_->Remove(
225 key, 225 key,
226 CacheModifyingCallback::Create( 226 CacheModifyingCallback::Create(
227 callback, 227 callback,
228 cache_ptr_factory_.GetWeakPtr(), 228 cache_ptr_factory_.GetWeakPtr(),
229 key_list)); 229 key_list));
230 } 230 }
231 231
232 void ExtensionSettingsStorageCache::Remove( 232 void ExtensionSettingsStorageCache::Remove(
233 const ListValue& keys, 233 const ListValue& keys,
(...skipping 22 matching lines...) Expand all
256 256
257 bool ExtensionSettingsStorageCache::GetFromCache( 257 bool ExtensionSettingsStorageCache::GetFromCache(
258 const std::string& key, Value** value) { 258 const std::string& key, Value** value) {
259 Value* cached_value; 259 Value* cached_value;
260 if (!cache_.Get(key, &cached_value)) { 260 if (!cache_.Get(key, &cached_value)) {
261 return false; 261 return false;
262 } 262 }
263 *value = cached_value->DeepCopy(); 263 *value = cached_value->DeepCopy();
264 return true; 264 return true;
265 } 265 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698