OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/html_viewer/web_url_loader_impl.h" | 5 #include "components/html_viewer/web_url_loader_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 if (base::StartsWith(status_line.get(), "HTTP/1.1", | 42 if (base::StartsWith(status_line.get(), "HTTP/1.1", |
43 base::CompareCase::SENSITIVE)) | 43 base::CompareCase::SENSITIVE)) |
44 return blink::WebURLResponse::HTTPVersion_1_1; | 44 return blink::WebURLResponse::HTTPVersion_1_1; |
45 | 45 |
46 return blink::WebURLResponse::HTTPVersionUnknown; | 46 return blink::WebURLResponse::HTTPVersionUnknown; |
47 } | 47 } |
48 | 48 |
49 blink::WebURLResponse ToWebURLResponse(const URLResponsePtr& url_response) { | 49 blink::WebURLResponse ToWebURLResponse(const URLResponsePtr& url_response) { |
50 blink::WebURLResponse result; | 50 blink::WebURLResponse result; |
51 result.initialize(); | 51 result.initialize(); |
52 result.setURL(GURL(url_response->url)); | 52 result.setURL(GURL(url_response->url.get())); |
53 result.setMIMEType(blink::WebString::fromUTF8(url_response->mime_type)); | 53 result.setMIMEType(blink::WebString::fromUTF8(url_response->mime_type)); |
54 result.setTextEncodingName(blink::WebString::fromUTF8(url_response->charset)); | 54 result.setTextEncodingName(blink::WebString::fromUTF8(url_response->charset)); |
55 result.setHTTPVersion(StatusLineToHTTPVersion(url_response->status_line)); | 55 result.setHTTPVersion(StatusLineToHTTPVersion(url_response->status_line)); |
56 result.setHTTPStatusCode(url_response->status_code); | 56 result.setHTTPStatusCode(url_response->status_code); |
57 result.setExpectedContentLength(-1); // Not available. | 57 result.setExpectedContentLength(-1); // Not available. |
58 | 58 |
59 // TODO(darin): Initialize timing properly. | 59 // TODO(darin): Initialize timing properly. |
60 blink::WebURLLoadTiming timing; | 60 blink::WebURLLoadTiming timing; |
61 timing.initialize(); | 61 timing.initialize(); |
62 result.setLoadTiming(timing); | 62 result.setLoadTiming(timing); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 url_request->auto_follow_redirects = true; | 99 url_request->auto_follow_redirects = true; |
100 URLResponsePtr url_response; | 100 URLResponsePtr url_response; |
101 url_loader_->Start(std::move(url_request), | 101 url_loader_->Start(std::move(url_request), |
102 [&url_response](URLResponsePtr url_response_result) { | 102 [&url_response](URLResponsePtr url_response_result) { |
103 url_response = std::move(url_response_result); | 103 url_response = std::move(url_response_result); |
104 }); | 104 }); |
105 url_loader_.WaitForIncomingResponse(); | 105 url_loader_.WaitForIncomingResponse(); |
106 if (url_response->error) { | 106 if (url_response->error) { |
107 error.domain = WebString::fromUTF8(net::kErrorDomain); | 107 error.domain = WebString::fromUTF8(net::kErrorDomain); |
108 error.reason = url_response->error->code; | 108 error.reason = url_response->error->code; |
109 error.unreachableURL = GURL(url_response->url); | 109 error.unreachableURL = GURL(url_response->url.get()); |
110 return; | 110 return; |
111 } | 111 } |
112 | 112 |
113 response = ToWebURLResponse(url_response); | 113 response = ToWebURLResponse(url_response); |
114 std::string body; | 114 std::string body; |
115 mojo::common::BlockingCopyToString(std::move(url_response->body), &body); | 115 mojo::common::BlockingCopyToString(std::move(url_response->body), &body); |
116 data.assign(body.data(), body.length()); | 116 data.assign(body.data(), body.length()); |
117 } | 117 } |
118 | 118 |
119 void WebURLLoaderImpl::loadAsynchronously(const blink::WebURLRequest& request, | 119 void WebURLLoaderImpl::loadAsynchronously(const blink::WebURLRequest& request, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 blink::WebURLRequest(), | 170 blink::WebURLRequest(), |
171 base::Passed(&failed_response))); | 171 base::Passed(&failed_response))); |
172 } | 172 } |
173 | 173 |
174 void WebURLLoaderImpl::setDefersLoading(bool defers_loading) { | 174 void WebURLLoaderImpl::setDefersLoading(bool defers_loading) { |
175 NOTIMPLEMENTED(); | 175 NOTIMPLEMENTED(); |
176 } | 176 } |
177 | 177 |
178 void WebURLLoaderImpl::OnReceivedResponse(const blink::WebURLRequest& request, | 178 void WebURLLoaderImpl::OnReceivedResponse(const blink::WebURLRequest& request, |
179 URLResponsePtr url_response) { | 179 URLResponsePtr url_response) { |
180 url_ = GURL(url_response->url); | 180 url_ = GURL(url_response->url.get()); |
181 | 181 |
182 if (url_response->error) { | 182 if (url_response->error) { |
183 OnReceivedError(std::move(url_response)); | 183 OnReceivedError(std::move(url_response)); |
184 } else if (url_response->redirect_url) { | 184 } else if (url_response->redirect_url) { |
185 OnReceivedRedirect(request, std::move(url_response)); | 185 OnReceivedRedirect(request, std::move(url_response)); |
186 } else { | 186 } else { |
187 base::WeakPtr<WebURLLoaderImpl> self(weak_factory_.GetWeakPtr()); | 187 base::WeakPtr<WebURLLoaderImpl> self(weak_factory_.GetWeakPtr()); |
188 client_->didReceiveResponse(this, ToWebURLResponse(url_response)); | 188 client_->didReceiveResponse(this, ToWebURLResponse(url_response)); |
189 | 189 |
190 // We may have been deleted during didReceiveResponse. | 190 // We may have been deleted during didReceiveResponse. |
191 if (!self) | 191 if (!self) |
192 return; | 192 return; |
193 | 193 |
194 // Start streaming data | 194 // Start streaming data |
195 response_body_stream_ = std::move(url_response->body); | 195 response_body_stream_ = std::move(url_response->body); |
196 ReadMore(); | 196 ReadMore(); |
197 } | 197 } |
198 } | 198 } |
199 | 199 |
200 void WebURLLoaderImpl::OnReceivedError(URLResponsePtr url_response) { | 200 void WebURLLoaderImpl::OnReceivedError(URLResponsePtr url_response) { |
201 blink::WebURLError web_error; | 201 blink::WebURLError web_error; |
202 web_error.domain = blink::WebString::fromUTF8(net::kErrorDomain); | 202 web_error.domain = blink::WebString::fromUTF8(net::kErrorDomain); |
203 web_error.reason = url_response->error->code; | 203 web_error.reason = url_response->error->code; |
204 web_error.unreachableURL = GURL(url_response->url); | 204 web_error.unreachableURL = GURL(url_response->url.get()); |
205 web_error.staleCopyInCache = false; | 205 web_error.staleCopyInCache = false; |
206 web_error.isCancellation = | 206 web_error.isCancellation = |
207 url_response->error->code == net::ERR_ABORTED ? true : false; | 207 url_response->error->code == net::ERR_ABORTED ? true : false; |
208 | 208 |
209 client_->didFail(this, web_error); | 209 client_->didFail(this, web_error); |
210 } | 210 } |
211 | 211 |
212 void WebURLLoaderImpl::OnReceivedRedirect(const blink::WebURLRequest& request, | 212 void WebURLLoaderImpl::OnReceivedRedirect(const blink::WebURLRequest& request, |
213 URLResponsePtr url_response) { | 213 URLResponsePtr url_response) { |
214 // TODO(erg): setFirstPartyForCookies() and setHTTPReferrer() are unset here. | 214 // TODO(erg): setFirstPartyForCookies() and setHTTPReferrer() are unset here. |
215 blink::WebURLRequest new_request; | 215 blink::WebURLRequest new_request; |
216 new_request.initialize(); | 216 new_request.initialize(); |
217 new_request.setURL(GURL(url_response->redirect_url)); | 217 new_request.setURL(GURL(url_response->redirect_url.get())); |
218 new_request.setDownloadToFile(request.downloadToFile()); | 218 new_request.setDownloadToFile(request.downloadToFile()); |
219 new_request.setRequestContext(request.requestContext()); | 219 new_request.setRequestContext(request.requestContext()); |
220 new_request.setFrameType(request.frameType()); | 220 new_request.setFrameType(request.frameType()); |
221 new_request.setSkipServiceWorker(request.skipServiceWorker()); | 221 new_request.setSkipServiceWorker(request.skipServiceWorker()); |
222 new_request.setFetchRequestMode(request.fetchRequestMode()); | 222 new_request.setFetchRequestMode(request.fetchRequestMode()); |
223 new_request.setFetchCredentialsMode(request.fetchCredentialsMode()); | 223 new_request.setFetchCredentialsMode(request.fetchCredentialsMode()); |
224 new_request.setHTTPReferrer( | 224 new_request.setHTTPReferrer( |
225 WebString::fromUTF8(url_response->redirect_referrer), | 225 WebString::fromUTF8(url_response->redirect_referrer), |
226 referrer_policy_); | 226 referrer_policy_); |
227 | 227 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 void WebURLLoaderImpl::OnResponseBodyStreamReady(MojoResult result) { | 315 void WebURLLoaderImpl::OnResponseBodyStreamReady(MojoResult result) { |
316 ReadMore(); | 316 ReadMore(); |
317 } | 317 } |
318 | 318 |
319 void WebURLLoaderImpl::setLoadingTaskRunner( | 319 void WebURLLoaderImpl::setLoadingTaskRunner( |
320 blink::WebTaskRunner* web_task_runner) { | 320 blink::WebTaskRunner* web_task_runner) { |
321 // TODO(alexclarke): Consider hooking this up. | 321 // TODO(alexclarke): Consider hooking this up. |
322 } | 322 } |
323 | 323 |
324 } // namespace html_viewer | 324 } // namespace html_viewer |
OLD | NEW |