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

Side by Side Diff: content/public/common/url_fetcher.h

Issue 8395038: Make test URLFetcher implementations not derive from the URLFetcher implementation, since we want... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: move factory to its own file and remove Create function from URLFetcher impl 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 CONTENT_PUBLIC_COMMON_URL_FETCHER_H_ 5 #ifndef CONTENT_PUBLIC_COMMON_URL_FETCHER_H_
6 #define CONTENT_PUBLIC_COMMON_URL_FETCHER_H_ 6 #define CONTENT_PUBLIC_COMMON_URL_FETCHER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/platform_file.h" 12 #include "base/platform_file.h"
13 #include "base/memory/ref_counted.h"
wtc 2011/10/26 23:34:46 Nit: list this header before "base/platform_file.h
jam 2011/10/26 23:39:06 Done.
13 #include "content/common/content_export.h" 14 #include "content/common/content_export.h"
14 15
15 class FilePath; 16 class FilePath;
16 class GURL; 17 class GURL;
17 18
18 namespace base { 19 namespace base {
19 class MessageLoopProxy; 20 class MessageLoopProxy;
20 class TimeDelta; 21 class TimeDelta;
21 } 22 }
22 23
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 HEAD, 76 HEAD,
76 }; 77 };
77 78
78 // |url| is the URL to send the request to. 79 // |url| is the URL to send the request to.
79 // |request_type| is the type of request to make. 80 // |request_type| is the type of request to make.
80 // |d| the object that will receive the callback on fetch completion. 81 // |d| the object that will receive the callback on fetch completion.
81 static URLFetcher* Create(const GURL& url, 82 static URLFetcher* Create(const GURL& url,
82 RequestType request_type, 83 RequestType request_type,
83 URLFetcherDelegate* d); 84 URLFetcherDelegate* d);
84 85
85 // Like above, but if there's a Factory registered with the implementation it 86 // Like above, but if there's a URLFetcherFactory registered with the
86 // will be used. |id| may be used during testing to identify who is creating 87 // implementation it will be used. |id| may be used during testing to identify
87 // the URLFetcher. 88 // who is creating the URLFetcher.
88 static URLFetcher* Create(int id, 89 static URLFetcher* Create(int id,
89 const GURL& url, 90 const GURL& url,
90 RequestType request_type, 91 RequestType request_type,
91 content::URLFetcherDelegate* d); 92 content::URLFetcherDelegate* d);
92 93
93 // Cancels all existing URLFetchers. Will notify the URLFetcherDelegates. 94 // Cancels all existing URLFetchers. Will notify the URLFetcherDelegates.
94 // Note that any new URLFetchers created while this is running will not be 95 // Note that any new URLFetchers created while this is running will not be
95 // cancelled. Typically, one would call this in the CleanUp() method of an IO 96 // cancelled. Typically, one would call this in the CleanUp() method of an IO
96 // thread, so that no new URLRequests would be able to start on the IO thread 97 // thread, so that no new URLRequests would be able to start on the IO thread
97 // anyway. This doesn't prevent new URLFetchers from trying to post to the IO 98 // anyway. This doesn't prevent new URLFetchers from trying to post to the IO
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 // after backoff_delay() elapses. URLFetcher has it set to true by default. 152 // after backoff_delay() elapses. URLFetcher has it set to true by default.
152 virtual void SetAutomaticallyRetryOn5xx(bool retry) = 0; 153 virtual void SetAutomaticallyRetryOn5xx(bool retry) = 0;
153 154
154 virtual void SetMaxRetries(int max_retries) = 0; 155 virtual void SetMaxRetries(int max_retries) = 0;
155 virtual int GetMaxRetries() const = 0; 156 virtual int GetMaxRetries() const = 0;
156 157
157 // Returns the back-off delay before the request will be retried, 158 // Returns the back-off delay before the request will be retried,
158 // when a 5xx response was received. 159 // when a 5xx response was received.
159 virtual base::TimeDelta GetBackoffDelay() const = 0; 160 virtual base::TimeDelta GetBackoffDelay() const = 0;
160 161
161 // Sets the back-off delay, allowing to mock 5xx requests in unit-tests.
162 virtual void SetBackoffDelayForTesting(base::TimeDelta backoff_delay) = 0;
wtc 2011/10/26 23:34:46 This change should be mentioned in the CL's commit
jam 2011/10/26 23:39:06 I had just added this method to the interface in m
163
164 // By default, the response is saved in a string. Call this method to save the 162 // By default, the response is saved in a string. Call this method to save the
165 // response to a temporary file instead. Must be called before Start(). 163 // response to a temporary file instead. Must be called before Start().
166 // |file_message_loop_proxy| will be used for all file operations. 164 // |file_message_loop_proxy| will be used for all file operations.
167 virtual void SaveResponseToTemporaryFile( 165 virtual void SaveResponseToTemporaryFile(
168 scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) = 0; 166 scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) = 0;
169 167
170 // Retrieve the response headers from the request. Must only be called after 168 // Retrieve the response headers from the request. Must only be called after
171 // the OnURLFetchComplete callback has run. 169 // the OnURLFetchComplete callback has run.
172 virtual net::HttpResponseHeaders* GetResponseHeaders() const = 0; 170 virtual net::HttpResponseHeaders* GetResponseHeaders() const = 0;
173 171
(...skipping 12 matching lines...) Expand all
186 virtual void Start() = 0; 184 virtual void Start() = 0;
187 185
188 // Restarts the URLFetcher with a new URLRequestContextGetter. 186 // Restarts the URLFetcher with a new URLRequestContextGetter.
189 virtual void StartWithRequestContextGetter( 187 virtual void StartWithRequestContextGetter(
190 net::URLRequestContextGetter* request_context_getter) = 0; 188 net::URLRequestContextGetter* request_context_getter) = 0;
191 189
192 // Return the URL that we were asked to fetch. 190 // Return the URL that we were asked to fetch.
193 virtual const GURL& GetOriginalUrl() const = 0; 191 virtual const GURL& GetOriginalUrl() const = 0;
194 192
195 // Return the URL that this fetcher is processing. 193 // Return the URL that this fetcher is processing.
196 virtual const GURL& GetUrl() const = 0; 194 virtual const GURL& GetUrl() const = 0;
wtc 2011/10/27 21:29:16 Nit: these two methods should be named GetOriginal
jam 2011/10/27 22:34:41 good point. done.
197 195
198 // The status of the URL fetch. 196 // The status of the URL fetch.
199 virtual const net::URLRequestStatus& GetStatus() const = 0; 197 virtual const net::URLRequestStatus& GetStatus() const = 0;
200 198
201 // The http response code received. Will return RESPONSE_CODE_INVALID 199 // The http response code received. Will return RESPONSE_CODE_INVALID
202 // if an error prevented any response from being received. 200 // if an error prevented any response from being received.
203 virtual int GetResponseCode() const = 0; 201 virtual int GetResponseCode() const = 0;
204 202
205 // Cookies recieved. 203 // Cookies recieved.
206 virtual const net::ResponseCookies& GetCookies() const = 0; 204 virtual const net::ResponseCookies& GetCookies() const = 0;
(...skipping 16 matching lines...) Expand all
223 // true, caller takes responsibility for the temp file, and it will not 221 // true, caller takes responsibility for the temp file, and it will not
224 // be removed once the URLFetcher is destroyed. User should not take 222 // be removed once the URLFetcher is destroyed. User should not take
225 // ownership more than once, or call this method after taking ownership. 223 // ownership more than once, or call this method after taking ownership.
226 virtual bool GetResponseAsFilePath(bool take_ownership, 224 virtual bool GetResponseAsFilePath(bool take_ownership,
227 FilePath* out_response_path) const = 0; 225 FilePath* out_response_path) const = 0;
228 }; 226 };
229 227
230 } // namespace content 228 } // namespace content
231 229
232 #endif // CONTENT_PUBLIC_COMMON_URL_FETCHER_H_ 230 #endif // CONTENT_PUBLIC_COMMON_URL_FETCHER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698