| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/rappor/log_uploader.h" | 5 #include "components/rappor/log_uploader.h" |
| 6 | 6 |
| 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
| 7 #include "base/metrics/histogram_macros.h" | 10 #include "base/metrics/histogram_macros.h" |
| 8 #include "base/metrics/sparse_histogram.h" | 11 #include "base/metrics/sparse_histogram.h" |
| 9 #include "components/data_use_measurement/core/data_use_user_data.h" | 12 #include "components/data_use_measurement/core/data_use_user_data.h" |
| 10 #include "net/base/load_flags.h" | 13 #include "net/base/load_flags.h" |
| 11 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
| 12 #include "net/url_request/url_fetcher.h" | 15 #include "net/url_request/url_fetcher.h" |
| 13 | 16 |
| 14 namespace { | 17 namespace { |
| 15 | 18 |
| 16 // The delay, in seconds, between uploading when there are queued logs to send. | 19 // The delay, in seconds, between uploading when there are queued logs to send. |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 // We already drop cookies server-side, but we might as well strip them out | 122 // We already drop cookies server-side, but we might as well strip them out |
| 120 // client-side as well. | 123 // client-side as well. |
| 121 current_fetch_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | | 124 current_fetch_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | |
| 122 net::LOAD_DO_NOT_SEND_COOKIES); | 125 net::LOAD_DO_NOT_SEND_COOKIES); |
| 123 current_fetch_->Start(); | 126 current_fetch_->Start(); |
| 124 } | 127 } |
| 125 | 128 |
| 126 // static | 129 // static |
| 127 base::TimeDelta LogUploader::BackOffUploadInterval(base::TimeDelta interval) { | 130 base::TimeDelta LogUploader::BackOffUploadInterval(base::TimeDelta interval) { |
| 128 DCHECK_GT(kBackoffMultiplier, 1.0); | 131 DCHECK_GT(kBackoffMultiplier, 1.0); |
| 129 interval = base::TimeDelta::FromMicroseconds(static_cast<int64>( | 132 interval = base::TimeDelta::FromMicroseconds( |
| 130 kBackoffMultiplier * interval.InMicroseconds())); | 133 static_cast<int64_t>(kBackoffMultiplier * interval.InMicroseconds())); |
| 131 | 134 |
| 132 base::TimeDelta max_interval = | 135 base::TimeDelta max_interval = |
| 133 base::TimeDelta::FromSeconds(kMaxBackoffIntervalSeconds); | 136 base::TimeDelta::FromSeconds(kMaxBackoffIntervalSeconds); |
| 134 return interval > max_interval ? max_interval : interval; | 137 return interval > max_interval ? max_interval : interval; |
| 135 } | 138 } |
| 136 | 139 |
| 137 void LogUploader::OnURLFetchComplete(const net::URLFetcher* source) { | 140 void LogUploader::OnURLFetchComplete(const net::URLFetcher* source) { |
| 138 // We're not allowed to re-use the existing |URLFetcher|s, so free them here. | 141 // We're not allowed to re-use the existing |URLFetcher|s, so free them here. |
| 139 // Note however that |source| is aliased to the fetcher, so we should be | 142 // Note however that |source| is aliased to the fetcher, so we should be |
| 140 // careful not to delete it too early. | 143 // careful not to delete it too early. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 if (!server_is_healthy) | 192 if (!server_is_healthy) |
| 190 upload_interval_ = BackOffUploadInterval(upload_interval_); | 193 upload_interval_ = BackOffUploadInterval(upload_interval_); |
| 191 else | 194 else |
| 192 upload_interval_ = base::TimeDelta::FromSeconds(kUnsentLogsIntervalSeconds); | 195 upload_interval_ = base::TimeDelta::FromSeconds(kUnsentLogsIntervalSeconds); |
| 193 | 196 |
| 194 if (CanStartUpload()) | 197 if (CanStartUpload()) |
| 195 ScheduleNextUpload(upload_interval_); | 198 ScheduleNextUpload(upload_interval_); |
| 196 } | 199 } |
| 197 | 200 |
| 198 } // namespace rappor | 201 } // namespace rappor |
| OLD | NEW |