OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/sync/glue/http_bridge.h" | 5 #include "chrome/browser/sync/glue/http_bridge.h" |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/message_loop_proxy.h" | 8 #include "base/message_loop_proxy.h" |
9 #include "base/string_number_conversions.h" | 9 #include "base/string_number_conversions.h" |
10 #include "chrome/browser/browser_thread.h" | 10 #include "chrome/browser/browser_thread.h" |
11 #include "net/base/cookie_monster.h" | 11 #include "net/base/cookie_monster.h" |
12 #include "net/base/host_resolver.h" | 12 #include "net/base/host_resolver.h" |
13 #include "net/base/load_flags.h" | 13 #include "net/base/load_flags.h" |
14 #include "net/http/http_cache.h" | 14 #include "net/http/http_cache.h" |
15 #include "net/http/http_network_layer.h" | 15 #include "net/http/http_network_layer.h" |
16 #include "net/http/http_response_headers.h" | 16 #include "net/http/http_response_headers.h" |
17 #include "net/proxy/proxy_service.h" | 17 #include "net/proxy/proxy_service.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_status.h" | 19 #include "net/url_request/url_request_status.h" |
20 #include "webkit/glue/webkit_glue.h" | 20 #include "webkit/glue/webkit_glue.h" |
21 | 21 |
22 namespace browser_sync { | 22 namespace browser_sync { |
23 | 23 |
24 HttpBridge::RequestContextGetter::RequestContextGetter( | 24 HttpBridge::RequestContextGetter::RequestContextGetter( |
25 URLRequestContextGetter* baseline_context_getter) | 25 URLRequestContextGetter* baseline_context_getter) |
26 : baseline_context_getter_(baseline_context_getter) { | 26 : baseline_context_getter_(baseline_context_getter) { |
27 } | 27 } |
28 | 28 |
29 URLRequestContext* HttpBridge::RequestContextGetter::GetURLRequestContext() { | 29 net::URLRequestContext* |
| 30 HttpBridge::RequestContextGetter::GetURLRequestContext() { |
30 // Lazily create the context. | 31 // Lazily create the context. |
31 if (!context_) { | 32 if (!context_) { |
32 URLRequestContext* baseline_context = | 33 net::URLRequestContext* baseline_context = |
33 baseline_context_getter_->GetURLRequestContext(); | 34 baseline_context_getter_->GetURLRequestContext(); |
34 context_ = new RequestContext(baseline_context); | 35 context_ = new RequestContext(baseline_context); |
35 baseline_context_getter_ = NULL; | 36 baseline_context_getter_ = NULL; |
36 } | 37 } |
37 | 38 |
38 // Apply the user agent which was set earlier. | 39 // Apply the user agent which was set earlier. |
39 if (is_user_agent_set()) | 40 if (is_user_agent_set()) |
40 context_->set_user_agent(user_agent_); | 41 context_->set_user_agent(user_agent_); |
41 | 42 |
42 return context_; | 43 return context_; |
(...skipping 17 matching lines...) Expand all Loading... |
60 sync_api::HttpPostProviderInterface* HttpBridgeFactory::Create() { | 61 sync_api::HttpPostProviderInterface* HttpBridgeFactory::Create() { |
61 HttpBridge* http = new HttpBridge(request_context_getter_); | 62 HttpBridge* http = new HttpBridge(request_context_getter_); |
62 http->AddRef(); | 63 http->AddRef(); |
63 return http; | 64 return http; |
64 } | 65 } |
65 | 66 |
66 void HttpBridgeFactory::Destroy(sync_api::HttpPostProviderInterface* http) { | 67 void HttpBridgeFactory::Destroy(sync_api::HttpPostProviderInterface* http) { |
67 static_cast<HttpBridge*>(http)->Release(); | 68 static_cast<HttpBridge*>(http)->Release(); |
68 } | 69 } |
69 | 70 |
70 HttpBridge::RequestContext::RequestContext(URLRequestContext* baseline_context) | 71 HttpBridge::RequestContext::RequestContext( |
| 72 net::URLRequestContext* baseline_context) |
71 : baseline_context_(baseline_context) { | 73 : baseline_context_(baseline_context) { |
72 | 74 |
73 // Create empty, in-memory cookie store. | 75 // Create empty, in-memory cookie store. |
74 cookie_store_ = new net::CookieMonster(NULL, NULL); | 76 cookie_store_ = new net::CookieMonster(NULL, NULL); |
75 | 77 |
76 // We don't use a cache for bridged loads, but we do want to share proxy info. | 78 // We don't use a cache for bridged loads, but we do want to share proxy info. |
77 host_resolver_ = baseline_context->host_resolver(); | 79 host_resolver_ = baseline_context->host_resolver(); |
78 proxy_service_ = baseline_context->proxy_service(); | 80 proxy_service_ = baseline_context->proxy_service(); |
79 ssl_config_service_ = baseline_context->ssl_config_service(); | 81 ssl_config_service_ = baseline_context->ssl_config_service(); |
80 | 82 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 // URLFetcher, so it seems most natural / "polite" to let the stack unwind. | 242 // URLFetcher, so it seems most natural / "polite" to let the stack unwind. |
241 MessageLoop::current()->DeleteSoon(FROM_HERE, url_poster_); | 243 MessageLoop::current()->DeleteSoon(FROM_HERE, url_poster_); |
242 url_poster_ = NULL; | 244 url_poster_ = NULL; |
243 | 245 |
244 // Wake the blocked syncer thread in MakeSynchronousPost. | 246 // Wake the blocked syncer thread in MakeSynchronousPost. |
245 // WARNING: DONT DO ANYTHING AFTER THIS CALL! |this| may be deleted! | 247 // WARNING: DONT DO ANYTHING AFTER THIS CALL! |this| may be deleted! |
246 http_post_completed_.Signal(); | 248 http_post_completed_.Signal(); |
247 } | 249 } |
248 | 250 |
249 } // namespace browser_sync | 251 } // namespace browser_sync |
OLD | NEW |