| OLD | NEW |
| 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" |
| 11 #include "net/base/net_errors.h" | 11 #include "net/base/net_errors.h" |
| 12 #include "net/cookies/cookie_monster.h" | 12 #include "net/cookies/cookie_monster.h" |
| 13 #include "net/http/http_cache.h" | 13 #include "net/http/http_cache.h" |
| 14 #include "net/http/http_network_layer.h" | 14 #include "net/http/http_network_layer.h" |
| 15 #include "net/http/http_response_headers.h" | 15 #include "net/http/http_response_headers.h" |
| 16 #include "net/url_request/static_http_user_agent_settings.h" | 16 #include "net/url_request/static_http_user_agent_settings.h" |
| 17 #include "net/url_request/url_fetcher.h" | 17 #include "net/url_request/url_fetcher.h" |
| 18 #include "net/url_request/url_request_context.h" | 18 #include "net/url_request/url_request_context.h" |
| 19 #include "net/url_request/url_request_job_factory_impl.h" |
| 19 #include "net/url_request/url_request_status.h" | 20 #include "net/url_request/url_request_status.h" |
| 20 #include "sync/internal_api/public/base/cancelation_signal.h" | 21 #include "sync/internal_api/public/base/cancelation_signal.h" |
| 21 | 22 |
| 22 namespace syncer { | 23 namespace syncer { |
| 23 | 24 |
| 24 HttpBridge::RequestContextGetter::RequestContextGetter( | 25 HttpBridge::RequestContextGetter::RequestContextGetter( |
| 25 net::URLRequestContextGetter* baseline_context_getter, | 26 net::URLRequestContextGetter* baseline_context_getter, |
| 26 const std::string& user_agent) | 27 const std::string& user_agent) |
| 27 : baseline_context_getter_(baseline_context_getter), | 28 : baseline_context_getter_(baseline_context_getter), |
| 28 network_task_runner_( | 29 network_task_runner_( |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 baseline_request_context_getter_ = NULL; | 116 baseline_request_context_getter_ = NULL; |
| 116 request_context_getter_ = NULL; | 117 request_context_getter_ = NULL; |
| 117 } | 118 } |
| 118 | 119 |
| 119 HttpBridge::RequestContext::RequestContext( | 120 HttpBridge::RequestContext::RequestContext( |
| 120 net::URLRequestContext* baseline_context, | 121 net::URLRequestContext* baseline_context, |
| 121 const scoped_refptr<base::SingleThreadTaskRunner>& | 122 const scoped_refptr<base::SingleThreadTaskRunner>& |
| 122 network_task_runner, | 123 network_task_runner, |
| 123 const std::string& user_agent) | 124 const std::string& user_agent) |
| 124 : baseline_context_(baseline_context), | 125 : baseline_context_(baseline_context), |
| 125 network_task_runner_(network_task_runner) { | 126 network_task_runner_(network_task_runner), |
| 127 job_factory_(new net::URLRequestJobFactoryImpl()) { |
| 126 DCHECK(!user_agent.empty()); | 128 DCHECK(!user_agent.empty()); |
| 127 | 129 |
| 128 // Create empty, in-memory cookie store. | 130 // Create empty, in-memory cookie store. |
| 129 set_cookie_store(new net::CookieMonster(NULL, NULL)); | 131 set_cookie_store(new net::CookieMonster(NULL, NULL)); |
| 130 | 132 |
| 131 // We don't use a cache for bridged loads, but we do want to share proxy info. | 133 // We don't use a cache for bridged loads, but we do want to share proxy info. |
| 132 set_host_resolver(baseline_context->host_resolver()); | 134 set_host_resolver(baseline_context->host_resolver()); |
| 133 set_proxy_service(baseline_context->proxy_service()); | 135 set_proxy_service(baseline_context->proxy_service()); |
| 134 set_ssl_config_service(baseline_context->ssl_config_service()); | 136 set_ssl_config_service(baseline_context->ssl_config_service()); |
| 135 | 137 |
| 138 // Use its own job factory, which only supports http and https. |
| 139 set_job_factory(job_factory_.get()); |
| 140 |
| 136 // We want to share the HTTP session data with the network layer factory, | 141 // We want to share the HTTP session data with the network layer factory, |
| 137 // which includes auth_cache for proxies. | 142 // which includes auth_cache for proxies. |
| 138 // Session is not refcounted so we need to be careful to not lose the parent | 143 // Session is not refcounted so we need to be careful to not lose the parent |
| 139 // context. | 144 // context. |
| 140 net::HttpNetworkSession* session = | 145 net::HttpNetworkSession* session = |
| 141 baseline_context->http_transaction_factory()->GetSession(); | 146 baseline_context->http_transaction_factory()->GetSession(); |
| 142 DCHECK(session); | 147 DCHECK(session); |
| 143 set_http_transaction_factory(new net::HttpNetworkLayer(session)); | 148 set_http_transaction_factory(new net::HttpNetworkLayer(session)); |
| 144 | 149 |
| 145 // TODO(timsteele): We don't currently listen for pref changes of these | 150 // TODO(timsteele): We don't currently listen for pref changes of these |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 int64 sane_time_ms = 0; | 396 int64 sane_time_ms = 0; |
| 392 if (base::StringToInt64(sane_time_str, &sane_time_ms)) { | 397 if (base::StringToInt64(sane_time_str, &sane_time_ms)) { |
| 393 network_time_update_callback_.Run( | 398 network_time_update_callback_.Run( |
| 394 base::Time::FromJsTime(sane_time_ms), | 399 base::Time::FromJsTime(sane_time_ms), |
| 395 base::TimeDelta::FromMilliseconds(1), | 400 base::TimeDelta::FromMilliseconds(1), |
| 396 fetch_state_.end_time - fetch_state_.start_time); | 401 fetch_state_.end_time - fetch_state_.start_time); |
| 397 } | 402 } |
| 398 } | 403 } |
| 399 | 404 |
| 400 } // namespace syncer | 405 } // namespace syncer |
| OLD | NEW |