[content shell] implement testRunner.overridePreference
[chromium-blink-merge.git] / net / url_request / url_fetcher_impl.cc
blobcdbd104f204079f46acffe2c21df32247008439b
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
3 // found in the LICENSE file.
5 #include "net/url_request/url_fetcher_impl.h"
7 #include "base/bind.h"
8 #include "base/message_loop_proxy.h"
9 #include "net/url_request/url_fetcher_core.h"
10 #include "net/url_request/url_fetcher_factory.h"
12 namespace net {
14 static URLFetcherFactory* g_factory = NULL;
16 URLFetcherImpl::URLFetcherImpl(const GURL& url,
17 RequestType request_type,
18 URLFetcherDelegate* d)
19 : ALLOW_THIS_IN_INITIALIZER_LIST(
20 core_(new URLFetcherCore(this, url, request_type, d))) {
23 URLFetcherImpl::~URLFetcherImpl() {
24 core_->Stop();
27 void URLFetcherImpl::SetUploadData(const std::string& upload_content_type,
28 const std::string& upload_content) {
29 core_->SetUploadData(upload_content_type, upload_content);
32 void URLFetcherImpl::SetChunkedUpload(const std::string& content_type) {
33 core_->SetChunkedUpload(content_type);
36 void URLFetcherImpl::AppendChunkToUpload(const std::string& data,
37 bool is_last_chunk) {
38 DCHECK(data.length());
39 core_->AppendChunkToUpload(data, is_last_chunk);
42 void URLFetcherImpl::SetReferrer(const std::string& referrer) {
43 core_->SetReferrer(referrer);
46 void URLFetcherImpl::SetLoadFlags(int load_flags) {
47 core_->SetLoadFlags(load_flags);
50 int URLFetcherImpl::GetLoadFlags() const {
51 return core_->GetLoadFlags();
54 void URLFetcherImpl::SetExtraRequestHeaders(
55 const std::string& extra_request_headers) {
56 core_->SetExtraRequestHeaders(extra_request_headers);
59 void URLFetcherImpl::AddExtraRequestHeader(const std::string& header_line) {
60 core_->AddExtraRequestHeader(header_line);
63 void URLFetcherImpl::GetExtraRequestHeaders(
64 HttpRequestHeaders* headers) const {
65 GetExtraRequestHeaders(headers);
68 void URLFetcherImpl::SetRequestContext(
69 URLRequestContextGetter* request_context_getter) {
70 core_->SetRequestContext(request_context_getter);
73 void URLFetcherImpl::SetFirstPartyForCookies(
74 const GURL& first_party_for_cookies) {
75 core_->SetFirstPartyForCookies(first_party_for_cookies);
78 void URLFetcherImpl::SetURLRequestUserData(
79 const void* key,
80 const CreateDataCallback& create_data_callback) {
81 core_->SetURLRequestUserData(key, create_data_callback);
84 void URLFetcherImpl::SetStopOnRedirect(bool stop_on_redirect) {
85 core_->SetStopOnRedirect(stop_on_redirect);
88 void URLFetcherImpl::SetAutomaticallyRetryOn5xx(bool retry) {
89 core_->SetAutomaticallyRetryOn5xx(retry);
92 void URLFetcherImpl::SetMaxRetriesOn5xx(int max_retries) {
93 core_->SetMaxRetriesOn5xx(max_retries);
96 int URLFetcherImpl::GetMaxRetriesOn5xx() const {
97 return core_->GetMaxRetriesOn5xx();
101 base::TimeDelta URLFetcherImpl::GetBackoffDelay() const {
102 return core_->GetBackoffDelay();
105 void URLFetcherImpl::SetAutomaticallyRetryOnNetworkChanges(int max_retries) {
106 core_->SetAutomaticallyRetryOnNetworkChanges(max_retries);
109 void URLFetcherImpl::SaveResponseToFileAtPath(
110 const FilePath& file_path,
111 scoped_refptr<base::TaskRunner> file_task_runner) {
112 core_->SaveResponseToFileAtPath(file_path, file_task_runner);
115 void URLFetcherImpl::SaveResponseToTemporaryFile(
116 scoped_refptr<base::TaskRunner> file_task_runner) {
117 core_->SaveResponseToTemporaryFile(file_task_runner);
120 HttpResponseHeaders* URLFetcherImpl::GetResponseHeaders() const {
121 return core_->GetResponseHeaders();
124 HostPortPair URLFetcherImpl::GetSocketAddress() const {
125 return core_->GetSocketAddress();
128 bool URLFetcherImpl::WasFetchedViaProxy() const {
129 return core_->WasFetchedViaProxy();
132 void URLFetcherImpl::Start() {
133 core_->Start();
136 const GURL& URLFetcherImpl::GetOriginalURL() const {
137 return core_->GetOriginalURL();
140 const GURL& URLFetcherImpl::GetURL() const {
141 return core_->GetURL();
144 const URLRequestStatus& URLFetcherImpl::GetStatus() const {
145 return core_->GetStatus();
148 int URLFetcherImpl::GetResponseCode() const {
149 return core_->GetResponseCode();
152 const ResponseCookies& URLFetcherImpl::GetCookies() const {
153 return core_->GetCookies();
156 bool URLFetcherImpl::FileErrorOccurred(
157 base::PlatformFileError* out_error_code) const {
158 return core_->FileErrorOccurred(out_error_code);
161 void URLFetcherImpl::ReceivedContentWasMalformed() {
162 core_->ReceivedContentWasMalformed();
165 bool URLFetcherImpl::GetResponseAsString(
166 std::string* out_response_string) const {
167 return core_->GetResponseAsString(out_response_string);
170 bool URLFetcherImpl::GetResponseAsFilePath(
171 bool take_ownership,
172 FilePath* out_response_path) const {
173 return core_->GetResponseAsFilePath(take_ownership, out_response_path);
176 // static
177 void URLFetcherImpl::CancelAll() {
178 URLFetcherCore::CancelAll();
181 // static
182 void URLFetcherImpl::SetEnableInterceptionForTests(bool enabled) {
183 URLFetcherCore::SetEnableInterceptionForTests(enabled);
186 // static
187 int URLFetcherImpl::GetNumFetcherCores() {
188 return URLFetcherCore::GetNumFetcherCores();
191 URLFetcherDelegate* URLFetcherImpl::delegate() const {
192 return core_->delegate();
195 // static
196 URLFetcherFactory* URLFetcherImpl::factory() {
197 return g_factory;
200 // static
201 void URLFetcherImpl::set_factory(URLFetcherFactory* factory) {
202 g_factory = factory;
205 } // namespace net