summaryrefslogtreecommitdiff
path: root/chromium/google_apis/gcm/engine/checkin_request.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/google_apis/gcm/engine/checkin_request.cc')
-rw-r--r--chromium/google_apis/gcm/engine/checkin_request.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/chromium/google_apis/gcm/engine/checkin_request.cc b/chromium/google_apis/gcm/engine/checkin_request.cc
index 845b6b12e70..031a05fe1ea 100644
--- a/chromium/google_apis/gcm/engine/checkin_request.cc
+++ b/chromium/google_apis/gcm/engine/checkin_request.cc
@@ -7,7 +7,6 @@
#include "base/bind.h"
#include "base/location.h"
#include "base/metrics/histogram_macros.h"
-#include "base/threading/thread_task_runner_handle.h"
#include "google_apis/gcm/monitoring/gcm_stats_recorder.h"
#include "google_apis/gcm/protocol/checkin.pb.h"
#include "net/base/load_flags.h"
@@ -103,18 +102,23 @@ CheckinRequest::CheckinRequest(
const net::BackoffEntry::Policy& backoff_policy,
const CheckinRequestCallback& callback,
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
+ scoped_refptr<base::SequencedTaskRunner> io_task_runner,
GCMStatsRecorder* recorder)
: url_loader_factory_(url_loader_factory),
callback_(callback),
backoff_entry_(&backoff_policy),
checkin_url_(checkin_url),
request_info_(request_info),
+ io_task_runner_(std::move(io_task_runner)),
recorder_(recorder),
- weak_ptr_factory_(this) {}
+ weak_ptr_factory_(this) {
+ DCHECK(io_task_runner_);
+}
CheckinRequest::~CheckinRequest() {}
void CheckinRequest::Start() {
+ DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
DCHECK(!url_loader_.get());
checkin_proto::AndroidCheckinRequest request;
@@ -196,6 +200,8 @@ void CheckinRequest::Start() {
}
void CheckinRequest::RetryWithBackoff() {
+ DCHECK(io_task_runner_->RunsTasksInCurrentSequence());
+
backoff_entry_.InformOfRequest(false);
url_loader_.reset();
@@ -205,7 +211,7 @@ void CheckinRequest::RetryWithBackoff() {
recorder_->RecordCheckinDelayedDueToBackoff(
backoff_entry_.GetTimeUntilRelease().InMilliseconds());
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+ io_task_runner_->PostDelayedTask(
FROM_HERE,
base::BindOnce(&CheckinRequest::Start, weak_ptr_factory_.GetWeakPtr()),
backoff_entry_.GetTimeUntilRelease());
@@ -259,10 +265,6 @@ void CheckinRequest::OnURLLoadComplete(const network::SimpleURLLoader* source,
}
RecordCheckinStatusAndReportUMA(SUCCESS, recorder_, false);
- UMA_HISTOGRAM_COUNTS_1M("GCM.CheckinRetryCount",
- backoff_entry_.failure_count());
- UMA_HISTOGRAM_TIMES("GCM.CheckinCompleteTime",
- base::TimeTicks::Now() - request_start_time_);
callback_.Run(response_status, response_proto);
}