Commit a3cd23ee authored by cfredric's avatar cfredric Committed by Commit Bot

Move CookieStore and SessionCleanupCookieStore initialization out of

MakeURLRequestContext.

Change-Id: Ib70802646e93f7f03d26d0db5a708193db94b4eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2495291
Commit-Queue: Chris Fredrickson <cfredric@google.com>
Reviewed-by: default avatarEric Orth <ericorth@chromium.org>
Reviewed-by: default avatarLily Chen <chlily@chromium.org>
Cr-Commit-Position: refs/heads/master@{#820446}
parent 96bbb4cb
......@@ -399,9 +399,17 @@ NetworkContext::NetworkContext(
url_loader_factory_for_cert_net_fetcher
.InitWithNewPipeAndPassReceiver();
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store =
MakeSessionCleanupCookieStore();
url_request_context_owner_ =
MakeURLRequestContext(std::move(url_loader_factory_for_cert_net_fetcher));
MakeURLRequestContext(std::move(url_loader_factory_for_cert_net_fetcher),
session_cleanup_cookie_store);
url_request_context_ = url_request_context_owner_.url_request_context.get();
cookie_manager_ = std::make_unique<CookieManager>(
url_request_context_owner_.url_request_context->cookie_store(),
std::move(session_cleanup_cookie_store),
std::move(params_->cookie_manager_params));
network_service_->RegisterNetworkContext(this);
......@@ -1808,7 +1816,8 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
URLRequestContextOwner NetworkContext::MakeURLRequestContext(
mojo::PendingRemote<mojom::URLLoaderFactory>
url_loader_factory_for_cert_net_fetcher) {
url_loader_factory_for_cert_net_fetcher,
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store) {
URLRequestContextBuilderMojo builder;
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
......@@ -1907,33 +1916,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator());
}
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store;
if (params_->cookie_path) {
scoped_refptr<base::SequencedTaskRunner> client_task_runner =
base::ThreadTaskRunnerHandle::Get();
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::ThreadPool::CreateSequencedTaskRunner(
{base::MayBlock(), net::GetCookieStoreBackgroundSequencePriority(),
base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
net::CookieCryptoDelegate* crypto_delegate = nullptr;
if (params_->enable_encrypted_cookies) {
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
DCHECK(network_service_->os_crypt_config_set())
<< "NetworkService::SetCryptConfig must be called before creating a "
"NetworkContext with encrypted cookies.";
#endif
crypto_delegate = cookie_config::GetCookieCryptoDelegate();
}
scoped_refptr<net::SQLitePersistentCookieStore> sqlite_store(
new net::SQLitePersistentCookieStore(
params_->cookie_path.value(), client_task_runner,
background_task_runner, params_->restore_old_session_cookies,
crypto_delegate));
session_cleanup_cookie_store =
base::MakeRefCounted<SessionCleanupCookieStore>(sqlite_store);
if (session_cleanup_cookie_store) {
std::unique_ptr<net::CookieMonster> cookie_store =
std::make_unique<net::CookieMonster>(session_cleanup_cookie_store.get(),
net_log);
......@@ -1941,9 +1924,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
cookie_store->SetPersistSessionCookies(true);
builder.SetCookieStore(std::move(cookie_store));
} else {
DCHECK(!params_->restore_old_session_cookies);
DCHECK(!params_->persist_session_cookies);
}
if (base::FeatureList::IsEnabled(features::kTrustTokens)) {
......@@ -2268,17 +2248,44 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
result.url_request_context->proxy_resolution_service());
}
cookie_manager_ = std::make_unique<CookieManager>(
result.url_request_context->cookie_store(),
std::move(session_cleanup_cookie_store),
std::move(params_->cookie_manager_params));
if (cert_net_fetcher_)
cert_net_fetcher_->SetURLRequestContext(result.url_request_context.get());
return result;
}
scoped_refptr<SessionCleanupCookieStore>
NetworkContext::MakeSessionCleanupCookieStore() const {
if (!params_->cookie_path) {
DCHECK(!params_->restore_old_session_cookies);
DCHECK(!params_->persist_session_cookies);
return nullptr;
}
scoped_refptr<base::SequencedTaskRunner> client_task_runner =
base::ThreadTaskRunnerHandle::Get();
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::ThreadPool::CreateSequencedTaskRunner(
{base::MayBlock(), net::GetCookieStoreBackgroundSequencePriority(),
base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
net::CookieCryptoDelegate* crypto_delegate = nullptr;
if (params_->enable_encrypted_cookies) {
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !BUILDFLAG(IS_CHROMECAST)
DCHECK(network_service_->os_crypt_config_set())
<< "NetworkService::SetCryptConfig must be called before creating a "
"NetworkContext with encrypted cookies.";
#endif
crypto_delegate = cookie_config::GetCookieCryptoDelegate();
}
scoped_refptr<net::SQLitePersistentCookieStore> sqlite_store(
new net::SQLitePersistentCookieStore(
params_->cookie_path.value(), client_task_runner,
background_task_runner, params_->restore_old_session_cookies,
crypto_delegate));
return base::MakeRefCounted<SessionCleanupCookieStore>(sqlite_store);
}
void NetworkContext::OnHttpCacheCleared(ClearHttpCacheCallback callback,
HttpCacheDataRemover* remover) {
bool removed = false;
......
......@@ -89,17 +89,18 @@ class CertVerifierWithTrustAnchors;
class CookieManager;
class ExpectCTReporter;
class HostResolver;
class MdnsResponderManager;
class NetworkService;
class NetworkServiceNetworkDelegate;
class NetworkServiceProxyDelegate;
class MdnsResponderManager;
class P2PSocketManager;
class PendingTrustTokenStore;
class ProxyLookupRequest;
class QuicTransport;
class ResourceScheduler;
class ResourceSchedulerClient;
class SessionCleanupCookieStore;
class SQLiteTrustTokenPersister;
class PendingTrustTokenStore;
class WebSocketFactory;
namespace cors {
......@@ -515,7 +516,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
private:
URLRequestContextOwner MakeURLRequestContext(
mojo::PendingRemote<mojom::URLLoaderFactory>
url_loader_factory_for_cert_net_fetcher);
url_loader_factory_for_cert_net_fetcher,
scoped_refptr<SessionCleanupCookieStore>);
scoped_refptr<SessionCleanupCookieStore> MakeSessionCleanupCookieStore()
const;
// Invoked when the HTTP cache was cleared. Invokes |callback|.
void OnHttpCacheCleared(ClearHttpCacheCallback callback,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment