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

Side by Side Diff: chrome/browser/sync/glue/http_bridge.h

Issue 8373021: Convert URLFetcher::Delegates to use an interface in content/public/common. Also remove the old U... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync and remove unncessary forward declares Created 9 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 | Annotate | Revision Log
OLDNEW
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 #ifndef CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_ 5 #ifndef CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_
6 #define CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_ 6 #define CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/synchronization/lock.h" 14 #include "base/synchronization/lock.h"
15 #include "base/synchronization/waitable_event.h" 15 #include "base/synchronization/waitable_event.h"
16 #include "chrome/browser/sync/internal_api/http_post_provider_factory.h" 16 #include "chrome/browser/sync/internal_api/http_post_provider_factory.h"
17 #include "chrome/browser/sync/internal_api/http_post_provider_interface.h" 17 #include "chrome/browser/sync/internal_api/http_post_provider_interface.h"
18 #include "content/common/net/url_fetcher.h" 18 #include "content/public/common/url_fetcher_delegate.h"
19 #include "googleurl/src/gurl.h" 19 #include "googleurl/src/gurl.h"
20 #include "net/url_request/url_request_context_getter.h" 20 #include "net/url_request/url_request_context_getter.h"
21 #include "net/url_request/url_request_context.h" 21 #include "net/url_request/url_request_context.h"
22 #include "testing/gtest/include/gtest/gtest_prod.h" 22 #include "testing/gtest/include/gtest/gtest_prod.h"
23 23
24 class MessageLoop; 24 class MessageLoop;
25 class HttpBridgeTest; 25 class HttpBridgeTest;
26 26
27 namespace net {
28 class HttpResponseHeaders;
29 }
30
27 namespace browser_sync { 31 namespace browser_sync {
28 32
29 // A bridge between the syncer and Chromium HTTP layers. 33 // A bridge between the syncer and Chromium HTTP layers.
30 // Provides a way for the sync backend to use Chromium directly for HTTP 34 // Provides a way for the sync backend to use Chromium directly for HTTP
31 // requests rather than depending on a third party provider (e.g libcurl). 35 // requests rather than depending on a third party provider (e.g libcurl).
32 // This is a one-time use bridge. Create one for each request you want to make. 36 // This is a one-time use bridge. Create one for each request you want to make.
33 // It is RefCountedThreadSafe because it can PostTask to the io loop, and thus 37 // It is RefCountedThreadSafe because it can PostTask to the io loop, and thus
34 // needs to stick around across context switches, etc. 38 // needs to stick around across context switches, etc.
35 class HttpBridge : public base::RefCountedThreadSafe<HttpBridge>, 39 class HttpBridge : public base::RefCountedThreadSafe<HttpBridge>,
36 public sync_api::HttpPostProviderInterface, 40 public sync_api::HttpPostProviderInterface,
37 public URLFetcher::Delegate { 41 public content::URLFetcherDelegate {
38 public: 42 public:
39 // A request context used for HTTP requests bridged from the sync backend. 43 // A request context used for HTTP requests bridged from the sync backend.
40 // A bridged RequestContext has a dedicated in-memory cookie store and does 44 // A bridged RequestContext has a dedicated in-memory cookie store and does
41 // not use a cache. Thus the same type can be used for incognito mode. 45 // not use a cache. Thus the same type can be used for incognito mode.
42 class RequestContext : public net::URLRequestContext { 46 class RequestContext : public net::URLRequestContext {
43 public: 47 public:
44 // |baseline_context| is used to obtain the accept-language, 48 // |baseline_context| is used to obtain the accept-language,
45 // accept-charsets, and proxy service information for bridged requests. 49 // accept-charsets, and proxy service information for bridged requests.
46 // Typically |baseline_context| should be the net::URLRequestContext of the 50 // Typically |baseline_context| should be the net::URLRequestContext of the
47 // currently active profile. 51 // currently active profile.
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 112
109 // WARNING: these response content methods are used to extract plain old data 113 // WARNING: these response content methods are used to extract plain old data
110 // and not null terminated strings, so you should make sure you have read 114 // and not null terminated strings, so you should make sure you have read
111 // GetResponseContentLength() characters when using GetResponseContent. e.g 115 // GetResponseContentLength() characters when using GetResponseContent. e.g
112 // string r(b->GetResponseContent(), b->GetResponseContentLength()). 116 // string r(b->GetResponseContent(), b->GetResponseContentLength()).
113 virtual int GetResponseContentLength() const; 117 virtual int GetResponseContentLength() const;
114 virtual const char* GetResponseContent() const; 118 virtual const char* GetResponseContent() const;
115 virtual const std::string GetResponseHeaderValue( 119 virtual const std::string GetResponseHeaderValue(
116 const std::string& name) const; 120 const std::string& name) const;
117 121
118 // URLFetcher::Delegate implementation. 122 // content::URLFetcherDelegate implementation.
119 virtual void OnURLFetchComplete(const URLFetcher* source, 123 virtual void OnURLFetchComplete(const URLFetcher* source);
120 const GURL& url,
121 const net::URLRequestStatus& status,
122 int response_code,
123 const net::ResponseCookies& cookies,
124 const std::string& data);
125 124
126 #if defined(UNIT_TEST) 125 #if defined(UNIT_TEST)
127 net::URLRequestContextGetter* GetRequestContextGetter() const { 126 net::URLRequestContextGetter* GetRequestContextGetter() const {
128 return context_getter_for_request_; 127 return context_getter_for_request_;
129 } 128 }
130 #endif 129 #endif
131 130
132 protected: 131 protected:
133 friend class base::RefCountedThreadSafe<HttpBridge>; 132 friend class base::RefCountedThreadSafe<HttpBridge>;
134 133
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 HttpBridge::RequestContextGetter* GetRequestContextGetter(); 216 HttpBridge::RequestContextGetter* GetRequestContextGetter();
218 217
219 scoped_refptr<HttpBridge::RequestContextGetter> request_context_getter_; 218 scoped_refptr<HttpBridge::RequestContextGetter> request_context_getter_;
220 219
221 DISALLOW_COPY_AND_ASSIGN(HttpBridgeFactory); 220 DISALLOW_COPY_AND_ASSIGN(HttpBridgeFactory);
222 }; 221 };
223 222
224 } // namespace browser_sync 223 } // namespace browser_sync
225 224
226 #endif // CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_ 225 #endif // CHROME_BROWSER_SYNC_GLUE_HTTP_BRIDGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698