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

Side by Side Diff: content/browser/net/quota_policy_cookie_store.cc

Issue 1701063002: CookieStore: Remove reference counting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@threadsafe
Patch Set: Fix leak Created 4 years, 9 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698