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

Side by Side Diff: chrome/browser/extensions/api/storage/managed_value_store_cache.cc

Issue 19052005: Move PathIsWritable, DirectoryExists, ContentsEqual, and TextContentsEqual to the base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 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/api/storage/managed_value_store_cache.h" 5 #include "chrome/browser/extensions/api/storage/managed_value_store_cache.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 228
229 void ManagedValueStoreCache::DeleteStorageSoon( 229 void ManagedValueStoreCache::DeleteStorageSoon(
230 const std::string& extension_id) { 230 const std::string& extension_id) {
231 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 231 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
232 PolicyValueStore* store = GetStoreFor(extension_id); 232 PolicyValueStore* store = GetStoreFor(extension_id);
233 if (!store) { 233 if (!store) {
234 // It's possible that the store exists, but hasn't been loaded yet 234 // It's possible that the store exists, but hasn't been loaded yet
235 // (because the extension is unloaded, for example). Open the database to 235 // (because the extension is unloaded, for example). Open the database to
236 // clear it if it exists. 236 // clear it if it exists.
237 // TODO(joaodasilva): move this check to a ValueStore method. 237 // TODO(joaodasilva): move this check to a ValueStore method.
238 if (file_util::DirectoryExists(base_path_.AppendASCII(extension_id))) { 238 if (base::DirectoryExists(base_path_.AppendASCII(extension_id))) {
239 CreateStoreFor( 239 CreateStoreFor(
240 extension_id, 240 extension_id,
241 false, 241 false,
242 base::Bind(&ManagedValueStoreCache::DeleteStorageSoon, 242 base::Bind(&ManagedValueStoreCache::DeleteStorageSoon,
243 base::Unretained(this), 243 base::Unretained(this),
244 extension_id)); 244 extension_id));
245 } 245 }
246 } else { 246 } else {
247 store->DeleteStorage(); 247 store->DeleteStorage();
248 store_map_.erase(extension_id); 248 store_map_.erase(extension_id);
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 // its UI task, then the 2nd will enter this function but the store has 376 // its UI task, then the 2nd will enter this function but the store has
377 // already been created. Check for that. 377 // already been created. Check for that.
378 PolicyValueStore* store = GetStoreFor(extension_id); 378 PolicyValueStore* store = GetStoreFor(extension_id);
379 379
380 if (!store) { 380 if (!store) {
381 // Create it now. 381 // Create it now.
382 382
383 // If the database doesn't exist yet then this is the initial install, 383 // If the database doesn't exist yet then this is the initial install,
384 // and no notifications should be issued in that case. 384 // and no notifications should be issued in that case.
385 // TODO(joaodasilva): move this check to a ValueStore method. 385 // TODO(joaodasilva): move this check to a ValueStore method.
386 if (!file_util::DirectoryExists(base_path_.AppendASCII(extension_id))) 386 if (!base::DirectoryExists(base_path_.AppendASCII(extension_id)))
387 notify_if_changed = false; 387 notify_if_changed = false;
388 388
389 store = new PolicyValueStore( 389 store = new PolicyValueStore(
390 extension_id, 390 extension_id,
391 observers_, 391 observers_,
392 make_scoped_ptr(storage_factory_->Create(base_path_, extension_id))); 392 make_scoped_ptr(storage_factory_->Create(base_path_, extension_id)));
393 store_map_[extension_id] = make_linked_ptr(store); 393 store_map_[extension_id] = make_linked_ptr(store);
394 } 394 }
395 395
396 // Send the latest policy to the store, if it's already available. 396 // Send the latest policy to the store, if it's already available.
397 if (initial_policy) 397 if (initial_policy)
398 store->SetCurrentPolicy(*initial_policy, notify_if_changed); 398 store->SetCurrentPolicy(*initial_policy, notify_if_changed);
399 399
400 // And finally resume from where this process started. 400 // And finally resume from where this process started.
401 if (!continuation.is_null()) 401 if (!continuation.is_null())
402 continuation.Run(); 402 continuation.Run();
403 } 403 }
404 404
405 policy::PolicyService* ManagedValueStoreCache::GetPolicyService() { 405 policy::PolicyService* ManagedValueStoreCache::GetPolicyService() {
406 policy::ProfilePolicyConnector* connector = 406 policy::ProfilePolicyConnector* connector =
407 policy::ProfilePolicyConnectorFactory::GetForProfile(profile_); 407 policy::ProfilePolicyConnectorFactory::GetForProfile(profile_);
408 return connector->policy_service(); 408 return connector->policy_service();
409 } 409 }
410 410
411 } // namespace extensions 411 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698