OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/quota_policy_cookie_store.h" | 5 #include "content/browser/net/quota_policy_cookie_store.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
122 session_cookie_mode(session_cookie_mode), | 122 session_cookie_mode(session_cookie_mode), |
123 storage_policy(storage_policy), | 123 storage_policy(storage_policy), |
124 cookie_delegate(cookie_delegate), | 124 cookie_delegate(cookie_delegate), |
125 crypto_delegate(nullptr) { | 125 crypto_delegate(nullptr) { |
126 CHECK(!path.empty() || session_cookie_mode == EPHEMERAL_SESSION_COOKIES); | 126 CHECK(!path.empty() || session_cookie_mode == EPHEMERAL_SESSION_COOKIES); |
127 } | 127 } |
128 | 128 |
129 CookieStoreConfig::~CookieStoreConfig() { | 129 CookieStoreConfig::~CookieStoreConfig() { |
130 } | 130 } |
131 | 131 |
132 net::CookieStore* CreateCookieStore(const CookieStoreConfig& config) { | 132 scoped_ptr<net::CookieStore> CreateCookieStore( |
133 const CookieStoreConfig& config) { | |
133 // TODO(bcwhite): Remove ScopedTracker below once crbug.com/483686 is fixed. | 134 // TODO(bcwhite): Remove ScopedTracker below once crbug.com/483686 is fixed. |
134 tracked_objects::ScopedTracker tracking_profile( | 135 tracked_objects::ScopedTracker tracking_profile( |
135 FROM_HERE_WITH_EXPLICIT_FUNCTION("483686 content::CreateCookieStore")); | 136 FROM_HERE_WITH_EXPLICIT_FUNCTION("483686 content::CreateCookieStore")); |
136 | 137 |
137 net::CookieMonster* cookie_monster = nullptr; | 138 scoped_ptr<net::CookieMonster> cookie_monster; |
138 | 139 |
139 if (config.path.empty()) { | 140 if (config.path.empty()) { |
140 // Empty path means in-memory store. | 141 // Empty path means in-memory store. |
141 cookie_monster = new net::CookieMonster(nullptr, | 142 cookie_monster.reset( |
142 config.cookie_delegate.get()); | 143 new net::CookieMonster(nullptr, config.cookie_delegate.get())); |
143 } else { | 144 } else { |
144 scoped_refptr<base::SequencedTaskRunner> client_task_runner = | 145 scoped_refptr<base::SequencedTaskRunner> client_task_runner = |
145 config.client_task_runner; | 146 config.client_task_runner; |
146 scoped_refptr<base::SequencedTaskRunner> background_task_runner = | 147 scoped_refptr<base::SequencedTaskRunner> background_task_runner = |
147 config.background_task_runner; | 148 config.background_task_runner; |
148 | 149 |
149 if (!client_task_runner.get()) { | 150 if (!client_task_runner.get()) { |
150 client_task_runner = | 151 client_task_runner = |
151 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); | 152 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO); |
152 } | 153 } |
(...skipping 11 matching lines...) Expand all Loading... | |
164 background_task_runner, | 165 background_task_runner, |
165 (config.session_cookie_mode == | 166 (config.session_cookie_mode == |
166 CookieStoreConfig::RESTORED_SESSION_COOKIES), | 167 CookieStoreConfig::RESTORED_SESSION_COOKIES), |
167 config.crypto_delegate)); | 168 config.crypto_delegate)); |
168 | 169 |
169 QuotaPolicyCookieStore* persistent_store = | 170 QuotaPolicyCookieStore* persistent_store = |
170 new QuotaPolicyCookieStore( | 171 new QuotaPolicyCookieStore( |
171 sqlite_store.get(), | 172 sqlite_store.get(), |
172 config.storage_policy.get()); | 173 config.storage_policy.get()); |
173 | 174 |
174 cookie_monster = | 175 cookie_monster.reset( |
175 new net::CookieMonster(persistent_store, config.cookie_delegate.get()); | 176 new net::CookieMonster(persistent_store, config.cookie_delegate.get())); |
176 if ((config.session_cookie_mode == | 177 if ((config.session_cookie_mode == |
177 CookieStoreConfig::PERSISTANT_SESSION_COOKIES) || | 178 CookieStoreConfig::PERSISTANT_SESSION_COOKIES) || |
178 (config.session_cookie_mode == | 179 (config.session_cookie_mode == |
179 CookieStoreConfig::RESTORED_SESSION_COOKIES)) { | 180 CookieStoreConfig::RESTORED_SESSION_COOKIES)) { |
180 cookie_monster->SetPersistSessionCookies(true); | 181 cookie_monster->SetPersistSessionCookies(true); |
181 } | 182 } |
182 } | 183 } |
183 | 184 |
184 if (!config.cookieable_schemes.empty()) | 185 if (!config.cookieable_schemes.empty()) |
185 cookie_monster->SetCookieableSchemes(config.cookieable_schemes); | 186 cookie_monster->SetCookieableSchemes(config.cookieable_schemes); |
186 | 187 |
187 return cookie_monster; | 188 return make_scoped_ptr(cookie_monster.release()); |
Randy Smith (Not in Mondays)
2016/02/29 22:37:45
nit: Is there something I'm not understanding abou
mmenke
2016/02/29 23:00:29
cookie_monster is a scoped_ptr<CookieMonster>, whi
mmenke
2016/03/01 01:40:47
Looks like clang is smart enough to know when std:
| |
188 } | 189 } |
189 | 190 |
190 } // namespace content | 191 } // namespace content |
OLD | NEW |