OLD | NEW |
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 "content/browser/net/sqlite_persistent_cookie_store.h" | 5 #include "content/browser/net/sqlite_persistent_cookie_store.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 return true; | 617 return true; |
618 } | 618 } |
619 | 619 |
620 void SQLitePersistentCookieStore::Backend::ChainLoadCookies( | 620 void SQLitePersistentCookieStore::Backend::ChainLoadCookies( |
621 const LoadedCallback& loaded_callback) { | 621 const LoadedCallback& loaded_callback) { |
622 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); | 622 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); |
623 IncrementTimeDelta increment(&cookie_load_duration_); | 623 IncrementTimeDelta increment(&cookie_load_duration_); |
624 | 624 |
625 bool load_success = true; | 625 bool load_success = true; |
626 | 626 |
627 if (!db_.get()) { | 627 if (!db_) { |
628 // Close() has been called on this store. | 628 // Close() has been called on this store. |
629 load_success = false; | 629 load_success = false; |
630 } else if (keys_to_load_.size() > 0) { | 630 } else if (keys_to_load_.size() > 0) { |
631 // Load cookies for the first domain key. | 631 // Load cookies for the first domain key. |
632 std::map<std::string, std::set<std::string> >::iterator | 632 std::map<std::string, std::set<std::string> >::iterator |
633 it = keys_to_load_.begin(); | 633 it = keys_to_load_.begin(); |
634 load_success = LoadCookiesForDomains(it->second); | 634 load_success = LoadCookiesForDomains(it->second); |
635 keys_to_load_.erase(it); | 635 keys_to_load_.erase(it); |
636 } | 636 } |
637 | 637 |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
987 DeleteSessionCookiesOnShutdown(); | 987 DeleteSessionCookiesOnShutdown(); |
988 } | 988 } |
989 | 989 |
990 meta_table_.Reset(); | 990 meta_table_.Reset(); |
991 db_.reset(); | 991 db_.reset(); |
992 } | 992 } |
993 | 993 |
994 void SQLitePersistentCookieStore::Backend::DeleteSessionCookiesOnShutdown() { | 994 void SQLitePersistentCookieStore::Backend::DeleteSessionCookiesOnShutdown() { |
995 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); | 995 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); |
996 | 996 |
997 if (!db_.get()) | 997 if (!db_) |
998 return; | 998 return; |
999 | 999 |
1000 if (!special_storage_policy_.get()) | 1000 if (!special_storage_policy_) |
1001 return; | 1001 return; |
1002 | 1002 |
1003 sql::Statement del_smt(db_->GetCachedStatement( | 1003 sql::Statement del_smt(db_->GetCachedStatement( |
1004 SQL_FROM_HERE, "DELETE FROM cookies WHERE host_key=? AND secure=?")); | 1004 SQL_FROM_HERE, "DELETE FROM cookies WHERE host_key=? AND secure=?")); |
1005 if (!del_smt.is_valid()) { | 1005 if (!del_smt.is_valid()) { |
1006 LOG(WARNING) << "Unable to delete cookies on shutdown."; | 1006 LOG(WARNING) << "Unable to delete cookies on shutdown."; |
1007 return; | 1007 return; |
1008 } | 1008 } |
1009 | 1009 |
1010 sql::Transaction transaction(db_.get()); | 1010 sql::Transaction transaction(db_.get()); |
(...skipping 30 matching lines...) Expand all Loading... |
1041 corruption_detected_ = true; | 1041 corruption_detected_ = true; |
1042 | 1042 |
1043 // Don't just do the close/delete here, as we are being called by |db| and | 1043 // Don't just do the close/delete here, as we are being called by |db| and |
1044 // that seems dangerous. | 1044 // that seems dangerous. |
1045 PostBackgroundTask(FROM_HERE, base::Bind(&Backend::KillDatabase, this)); | 1045 PostBackgroundTask(FROM_HERE, base::Bind(&Backend::KillDatabase, this)); |
1046 } | 1046 } |
1047 | 1047 |
1048 void SQLitePersistentCookieStore::Backend::KillDatabase() { | 1048 void SQLitePersistentCookieStore::Backend::KillDatabase() { |
1049 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); | 1049 DCHECK(background_task_runner_->RunsTasksOnCurrentThread()); |
1050 | 1050 |
1051 if (db_.get()) { | 1051 if (db_) { |
1052 // This Backend will now be in-memory only. In a future run we will recreate | 1052 // This Backend will now be in-memory only. In a future run we will recreate |
1053 // the database. Hopefully things go better then! | 1053 // the database. Hopefully things go better then! |
1054 bool success = db_->RazeAndClose(); | 1054 bool success = db_->RazeAndClose(); |
1055 UMA_HISTOGRAM_BOOLEAN("Cookie.KillDatabaseResult", success); | 1055 UMA_HISTOGRAM_BOOLEAN("Cookie.KillDatabaseResult", success); |
1056 meta_table_.Reset(); | 1056 meta_table_.Reset(); |
1057 db_.reset(); | 1057 db_.reset(); |
1058 } | 1058 } |
1059 } | 1059 } |
1060 | 1060 |
1061 void SQLitePersistentCookieStore::Backend::SetForceKeepSessionState() { | 1061 void SQLitePersistentCookieStore::Backend::SetForceKeepSessionState() { |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1145 path, | 1145 path, |
1146 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), | 1146 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
1147 BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( | 1147 BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( |
1148 BrowserThread::GetBlockingPool()->GetSequenceToken()), | 1148 BrowserThread::GetBlockingPool()->GetSequenceToken()), |
1149 restore_old_session_cookies, | 1149 restore_old_session_cookies, |
1150 storage_policy); | 1150 storage_policy); |
1151 return new net::CookieMonster(persistent_store, cookie_monster_delegate); | 1151 return new net::CookieMonster(persistent_store, cookie_monster_delegate); |
1152 } | 1152 } |
1153 | 1153 |
1154 } // namespace content | 1154 } // namespace content |
OLD | NEW |