OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 // This file contains URLFetcher, a wrapper around net::URLRequest that handles | 5 // This file contains URLFetcher, a wrapper around net::URLRequest that handles |
6 // low-level details like thread safety, ref counting, and incremental buffer | 6 // low-level details like thread safety, ref counting, and incremental buffer |
7 // reading. This is useful for callers who simply want to get the data from a | 7 // reading. This is useful for callers who simply want to get the data from a |
8 // URL and don't care about all the nitty-gritty details. | 8 // URL and don't care about all the nitty-gritty details. |
9 // | 9 // |
10 // NOTE(willchan): Only one "IO" thread is supported for URLFetcher. This is a | 10 // NOTE(willchan): Only one "IO" thread is supported for URLFetcher. This is a |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 const std::string& extra_request_headers) OVERRIDE; | 48 const std::string& extra_request_headers) OVERRIDE; |
49 virtual void AddExtraRequestHeader(const std::string& header_line) OVERRIDE; | 49 virtual void AddExtraRequestHeader(const std::string& header_line) OVERRIDE; |
50 virtual void GetExtraRequestHeaders( | 50 virtual void GetExtraRequestHeaders( |
51 net::HttpRequestHeaders* headers) OVERRIDE; | 51 net::HttpRequestHeaders* headers) OVERRIDE; |
52 virtual void SetRequestContext( | 52 virtual void SetRequestContext( |
53 net::URLRequestContextGetter* request_context_getter) OVERRIDE; | 53 net::URLRequestContextGetter* request_context_getter) OVERRIDE; |
54 virtual void SetAutomaticallyRetryOn5xx(bool retry) OVERRIDE; | 54 virtual void SetAutomaticallyRetryOn5xx(bool retry) OVERRIDE; |
55 virtual void SetMaxRetries(int max_retries) OVERRIDE; | 55 virtual void SetMaxRetries(int max_retries) OVERRIDE; |
56 virtual int GetMaxRetries() const OVERRIDE; | 56 virtual int GetMaxRetries() const OVERRIDE; |
57 virtual base::TimeDelta GetBackoffDelay() const OVERRIDE; | 57 virtual base::TimeDelta GetBackoffDelay() const OVERRIDE; |
| 58 virtual void SaveResponseToFileAtPath( |
| 59 const FilePath& file_path, |
| 60 scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) OVERRIDE; |
58 virtual void SaveResponseToTemporaryFile( | 61 virtual void SaveResponseToTemporaryFile( |
59 scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) OVERRIDE; | 62 scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) OVERRIDE; |
60 virtual net::HttpResponseHeaders* GetResponseHeaders() const OVERRIDE; | 63 virtual net::HttpResponseHeaders* GetResponseHeaders() const OVERRIDE; |
61 virtual net::HostPortPair GetSocketAddress() const OVERRIDE; | 64 virtual net::HostPortPair GetSocketAddress() const OVERRIDE; |
62 virtual bool WasFetchedViaProxy() const OVERRIDE; | 65 virtual bool WasFetchedViaProxy() const OVERRIDE; |
63 virtual void Start() OVERRIDE; | 66 virtual void Start() OVERRIDE; |
64 virtual void StartWithRequestContextGetter( | 67 virtual void StartWithRequestContextGetter( |
65 net::URLRequestContextGetter* request_context_getter) OVERRIDE; | 68 net::URLRequestContextGetter* request_context_getter) OVERRIDE; |
66 virtual const GURL& GetOriginalURL() const OVERRIDE; | 69 virtual const GURL& GetOriginalURL() const OVERRIDE; |
67 virtual const GURL& GetURL() const OVERRIDE; | 70 virtual const GURL& GetURL() const OVERRIDE; |
68 virtual const net::URLRequestStatus& GetStatus() const OVERRIDE; | 71 virtual const net::URLRequestStatus& GetStatus() const OVERRIDE; |
69 virtual int GetResponseCode() const OVERRIDE; | 72 virtual int GetResponseCode() const OVERRIDE; |
70 virtual const net::ResponseCookies& GetCookies() const OVERRIDE; | 73 virtual const net::ResponseCookies& GetCookies() const OVERRIDE; |
71 virtual bool FileErrorOccurred( | 74 virtual bool FileErrorOccurred( |
72 base::PlatformFileError* out_error_code) const OVERRIDE; | 75 base::PlatformFileError* out_error_code) const OVERRIDE; |
73 virtual void ReceivedContentWasMalformed() OVERRIDE; | 76 virtual void ReceivedContentWasMalformed() OVERRIDE; |
74 virtual bool GetResponseAsString( | 77 virtual bool GetResponseAsString( |
75 std::string* out_response_string) const OVERRIDE; | 78 std::string* out_response_string) const OVERRIDE; |
76 virtual bool GetResponseAsFilePath( | 79 virtual bool GetResponseAsFilePath( |
77 bool take_ownership, | 80 bool take_ownership, |
78 FilePath* out_response_path) const OVERRIDE; | 81 FilePath* out_response_path) const OVERRIDE; |
79 | 82 |
80 static void CancelAll(); | 83 static void CancelAll(); |
81 | 84 |
82 protected: | 85 protected: |
83 // How should the response be stored? | 86 // How should the response be stored? |
84 enum ResponseDestinationType { | 87 enum ResponseDestinationType { |
85 STRING, // Default: In a std::string | 88 STRING, // Default: In a std::string |
86 FILE // Write to a file | 89 PERMANENT_FILE, // Write to a permanent file. |
| 90 TEMP_FILE, // Write to a temporary file. |
87 }; | 91 }; |
88 | 92 |
89 // Returns the delegate. | 93 // Returns the delegate. |
90 content::URLFetcherDelegate* delegate() const; | 94 content::URLFetcherDelegate* delegate() const; |
91 | 95 |
92 // Used by tests. | 96 // Used by tests. |
93 const std::string& upload_data() const; | 97 const std::string& upload_data() const; |
94 | 98 |
95 // Used by tests. | 99 // Used by tests. |
96 void set_was_fetched_via_proxy(bool flag); | 100 void set_was_fetched_via_proxy(bool flag); |
(...skipping 19 matching lines...) Expand all Loading... |
116 // NOTE: for safety, this should only be used through ScopedURLFetcherFactory! | 120 // NOTE: for safety, this should only be used through ScopedURLFetcherFactory! |
117 static void set_factory(content::URLFetcherFactory* factory); | 121 static void set_factory(content::URLFetcherFactory* factory); |
118 | 122 |
119 class Core; | 123 class Core; |
120 scoped_refptr<Core> core_; | 124 scoped_refptr<Core> core_; |
121 | 125 |
122 DISALLOW_COPY_AND_ASSIGN(URLFetcherImpl); | 126 DISALLOW_COPY_AND_ASSIGN(URLFetcherImpl); |
123 }; | 127 }; |
124 | 128 |
125 #endif // CONTENT_COMMON_NET_URL_FETCHER_IMPL_H_ | 129 #endif // CONTENT_COMMON_NET_URL_FETCHER_IMPL_H_ |
OLD | NEW |