| Index: ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
|
| diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
|
| index 26b0cf947c5ff12eebf19b9b73fdf2012328ddb3..e8c9434d7f49416bcd9cb478e05155aea0f9d072 100644
|
| --- a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
|
| +++ b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
|
| @@ -416,11 +416,23 @@ ChromeBrowserStateImplIOData::InitializeAppRequestContext(
|
| AppRequestContext* context = new AppRequestContext();
|
| context->CopyFrom(main_context);
|
|
|
| + // Use a separate ChannelIDService.
|
| + std::unique_ptr<net::ChannelIDService> channel_id_service(
|
| + new net::ChannelIDService(new net::DefaultChannelIDStore(nullptr),
|
| + base::WorkerPool::GetTaskRunner(true)));
|
| +
|
| + // Build a new HttpNetworkSession that uses the new ChannelIDService.
|
| + net::HttpNetworkSession::Params network_params =
|
| + http_network_session_->params();
|
| + network_params.channel_id_service = channel_id_service.get();
|
| + std::unique_ptr<net::HttpNetworkSession> http_network_session(
|
| + new net::HttpNetworkSession(network_params));
|
| +
|
| // Use a separate HTTP disk cache for isolated apps.
|
| std::unique_ptr<net::HttpCache::BackendFactory> app_backend =
|
| net::HttpCache::DefaultBackend::InMemory(0);
|
| std::unique_ptr<net::HttpCache> app_http_cache =
|
| - CreateHttpFactory(http_network_session_.get(), std::move(app_backend));
|
| + CreateHttpFactory(http_network_session.get(), std::move(app_backend));
|
|
|
| cookie_util::CookieStoreConfig ios_cookie_config(
|
| base::FilePath(),
|
| @@ -429,7 +441,10 @@ ChromeBrowserStateImplIOData::InitializeAppRequestContext(
|
| std::unique_ptr<net::CookieStore> cookie_store =
|
| cookie_util::CreateCookieStore(ios_cookie_config);
|
|
|
| - // Transfer ownership of the cookies and cache to AppRequestContext.
|
| + // Transfer ownership of the ChannelIDStore, HttpNetworkSession, cookies, and
|
| + // cache to AppRequestContext.
|
| + context->SetChannelIDService(std::move(channel_id_service));
|
| + context->SetHttpNetworkSession(std::move(http_network_session));
|
| context->SetCookieStore(std::move(cookie_store));
|
| context->SetHttpTransactionFactory(std::move(app_http_cache));
|
|
|
|
|