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

Side by Side Diff: sync/internal_api/http_bridge.cc

Issue 1339943003: Revert "Report data usage UMA for Chrome services" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "sync/internal_api/public/http_bridge.h" 5 #include "sync/internal_api/public/http_bridge.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/metrics/field_trial.h" 8 #include "base/metrics/field_trial.h"
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 // init. It would be impossible for a shutdown to have been requested at this 154 // init. It would be impossible for a shutdown to have been requested at this
155 // point. 155 // point.
156 bool result = cancelation_signal_->TryRegisterHandler(this); 156 bool result = cancelation_signal_->TryRegisterHandler(this);
157 DCHECK(result); 157 DCHECK(result);
158 } 158 }
159 159
160 HttpBridgeFactory::~HttpBridgeFactory() { 160 HttpBridgeFactory::~HttpBridgeFactory() {
161 cancelation_signal_->UnregisterHandler(this); 161 cancelation_signal_->UnregisterHandler(this);
162 } 162 }
163 163
164 void HttpBridgeFactory::Init( 164 void HttpBridgeFactory::Init(const std::string& user_agent) {
165 const std::string& user_agent,
166 const BindToTrackerCallback& bind_to_tracker_callback) {
167 user_agent_ = user_agent; 165 user_agent_ = user_agent;
168 bind_to_tracker_callback_ = bind_to_tracker_callback;
169 } 166 }
170 167
171 HttpPostProviderInterface* HttpBridgeFactory::Create() { 168 HttpPostProviderInterface* HttpBridgeFactory::Create() {
172 base::AutoLock lock(request_context_getter_lock_); 169 base::AutoLock lock(request_context_getter_lock_);
173 170
174 // If we've been asked to shut down (something which may happen asynchronously 171 // If we've been asked to shut down (something which may happen asynchronously
175 // and at pretty much any time), then we won't have a request_context_getter_. 172 // and at pretty much any time), then we won't have a request_context_getter_.
176 // Some external mechanism must ensure that this function is not called after 173 // Some external mechanism must ensure that this function is not called after
177 // we've been asked to shut down. 174 // we've been asked to shut down.
178 CHECK(request_context_getter_.get()); 175 CHECK(request_context_getter_.get());
179 176
180 scoped_refptr<HttpBridge> http = 177 scoped_refptr<HttpBridge> http = new HttpBridge(
181 new HttpBridge(user_agent_, request_context_getter_, 178 user_agent_, request_context_getter_, network_time_update_callback_);
182 network_time_update_callback_, bind_to_tracker_callback_);
183 http->AddRef(); 179 http->AddRef();
184 return http.get(); 180 return http.get();
185 } 181 }
186 182
187 void HttpBridgeFactory::Destroy(HttpPostProviderInterface* http) { 183 void HttpBridgeFactory::Destroy(HttpPostProviderInterface* http) {
188 static_cast<HttpBridge*>(http)->Release(); 184 static_cast<HttpBridge*>(http)->Release();
189 } 185 }
190 186
191 void HttpBridgeFactory::OnSignalReceived() { 187 void HttpBridgeFactory::OnSignalReceived() {
192 base::AutoLock lock(request_context_getter_lock_); 188 base::AutoLock lock(request_context_getter_lock_);
193 // Release |request_context_getter_| as soon as possible so that it 189 // Release |request_context_getter_| as soon as possible so that it
194 // is destroyed in the right order on its network task runner. 190 // is destroyed in the right order on its network task runner.
195 request_context_getter_ = NULL; 191 request_context_getter_ = NULL;
196 } 192 }
197 193
198 HttpBridge::URLFetchState::URLFetchState() 194 HttpBridge::URLFetchState::URLFetchState()
199 : url_poster(NULL), 195 : url_poster(NULL),
200 aborted(false), 196 aborted(false),
201 request_completed(false), 197 request_completed(false),
202 request_succeeded(false), 198 request_succeeded(false),
203 http_response_code(-1), 199 http_response_code(-1),
204 error_code(-1) { 200 error_code(-1) {
205 } 201 }
206 HttpBridge::URLFetchState::~URLFetchState() {} 202 HttpBridge::URLFetchState::~URLFetchState() {}
207 203
208 HttpBridge::HttpBridge( 204 HttpBridge::HttpBridge(
209 const std::string& user_agent, 205 const std::string& user_agent,
210 const scoped_refptr<net::URLRequestContextGetter>& context_getter, 206 const scoped_refptr<net::URLRequestContextGetter>& context_getter,
211 const NetworkTimeUpdateCallback& network_time_update_callback, 207 const NetworkTimeUpdateCallback& network_time_update_callback)
212 const BindToTrackerCallback& bind_to_tracker_callback)
213 : created_on_loop_(base::MessageLoop::current()), 208 : created_on_loop_(base::MessageLoop::current()),
214 user_agent_(user_agent), 209 user_agent_(user_agent),
215 http_post_completed_(false, false), 210 http_post_completed_(false, false),
216 request_context_getter_(context_getter), 211 request_context_getter_(context_getter),
217 network_task_runner_(request_context_getter_->GetNetworkTaskRunner()), 212 network_task_runner_(request_context_getter_->GetNetworkTaskRunner()),
218 network_time_update_callback_(network_time_update_callback), 213 network_time_update_callback_(network_time_update_callback) {
219 bind_to_tracker_callback_(bind_to_tracker_callback) {} 214 }
220 215
221 HttpBridge::~HttpBridge() { 216 HttpBridge::~HttpBridge() {
222 } 217 }
223 218
224 void HttpBridge::SetExtraRequestHeaders(const char * headers) { 219 void HttpBridge::SetExtraRequestHeaders(const char * headers) {
225 DCHECK(extra_headers_.empty()) 220 DCHECK(extra_headers_.empty())
226 << "HttpBridge::SetExtraRequestHeaders called twice."; 221 << "HttpBridge::SetExtraRequestHeaders called twice.";
227 extra_headers_.assign(headers); 222 extra_headers_.assign(headers);
228 } 223 }
229 224
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 fetch_state_.http_request_timeout_timer.reset(new base::Timer(false, false)); 306 fetch_state_.http_request_timeout_timer.reset(new base::Timer(false, false));
312 fetch_state_.http_request_timeout_timer->Start( 307 fetch_state_.http_request_timeout_timer->Start(
313 FROM_HERE, base::TimeDelta::FromSeconds(kMaxHttpRequestTimeSeconds), 308 FROM_HERE, base::TimeDelta::FromSeconds(kMaxHttpRequestTimeSeconds),
314 base::Bind(&HttpBridge::OnURLFetchTimedOut, this)); 309 base::Bind(&HttpBridge::OnURLFetchTimedOut, this));
315 310
316 DCHECK(request_context_getter_.get()); 311 DCHECK(request_context_getter_.get());
317 fetch_state_.start_time = base::Time::Now(); 312 fetch_state_.start_time = base::Time::Now();
318 fetch_state_.url_poster = 313 fetch_state_.url_poster =
319 net::URLFetcher::Create(url_for_request_, net::URLFetcher::POST, this) 314 net::URLFetcher::Create(url_for_request_, net::URLFetcher::POST, this)
320 .release(); 315 .release();
321 if (!bind_to_tracker_callback_.is_null())
322 bind_to_tracker_callback_.Run(fetch_state_.url_poster);
323 fetch_state_.url_poster->SetRequestContext(request_context_getter_.get()); 316 fetch_state_.url_poster->SetRequestContext(request_context_getter_.get());
324 fetch_state_.url_poster->SetExtraRequestHeaders(extra_headers_); 317 fetch_state_.url_poster->SetExtraRequestHeaders(extra_headers_);
325 318
326 int64 compressed_content_size = 0; 319 int64 compressed_content_size = 0;
327 if (IsSyncHttpContentCompressionEnabled()) { 320 if (IsSyncHttpContentCompressionEnabled()) {
328 std::string compressed_request_content; 321 std::string compressed_request_content;
329 GzipCompress(request_content_, &compressed_request_content); 322 GzipCompress(request_content_, &compressed_request_content);
330 compressed_content_size = compressed_request_content.size(); 323 compressed_content_size = compressed_request_content.size();
331 fetch_state_.url_poster->SetUploadData(content_type_, 324 fetch_state_.url_poster->SetUploadData(content_type_,
332 compressed_request_content); 325 compressed_request_content);
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 int64 sane_time_ms = 0; 526 int64 sane_time_ms = 0;
534 if (base::StringToInt64(sane_time_str, &sane_time_ms)) { 527 if (base::StringToInt64(sane_time_str, &sane_time_ms)) {
535 network_time_update_callback_.Run( 528 network_time_update_callback_.Run(
536 base::Time::FromJsTime(sane_time_ms), 529 base::Time::FromJsTime(sane_time_ms),
537 base::TimeDelta::FromMilliseconds(1), 530 base::TimeDelta::FromMilliseconds(1),
538 fetch_state_.end_time - fetch_state_.start_time); 531 fetch_state_.end_time - fetch_state_.start_time);
539 } 532 }
540 } 533 }
541 534
542 } // namespace syncer 535 } // namespace syncer
OLDNEW
« no previous file with comments | « components/variations/service/variations_service.cc ('k') | sync/internal_api/http_bridge_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698