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( ...@@ -399,9 +399,17 @@ NetworkContext::NetworkContext(
url_loader_factory_for_cert_net_fetcher url_loader_factory_for_cert_net_fetcher
.InitWithNewPipeAndPassReceiver(); .InitWithNewPipeAndPassReceiver();
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store =
MakeSessionCleanupCookieStore();
url_request_context_owner_ = 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(); 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); network_service_->RegisterNetworkContext(this);
...@@ -1808,7 +1816,8 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged( ...@@ -1808,7 +1816,8 @@ void NetworkContext::OnHttpAuthDynamicParamsChanged(
URLRequestContextOwner NetworkContext::MakeURLRequestContext( URLRequestContextOwner NetworkContext::MakeURLRequestContext(
mojo::PendingRemote<mojom::URLLoaderFactory> 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; URLRequestContextBuilderMojo builder;
const base::CommandLine* command_line = const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess(); base::CommandLine::ForCurrentProcess();
...@@ -1907,33 +1916,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( ...@@ -1907,33 +1916,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator()); network_service_->network_quality_estimator());
} }
scoped_refptr<SessionCleanupCookieStore> session_cleanup_cookie_store; if (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);
std::unique_ptr<net::CookieMonster> cookie_store = std::unique_ptr<net::CookieMonster> cookie_store =
std::make_unique<net::CookieMonster>(session_cleanup_cookie_store.get(), std::make_unique<net::CookieMonster>(session_cleanup_cookie_store.get(),
net_log); net_log);
...@@ -1941,9 +1924,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( ...@@ -1941,9 +1924,6 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
cookie_store->SetPersistSessionCookies(true); cookie_store->SetPersistSessionCookies(true);
builder.SetCookieStore(std::move(cookie_store)); builder.SetCookieStore(std::move(cookie_store));
} else {
DCHECK(!params_->restore_old_session_cookies);
DCHECK(!params_->persist_session_cookies);
} }
if (base::FeatureList::IsEnabled(features::kTrustTokens)) { if (base::FeatureList::IsEnabled(features::kTrustTokens)) {
...@@ -2268,17 +2248,44 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( ...@@ -2268,17 +2248,44 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
result.url_request_context->proxy_resolution_service()); 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_) if (cert_net_fetcher_)
cert_net_fetcher_->SetURLRequestContext(result.url_request_context.get()); cert_net_fetcher_->SetURLRequestContext(result.url_request_context.get());
return result; 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, void NetworkContext::OnHttpCacheCleared(ClearHttpCacheCallback callback,
HttpCacheDataRemover* remover) { HttpCacheDataRemover* remover) {
bool removed = false; bool removed = false;
......
...@@ -89,17 +89,18 @@ class CertVerifierWithTrustAnchors; ...@@ -89,17 +89,18 @@ class CertVerifierWithTrustAnchors;
class CookieManager; class CookieManager;
class ExpectCTReporter; class ExpectCTReporter;
class HostResolver; class HostResolver;
class MdnsResponderManager;
class NetworkService; class NetworkService;
class NetworkServiceNetworkDelegate; class NetworkServiceNetworkDelegate;
class NetworkServiceProxyDelegate; class NetworkServiceProxyDelegate;
class MdnsResponderManager;
class P2PSocketManager; class P2PSocketManager;
class PendingTrustTokenStore;
class ProxyLookupRequest; class ProxyLookupRequest;
class QuicTransport; class QuicTransport;
class ResourceScheduler; class ResourceScheduler;
class ResourceSchedulerClient; class ResourceSchedulerClient;
class SessionCleanupCookieStore;
class SQLiteTrustTokenPersister; class SQLiteTrustTokenPersister;
class PendingTrustTokenStore;
class WebSocketFactory; class WebSocketFactory;
namespace cors { namespace cors {
...@@ -515,7 +516,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext ...@@ -515,7 +516,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
private: private:
URLRequestContextOwner MakeURLRequestContext( URLRequestContextOwner MakeURLRequestContext(
mojo::PendingRemote<mojom::URLLoaderFactory> 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|. // Invoked when the HTTP cache was cleared. Invokes |callback|.
void OnHttpCacheCleared(ClearHttpCacheCallback 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