Index: chrome/browser/profiles/profile_impl_io_data.cc |
diff --git a/chrome/browser/profiles/profile_impl_io_data.cc b/chrome/browser/profiles/profile_impl_io_data.cc |
index a2680af2597f5ad08869f40ecc01320ebabcebf7..89f3832f0de404e27e7aad79a37b9a28e9d4db32 100644 |
--- a/chrome/browser/profiles/profile_impl_io_data.cc |
+++ b/chrome/browser/profiles/profile_impl_io_data.cc |
@@ -53,6 +53,7 @@ |
#include "components/prefs/pref_member.h" |
#include "components/prefs/pref_service.h" |
#include "components/previews/core/previews_io_data.h" |
+#include "components/reporting/content/browser/reporting_network_delegate.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/cookie_store_factory.h" |
#include "content/public/browser/notification_service.h" |
@@ -155,7 +156,9 @@ void ProfileImplIOData::Handle::Init( |
content::CookieStoreConfig::SessionCookieMode session_cookie_mode, |
storage::SpecialStoragePolicy* special_storage_policy, |
std::unique_ptr<domain_reliability::DomainReliabilityMonitor> |
- domain_reliability_monitor) { |
+ domain_reliability_monitor, |
+ std::unique_ptr<reporting::ReportingNetworkDelegate::Handle> |
+ reporting_handle) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DCHECK(!io_data_->lazy_params_); |
DCHECK(predictor); |
@@ -189,6 +192,7 @@ void ProfileImplIOData::Handle::Init( |
io_data_->predictor_.reset(predictor); |
io_data_->domain_reliability_monitor_ = std::move(domain_reliability_monitor); |
+ io_data_->reporting_handle_ = std::move(reporting_handle); |
io_data_->InitializeMetricsEnabledStateOnUIThread(); |
if (io_data_->domain_reliability_monitor_) |
@@ -482,11 +486,22 @@ void ProfileImplIOData::InitializeInternal( |
main_context->set_net_log(io_thread->net_log()); |
- main_context_storage->set_network_delegate( |
- data_reduction_proxy_io_data()->CreateNetworkDelegate( |
- io_thread_globals->data_use_ascriber->CreateNetworkDelegate( |
- std::move(chrome_network_delegate)), |
- true)); |
+ { |
+ std::unique_ptr<net::NetworkDelegate> network_delegate = |
+ std::move(chrome_network_delegate); |
+ |
+ network_delegate = data_reduction_proxy_io_data()->CreateNetworkDelegate( |
+ io_thread_globals->data_use_ascriber->CreateNetworkDelegate( |
+ std::move(network_delegate)), |
+ true); |
+ |
+ if (reporting_handle_) { |
+ network_delegate = base::MakeUnique<reporting::ReportingNetworkDelegate>( |
+ std::move(network_delegate), std::move(reporting_handle_)); |
+ } |
+ |
+ main_context->set_network_delegate(network_delegate.release()); |
+ } |
main_context->set_host_resolver( |
io_thread_globals->host_resolver.get()); |