Index: chrome/browser/metrics/metrics_reporting_scheduler.cc |
diff --git a/chrome/browser/metrics/metrics_reporting_scheduler.cc b/chrome/browser/metrics/metrics_reporting_scheduler.cc |
index a895584649f543f4f359824964f32a49a45ae56b..3cd53e28153d55c27b8e6e4775d8a11af396894d 100644 |
--- a/chrome/browser/metrics/metrics_reporting_scheduler.cc |
+++ b/chrome/browser/metrics/metrics_reporting_scheduler.cc |
@@ -33,7 +33,7 @@ static const int kMaxBackoffMultiplier = 10; |
MetricsReportingScheduler::MetricsReportingScheduler( |
const base::Closure& upload_callback) |
: upload_callback_(upload_callback), |
- ALLOW_THIS_IN_INITIALIZER_LIST(upload_timer_factory_(this)), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)), |
upload_interval_(TimeDelta::FromSeconds(kInitialUploadIntervalSeconds)), |
running_(false), |
timer_pending_(false), |
@@ -92,8 +92,8 @@ void MetricsReportingScheduler::ScheduleNextCallback() { |
MessageLoop::current()->PostDelayedTask( |
FROM_HERE, |
- upload_timer_factory_.NewRunnableMethod( |
- &MetricsReportingScheduler::TriggerUpload), |
+ base::Bind(&MetricsReportingScheduler::TriggerUpload, |
+ weak_ptr_factory_.GetWeakPtr()), |
upload_interval_.InMilliseconds()); |
} |