Index: content/browser/net/sqlite_persistent_cookie_store.cc |
diff --git a/content/browser/net/sqlite_persistent_cookie_store.cc b/content/browser/net/sqlite_persistent_cookie_store.cc |
index c23692d475071502c2b8d1d081fab3ffdebd6095..dad4b62117d3f84555ec041e834118d23179913f 100644 |
--- a/content/browser/net/sqlite_persistent_cookie_store.cc |
+++ b/content/browser/net/sqlite_persistent_cookie_store.cc |
@@ -1194,28 +1194,65 @@ SQLitePersistentCookieStore::~SQLitePersistentCookieStore() { |
// a reference if the background runner has not run Close() yet. |
} |
-net::CookieStore* CreatePersistentCookieStore( |
+CookieStoreConfig::CookieStoreConfig( |
+ bool in_memory, |
const base::FilePath& path, |
bool restore_old_session_cookies, |
quota::SpecialStoragePolicy* storage_policy, |
- net::CookieMonster::Delegate* cookie_monster_delegate) { |
+ net::CookieMonsterDelegate* cookie_delegate) |
+ : in_memory(in_memory), |
+ path(path), |
+ restore_old_session_cookies(restore_old_session_cookies), |
+ storage_policy(storage_policy), |
+ cookie_delegate(cookie_delegate) { |
+} |
+ |
+CookieStoreConfig::~CookieStoreConfig() { |
+} |
+ |
+CookieStoreConfig CookieStoreConfig::InMemory() { |
+ return CookieStoreConfig(true, base::FilePath(), false, NULL, NULL); |
+} |
+ |
+CookieStoreConfig CookieStoreConfig::InMemoryWithOptions( |
+ quota::SpecialStoragePolicy* storage_policy, |
+ net::CookieMonsterDelegate* cookie_delegate) { |
+ // TODO(ajwong): Why in the world do we want a storage policy with InMemory? |
+ return CookieStoreConfig(true, base::FilePath(), |
+ false, storage_policy, cookie_delegate); |
+} |
+ |
+CookieStoreConfig CookieStoreConfig::Persistent( |
+ const base::FilePath& path, |
+ bool restore_old_session_cookies) { |
+ return CookieStoreConfig(false, path, restore_old_session_cookies, NULL, |
+ NULL); |
+} |
+ |
+CookieStoreConfig CookieStoreConfig::PersistentWithOptions( |
+ const base::FilePath& path, |
+ bool restore_old_session_cookies, |
+ quota::SpecialStoragePolicy* storage_policy, |
+ net::CookieMonsterDelegate* cookie_delegate) { |
+ return CookieStoreConfig(false, path, restore_old_session_cookies, |
+ storage_policy, cookie_delegate); |
+} |
+ |
+net::CookieStore* CreateCookieStore(const CookieStoreConfig& config) { |
+ if (config.in_memory) { |
+ return new net::CookieMonster(NULL, config.cookie_delegate); |
+ } |
+ |
SQLitePersistentCookieStore* persistent_store = |
new SQLitePersistentCookieStore( |
- path, |
+ config.path, |
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
BrowserThread::GetBlockingPool()->GetSequencedTaskRunner( |
BrowserThread::GetBlockingPool()->GetSequenceToken()), |
- restore_old_session_cookies, |
- storage_policy); |
- net::CookieMonster* cookie_monster = |
- new net::CookieMonster(persistent_store, cookie_monster_delegate); |
- |
- const std::string cookie_priority_experiment_group = |
- base::FieldTrialList::FindFullName("CookieRetentionPriorityStudy"); |
- cookie_monster->SetPriorityAwareGarbageCollection( |
- cookie_priority_experiment_group == "ExperimentOn"); |
- |
- return cookie_monster; |
+ config.restore_old_session_cookies, |
+ config.storage_policy); |
+ return new net::CookieMonster(persistent_store, |
+ config.cookie_delegate); |
} |
} // namespace content |