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

Unified Diff: chrome/browser/profiles/profile_impl_io_data.cc

Issue 2336043007: Domain Reliability: Don't crash on shutdown with uploads pending (Closed)
Patch Set: Initialize new raw pointer. Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
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 9865b76f3cbfddfb260de20402a2009925771087..7ebbab6f0eff15068ad9096d95c0e5a243ef0da7 100644
--- a/chrome/browser/profiles/profile_impl_io_data.cc
+++ b/chrome/browser/profiles/profile_impl_io_data.cc
@@ -180,11 +180,11 @@ void ProfileImplIOData::Handle::Init(
io_data_->app_media_cache_max_size_ = media_cache_max_size;
io_data_->predictor_.reset(predictor);
- io_data_->domain_reliability_monitor_ = std::move(domain_reliability_monitor);
+ io_data_->domain_reliability_monitor_ = domain_reliability_monitor.release();
davidben 2016/09/26 21:14:48 This part and the WrapUnique below seems kind of o
mmenke 2016/09/26 21:30:09 Yea, this seems like a problem, and adding it to L
Julia Tuttle 2016/09/27 16:49:59 Done.
Julia Tuttle 2016/09/27 16:49:59 Cool, done.
io_data_->InitializeMetricsEnabledStateOnUIThread();
- if (io_data_->domain_reliability_monitor_)
- io_data_->domain_reliability_monitor_->MoveToNetworkThread();
+ if (domain_reliability_monitor)
+ domain_reliability_monitor->MoveToNetworkThread();
io_data_->set_data_reduction_proxy_io_data(
CreateDataReductionProxyChromeIOData(
@@ -425,11 +425,15 @@ ProfileImplIOData::LazyParams::~LazyParams() {}
ProfileImplIOData::ProfileImplIOData()
: ProfileIOData(Profile::REGULAR_PROFILE),
http_server_properties_manager_(NULL),
+ domain_reliability_monitor_(nullptr),
app_cache_max_size_(0),
app_media_cache_max_size_(0) {
}
ProfileImplIOData::~ProfileImplIOData() {
+ if (domain_reliability_monitor_)
+ domain_reliability_monitor_->Shutdown();
+
DestroyResourceContext();
if (media_request_context_)
@@ -458,11 +462,12 @@ void ProfileImplIOData::InitializeInternal(
if (domain_reliability_monitor_) {
domain_reliability::DomainReliabilityMonitor* monitor =
- domain_reliability_monitor_.get();
+ domain_reliability_monitor_;
monitor->InitURLRequestContext(main_context);
monitor->AddBakedInConfigs();
monitor->SetDiscardUploads(!GetMetricsEnabledStateOnIOThread());
- chrome_network_delegate->set_domain_reliability_monitor(monitor);
+ chrome_network_delegate->set_domain_reliability_monitor(
+ base::WrapUnique(monitor));
}
ApplyProfileParamsToContext(main_context);

Powered by Google App Engine
This is Rietveld 408576698