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

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

Issue 73723006: Allow customization of HttpPostProviderFactory via ProfileSyncService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
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/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "net/base/load_flags.h" 10 #include "net/base/load_flags.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 return context_.get(); 52 return context_.get();
53 } 53 }
54 54
55 scoped_refptr<base::SingleThreadTaskRunner> 55 scoped_refptr<base::SingleThreadTaskRunner>
56 HttpBridge::RequestContextGetter::GetNetworkTaskRunner() const { 56 HttpBridge::RequestContextGetter::GetNetworkTaskRunner() const {
57 return network_task_runner_; 57 return network_task_runner_;
58 } 58 }
59 59
60 HttpBridgeFactory::HttpBridgeFactory( 60 HttpBridgeFactory::HttpBridgeFactory(
61 net::URLRequestContextGetter* baseline_context_getter, 61 net::URLRequestContextGetter* baseline_context_getter,
62 const NetworkTimeUpdateCallback& network_time_update_callback, 62 const NetworkTimeUpdateCallback& network_time_update_callback)
63 CancelationSignal* cancelation_signal)
64 : baseline_request_context_getter_(baseline_context_getter), 63 : baseline_request_context_getter_(baseline_context_getter),
65 network_time_update_callback_(network_time_update_callback), 64 network_time_update_callback_(network_time_update_callback),
66 cancelation_signal_(cancelation_signal) { 65 cancelation_signal_(NULL) {
67 // Registration should never fail. This should happen on the UI thread during
68 // init. It would be impossible for a shutdown to have been requested at this
69 // point.
70 bool result = cancelation_signal_->TryRegisterHandler(this);
71 DCHECK(result);
72 } 66 }
73 67
74 HttpBridgeFactory::~HttpBridgeFactory() { 68 HttpBridgeFactory::~HttpBridgeFactory() {
75 cancelation_signal_->UnregisterHandler(this); 69 if (cancelation_signal_ != NULL)
70 cancelation_signal_->UnregisterHandler(this);
76 } 71 }
77 72
78 void HttpBridgeFactory::Init(const std::string& user_agent) { 73 void HttpBridgeFactory::Init(const std::string& user_agent) {
79 base::AutoLock lock(context_getter_lock_); 74 base::AutoLock lock(context_getter_lock_);
80 75
81 if (!baseline_request_context_getter_.get()) { 76 if (!baseline_request_context_getter_.get()) {
82 // Uh oh. We've been aborted before we finished initializing. There's no 77 // Uh oh. We've been aborted before we finished initializing. There's no
83 // point in initializating further; let's just return right away. 78 // point in initializating further; let's just return right away.
84 return; 79 return;
85 } 80 }
86 81
87 request_context_getter_ = 82 request_context_getter_ =
88 new HttpBridge::RequestContextGetter( 83 new HttpBridge::RequestContextGetter(
89 baseline_request_context_getter_, user_agent); 84 baseline_request_context_getter_, user_agent);
90 } 85 }
91 86
87 void HttpBridgeFactory::RegisterCancelationSignal(
88 CancelationSignal* cancelation_signal) {
89 cancelation_signal_ = cancelation_signal;
90
91 // Registration should never fail. This should happen on the UI thread during
92 // init. It would be impossible for a shutdown to have been requested at this
93 // point.
94 bool result = cancelation_signal_->TryRegisterHandler(this);
95 DCHECK(result);
96 }
97
92 HttpPostProviderInterface* HttpBridgeFactory::Create() { 98 HttpPostProviderInterface* HttpBridgeFactory::Create() {
93 base::AutoLock lock(context_getter_lock_); 99 base::AutoLock lock(context_getter_lock_);
94 100
95 // If we've been asked to shut down (something which may happen asynchronously 101 // If we've been asked to shut down (something which may happen asynchronously
96 // and at pretty much any time), then we won't have a request_context_getter_. 102 // and at pretty much any time), then we won't have a request_context_getter_.
97 // Some external mechanism must ensure that this function is not called after 103 // Some external mechanism must ensure that this function is not called after
98 // we've been asked to shut down. 104 // we've been asked to shut down.
99 CHECK(request_context_getter_.get()); 105 CHECK(request_context_getter_.get());
100 106
101 HttpBridge* http = new HttpBridge(request_context_getter_.get(), 107 HttpBridge* http = new HttpBridge(request_context_getter_.get(),
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 int64 sane_time_ms = 0; 389 int64 sane_time_ms = 0;
384 if (base::StringToInt64(sane_time_str, &sane_time_ms)) { 390 if (base::StringToInt64(sane_time_str, &sane_time_ms)) {
385 network_time_update_callback_.Run( 391 network_time_update_callback_.Run(
386 base::Time::FromJsTime(sane_time_ms), 392 base::Time::FromJsTime(sane_time_ms),
387 base::TimeDelta::FromMilliseconds(1), 393 base::TimeDelta::FromMilliseconds(1),
388 fetch_state_.end_time - fetch_state_.start_time); 394 fetch_state_.end_time - fetch_state_.start_time);
389 } 395 }
390 } 396 }
391 397
392 } // namespace syncer 398 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698