| 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 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. | 5 // An implementation of WebURLLoader in terms of ResourceLoaderBridge. |
| 6 | 6 |
| 7 #include "content/child/web_url_loader_impl.h" | 7 #include "content/child/web_url_loader_impl.h" |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/message_loop/message_loop.h" | 12 #include "base/message_loop/message_loop.h" |
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 15 #include "content/child/child_thread.h" | 15 #include "content/child/child_thread.h" |
| 16 #include "content/child/ftp_directory_listing_response_delegate.h" | 16 #include "content/child/ftp_directory_listing_response_delegate.h" |
| 17 #include "content/child/request_extra_data.h" | 17 #include "content/child/request_extra_data.h" |
| 18 #include "content/child/request_info.h" | 18 #include "content/child/request_info.h" |
| 19 #include "content/child/sync_load_response.h" | 19 #include "content/child/sync_load_response.h" |
| 20 #include "content/common/resource_request_body.h" | 20 #include "content/common/resource_request_body.h" |
| 21 #include "content/public/child/request_delegate_peer.h" |
| 21 #include "net/base/data_url.h" | 22 #include "net/base/data_url.h" |
| 22 #include "net/base/load_flags.h" | 23 #include "net/base/load_flags.h" |
| 23 #include "net/base/mime_util.h" | 24 #include "net/base/mime_util.h" |
| 24 #include "net/base/net_errors.h" | 25 #include "net/base/net_errors.h" |
| 25 #include "net/base/net_util.h" | 26 #include "net/base/net_util.h" |
| 26 #include "net/http/http_response_headers.h" | 27 #include "net/http/http_response_headers.h" |
| 27 #include "net/http/http_util.h" | 28 #include "net/http/http_util.h" |
| 28 #include "net/url_request/url_request.h" | 29 #include "net/url_request/url_request.h" |
| 29 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h" | 30 #include "third_party/WebKit/public/platform/WebHTTPHeaderVisitor.h" |
| 30 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" | 31 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } | 215 } |
| 215 | 216 |
| 216 } // namespace | 217 } // namespace |
| 217 | 218 |
| 218 // WebURLLoaderImpl::Context -------------------------------------------------- | 219 // WebURLLoaderImpl::Context -------------------------------------------------- |
| 219 | 220 |
| 220 // This inner class exists since the WebURLLoader may be deleted while inside a | 221 // This inner class exists since the WebURLLoader may be deleted while inside a |
| 221 // call to WebURLLoaderClient. The bridge requires its Peer to stay alive | 222 // call to WebURLLoaderClient. The bridge requires its Peer to stay alive |
| 222 // until it receives OnCompletedRequest. | 223 // until it receives OnCompletedRequest. |
| 223 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, | 224 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, |
| 224 public ResourceLoaderBridge::Peer { | 225 public RequestDelegatePeer { |
| 225 public: | 226 public: |
| 226 explicit Context(WebURLLoaderImpl* loader); | 227 explicit Context(WebURLLoaderImpl* loader); |
| 227 | 228 |
| 228 WebURLLoaderClient* client() const { return client_; } | 229 WebURLLoaderClient* client() const { return client_; } |
| 229 void set_client(WebURLLoaderClient* client) { client_ = client; } | 230 void set_client(WebURLLoaderClient* client) { client_ = client; } |
| 230 | 231 |
| 231 void Cancel(); | 232 void Cancel(); |
| 232 void SetDefersLoading(bool value); | 233 void SetDefersLoading(bool value); |
| 233 void DidChangePriority(WebURLRequest::Priority new_priority); | 234 void DidChangePriority(WebURLRequest::Priority new_priority); |
| 234 void Start(const WebURLRequest& request, | 235 void Start(const WebURLRequest& request, |
| 235 SyncLoadResponse* sync_load_response); | 236 SyncLoadResponse* sync_load_response); |
| 236 | 237 |
| 237 // ResourceLoaderBridge::Peer methods: | 238 // RequestDelegatePeer methods: |
| 238 virtual void OnUploadProgress(uint64 position, uint64 size) OVERRIDE; | 239 virtual void OnUploadProgress(uint64 position, uint64 size) OVERRIDE; |
| 239 virtual bool OnReceivedRedirect( | 240 virtual bool OnReceivedRedirect( |
| 240 const GURL& new_url, | 241 const GURL& new_url, |
| 241 const ResourceResponseInfo& info, | 242 const ResourceResponseInfo& info, |
| 242 bool* has_new_first_party_for_cookies, | 243 bool* has_new_first_party_for_cookies, |
| 243 GURL* new_first_party_for_cookies) OVERRIDE; | 244 GURL* new_first_party_for_cookies) OVERRIDE; |
| 244 virtual void OnReceivedResponse(const ResourceResponseInfo& info) OVERRIDE; | 245 virtual void OnReceivedResponse(const ResourceResponseInfo& info) OVERRIDE; |
| 245 virtual void OnDownloadedData(int len, int encoded_data_length) OVERRIDE; | 246 virtual void OnDownloadedData(int len, int encoded_data_length) OVERRIDE; |
| 246 virtual void OnReceivedData(const char* data, | 247 virtual void OnReceivedData(const char* data, |
| 247 int data_length, | 248 int data_length, |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 | 865 |
| 865 void WebURLLoaderImpl::setDefersLoading(bool value) { | 866 void WebURLLoaderImpl::setDefersLoading(bool value) { |
| 866 context_->SetDefersLoading(value); | 867 context_->SetDefersLoading(value); |
| 867 } | 868 } |
| 868 | 869 |
| 869 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { | 870 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority) { |
| 870 context_->DidChangePriority(new_priority); | 871 context_->DidChangePriority(new_priority); |
| 871 } | 872 } |
| 872 | 873 |
| 873 } // namespace content | 874 } // namespace content |
| OLD | NEW |