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

Side by Side Diff: chrome/browser/metrics/metrics_reporting_scheduler.cc

Issue 8536054: Migrate several instances of NewRunnableMethod to base::Bind in browser/metrics (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/metrics/metrics_reporting_scheduler.h" 5 #include "chrome/browser/metrics/metrics_reporting_scheduler.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "chrome/browser/metrics/metrics_service.h" 8 #include "chrome/browser/metrics/metrics_service.h"
9 9
10 using base::Time; 10 using base::Time;
(...skipping 15 matching lines...) Expand all
26 // The following is the multiplier we use to expand that inter-log duration. 26 // The following is the multiplier we use to expand that inter-log duration.
27 static const double kBackoffMultiplier = 1.1; 27 static const double kBackoffMultiplier = 1.1;
28 28
29 // The maximum backoff multiplier. 29 // The maximum backoff multiplier.
30 static const int kMaxBackoffMultiplier = 10; 30 static const int kMaxBackoffMultiplier = 10;
31 31
32 32
33 MetricsReportingScheduler::MetricsReportingScheduler( 33 MetricsReportingScheduler::MetricsReportingScheduler(
34 const base::Closure& upload_callback) 34 const base::Closure& upload_callback)
35 : upload_callback_(upload_callback), 35 : upload_callback_(upload_callback),
36 ALLOW_THIS_IN_INITIALIZER_LIST(upload_timer_factory_(this)), 36 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)),
37 upload_interval_(TimeDelta::FromSeconds(kInitialUploadIntervalSeconds)), 37 upload_interval_(TimeDelta::FromSeconds(kInitialUploadIntervalSeconds)),
38 running_(false), 38 running_(false),
39 timer_pending_(false), 39 timer_pending_(false),
40 callback_pending_(false) { 40 callback_pending_(false) {
41 } 41 }
42 42
43 MetricsReportingScheduler::~MetricsReportingScheduler() {} 43 MetricsReportingScheduler::~MetricsReportingScheduler() {}
44 44
45 void MetricsReportingScheduler::Start() { 45 void MetricsReportingScheduler::Start() {
46 running_ = true; 46 running_ = true;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 85
86 void MetricsReportingScheduler::ScheduleNextCallback() { 86 void MetricsReportingScheduler::ScheduleNextCallback() {
87 DCHECK(running_); 87 DCHECK(running_);
88 if (timer_pending_ || callback_pending_) 88 if (timer_pending_ || callback_pending_)
89 return; 89 return;
90 90
91 timer_pending_ = true; 91 timer_pending_ = true;
92 92
93 MessageLoop::current()->PostDelayedTask( 93 MessageLoop::current()->PostDelayedTask(
94 FROM_HERE, 94 FROM_HERE,
95 upload_timer_factory_.NewRunnableMethod( 95 base::Bind(&MetricsReportingScheduler::TriggerUpload,
96 &MetricsReportingScheduler::TriggerUpload), 96 weak_ptr_factory_.GetWeakPtr()),
97 upload_interval_.InMilliseconds()); 97 upload_interval_.InMilliseconds());
98 } 98 }
99 99
100 void MetricsReportingScheduler::BackOffUploadInterval() { 100 void MetricsReportingScheduler::BackOffUploadInterval() {
101 DCHECK(kBackoffMultiplier > 1.0); 101 DCHECK(kBackoffMultiplier > 1.0);
102 upload_interval_ = TimeDelta::FromMicroseconds( 102 upload_interval_ = TimeDelta::FromMicroseconds(
103 static_cast<int64>(kBackoffMultiplier * 103 static_cast<int64>(kBackoffMultiplier *
104 upload_interval_.InMicroseconds())); 104 upload_interval_.InMicroseconds()));
105 105
106 TimeDelta max_interval = kMaxBackoffMultiplier * 106 TimeDelta max_interval = kMaxBackoffMultiplier *
107 TimeDelta::FromSeconds(kStandardUploadIntervalSeconds); 107 TimeDelta::FromSeconds(kStandardUploadIntervalSeconds);
108 if (upload_interval_ > max_interval || upload_interval_.InSeconds() < 0) { 108 if (upload_interval_ > max_interval || upload_interval_.InSeconds() < 0) {
109 upload_interval_ = max_interval; 109 upload_interval_ = max_interval;
110 } 110 }
111 } 111 }
OLDNEW
« no previous file with comments | « chrome/browser/metrics/metrics_reporting_scheduler.h ('k') | chrome/browser/metrics/metrics_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698