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

Unified Diff: chrome/browser/net/sqlite_persistent_cookie_store.cc

Issue 5430004: Refactored cookies persistent store clean-up on shutdown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tiny style fixes. Created 10 years 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/net/sqlite_persistent_cookie_store.cc
diff --git a/chrome/browser/net/sqlite_persistent_cookie_store.cc b/chrome/browser/net/sqlite_persistent_cookie_store.cc
index 88b7bb9bc8026b7d4fa938ca72fe20b5c694789d..cbdb36fc2f42d0adefa21968212e787bc87ca14c 100644
--- a/chrome/browser/net/sqlite_persistent_cookie_store.cc
+++ b/chrome/browser/net/sqlite_persistent_cookie_store.cc
@@ -31,7 +31,8 @@ class SQLitePersistentCookieStore::Backend
explicit Backend(const FilePath& path)
: path_(path),
db_(NULL),
- num_pending_(0) {
+ num_pending_(0),
+ clear_local_state_on_exit_(false) {
}
// Creates or load the SQLite database.
@@ -50,6 +51,10 @@ class SQLitePersistentCookieStore::Backend
// before the object is destructed.
void Close();
+ void SetClearLocalStateOnExit(bool clear_local_state) {
+ clear_local_state_on_exit_ = clear_local_state;
+ }
+
private:
friend class base::RefCountedThreadSafe<SQLitePersistentCookieStore::Backend>;
@@ -99,6 +104,8 @@ class SQLitePersistentCookieStore::Backend
PendingOperationsList pending_;
PendingOperationsList::size_type num_pending_;
Lock pending_lock_; // Guard pending_ and num_pending_
+ // True if the persistent store should be deleted upon destruction.
+ bool clear_local_state_on_exit_;
DISALLOW_COPY_AND_ASSIGN(Backend);
};
@@ -420,6 +427,9 @@ void SQLitePersistentCookieStore::Backend::InternalBackgroundClose() {
Commit();
db_.reset();
+
+ if (clear_local_state_on_exit_)
+ file_util::Delete(path_, false);
}
SQLitePersistentCookieStore::SQLitePersistentCookieStore(const FilePath& path)
@@ -458,8 +468,8 @@ void SQLitePersistentCookieStore::DeleteCookie(
backend_->DeleteCookie(cc);
}
-// static
-void SQLitePersistentCookieStore::ClearLocalState(
- const FilePath& path) {
- file_util::Delete(path, false);
+void SQLitePersistentCookieStore::SetClearLocalStateOnExit(
+ bool clear_local_state) {
+ if (backend_.get())
+ backend_->SetClearLocalStateOnExit(clear_local_state);
Randy Smith (Not in Mondays) 2010/12/03 18:42:27 Could you protect this with the lock (and modify t
pastarmovj 2010/12/06 08:57:40 Done. I had exactly the same thoughts and didn't p
}
« no previous file with comments | « chrome/browser/net/sqlite_persistent_cookie_store.h ('k') | chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698