| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 an implementation of the ResourceLoaderBridge class. | 5 // This file contains an implementation of the ResourceLoaderBridge class. |
| 6 // The class is implemented using URLRequest, meaning it is a "simple" version | 6 // The class is implemented using URLRequest, meaning it is a "simple" version |
| 7 // that directly issues requests. The more complicated one used in the | 7 // that directly issues requests. The more complicated one used in the |
| 8 // browser uses IPC. | 8 // browser uses IPC. |
| 9 // | 9 // |
| 10 // Because URLRequest only provides an asynchronous resource loading API, this | 10 // Because URLRequest only provides an asynchronous resource loading API, this |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 #include "net/base/upload_data.h" | 51 #include "net/base/upload_data.h" |
| 52 #include "net/http/http_cache.h" | 52 #include "net/http/http_cache.h" |
| 53 #include "net/http/http_request_headers.h" | 53 #include "net/http/http_request_headers.h" |
| 54 #include "net/http/http_response_headers.h" | 54 #include "net/http/http_response_headers.h" |
| 55 #include "net/proxy/proxy_service.h" | 55 #include "net/proxy/proxy_service.h" |
| 56 #if defined(OS_WIN) | 56 #if defined(OS_WIN) |
| 57 #include "net/socket/ssl_client_socket_nss_factory.h" | 57 #include "net/socket/ssl_client_socket_nss_factory.h" |
| 58 #endif | 58 #endif |
| 59 #include "net/url_request/url_request.h" | 59 #include "net/url_request/url_request.h" |
| 60 #include "webkit/appcache/appcache_interfaces.h" | 60 #include "webkit/appcache/appcache_interfaces.h" |
| 61 #include "webkit/blob/blob_storage_controller.h" |
| 61 #include "webkit/glue/resource_loader_bridge.h" | 62 #include "webkit/glue/resource_loader_bridge.h" |
| 62 #include "webkit/tools/test_shell/simple_appcache_system.h" | 63 #include "webkit/tools/test_shell/simple_appcache_system.h" |
| 63 #include "webkit/tools/test_shell/simple_socket_stream_bridge.h" | 64 #include "webkit/tools/test_shell/simple_socket_stream_bridge.h" |
| 64 #include "webkit/tools/test_shell/test_shell_request_context.h" | 65 #include "webkit/tools/test_shell/test_shell_request_context.h" |
| 66 #include "webkit/tools/test_shell/test_shell_webblobregistry_impl.h" |
| 65 | 67 |
| 66 using webkit_glue::ResourceLoaderBridge; | 68 using webkit_glue::ResourceLoaderBridge; |
| 67 using net::StaticCookiePolicy; | 69 using net::StaticCookiePolicy; |
| 68 using net::HttpResponseHeaders; | 70 using net::HttpResponseHeaders; |
| 69 | 71 |
| 70 namespace { | 72 namespace { |
| 71 | 73 |
| 72 struct TestShellRequestContextParams { | 74 struct TestShellRequestContextParams { |
| 73 TestShellRequestContextParams( | 75 TestShellRequestContextParams( |
| 74 const FilePath& in_cache_path, | 76 const FilePath& in_cache_path, |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 g_request_context_params = NULL; | 115 g_request_context_params = NULL; |
| 114 } else { | 116 } else { |
| 115 g_request_context = new TestShellRequestContext(); | 117 g_request_context = new TestShellRequestContext(); |
| 116 SetAcceptAllCookies(false); | 118 SetAcceptAllCookies(false); |
| 117 } | 119 } |
| 118 | 120 |
| 119 g_request_context->AddRef(); | 121 g_request_context->AddRef(); |
| 120 | 122 |
| 121 SimpleAppCacheSystem::InitializeOnIOThread(g_request_context); | 123 SimpleAppCacheSystem::InitializeOnIOThread(g_request_context); |
| 122 SimpleSocketStreamBridge::InitializeOnIOThread(g_request_context); | 124 SimpleSocketStreamBridge::InitializeOnIOThread(g_request_context); |
| 125 TestShellWebBlobRegistryImpl::InitializeOnIOThread( |
| 126 static_cast<TestShellRequestContext*>(g_request_context)-> |
| 127 blob_storage_controller()); |
| 123 } | 128 } |
| 124 | 129 |
| 125 virtual void CleanUp() { | 130 virtual void CleanUp() { |
| 126 SimpleSocketStreamBridge::Cleanup(); | 131 SimpleSocketStreamBridge::Cleanup(); |
| 132 TestShellWebBlobRegistryImpl::Cleanup(); |
| 127 if (g_request_context) { | 133 if (g_request_context) { |
| 128 g_request_context->Release(); | 134 g_request_context->Release(); |
| 129 g_request_context = NULL; | 135 g_request_context = NULL; |
| 130 } | 136 } |
| 131 } | 137 } |
| 132 | 138 |
| 133 void SetAcceptAllCookies(bool accept_all_cookies) { | 139 void SetAcceptAllCookies(bool accept_all_cookies) { |
| 134 StaticCookiePolicy::Type policy_type = accept_all_cookies ? | 140 StaticCookiePolicy::Type policy_type = accept_all_cookies ? |
| 135 StaticCookiePolicy::ALLOW_ALL_COOKIES : | 141 StaticCookiePolicy::ALLOW_ALL_COOKIES : |
| 136 StaticCookiePolicy::BLOCK_THIRD_PARTY_COOKIES; | 142 StaticCookiePolicy::BLOCK_THIRD_PARTY_COOKIES; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 void NotifyUploadProgress(uint64 position, uint64 size) { | 262 void NotifyUploadProgress(uint64 position, uint64 size) { |
| 257 if (peer_) | 263 if (peer_) |
| 258 peer_->OnUploadProgress(position, size); | 264 peer_->OnUploadProgress(position, size); |
| 259 } | 265 } |
| 260 | 266 |
| 261 // -------------------------------------------------------------------------- | 267 // -------------------------------------------------------------------------- |
| 262 // The following methods are called on the io thread. They correspond to | 268 // The following methods are called on the io thread. They correspond to |
| 263 // actions performed on the owner's thread. | 269 // actions performed on the owner's thread. |
| 264 | 270 |
| 265 void AsyncStart(RequestParams* params) { | 271 void AsyncStart(RequestParams* params) { |
| 272 // Might need to resolve the blob references in the upload data. |
| 273 if (params->upload) { |
| 274 static_cast<TestShellRequestContext*>(g_request_context)-> |
| 275 blob_storage_controller()->ResolveBlobReferencesInUploadData( |
| 276 params->upload.get()); |
| 277 } |
| 278 |
| 266 request_.reset(new URLRequest(params->url, this)); | 279 request_.reset(new URLRequest(params->url, this)); |
| 267 request_->set_method(params->method); | 280 request_->set_method(params->method); |
| 268 request_->set_first_party_for_cookies(params->first_party_for_cookies); | 281 request_->set_first_party_for_cookies(params->first_party_for_cookies); |
| 269 request_->set_referrer(params->referrer.spec()); | 282 request_->set_referrer(params->referrer.spec()); |
| 270 net::HttpRequestHeaders headers; | 283 net::HttpRequestHeaders headers; |
| 271 headers.AddHeadersFromString(params->headers); | 284 headers.AddHeadersFromString(params->headers); |
| 272 request_->SetExtraRequestHeaders(headers); | 285 request_->SetExtraRequestHeaders(headers); |
| 273 request_->set_load_flags(params->load_flags); | 286 request_->set_load_flags(params->load_flags); |
| 274 request_->set_upload(params->upload.get()); | 287 request_->set_upload(params->upload.get()); |
| 275 request_->set_context(g_request_context); | 288 request_->set_context(g_request_context); |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 uint64 offset, | 588 uint64 offset, |
| 576 uint64 length, | 589 uint64 length, |
| 577 const base::Time& expected_modification_time) { | 590 const base::Time& expected_modification_time) { |
| 578 DCHECK(params_.get()); | 591 DCHECK(params_.get()); |
| 579 if (!params_->upload) | 592 if (!params_->upload) |
| 580 params_->upload = new net::UploadData(); | 593 params_->upload = new net::UploadData(); |
| 581 params_->upload->AppendFileRange(file_path, offset, length, | 594 params_->upload->AppendFileRange(file_path, offset, length, |
| 582 expected_modification_time); | 595 expected_modification_time); |
| 583 } | 596 } |
| 584 | 597 |
| 598 virtual void AppendBlobToUpload(const GURL& blob_url) { |
| 599 DCHECK(params_.get()); |
| 600 if (!params_->upload) |
| 601 params_->upload = new net::UploadData(); |
| 602 params_->upload->AppendBlob(blob_url); |
| 603 } |
| 604 |
| 585 virtual void SetUploadIdentifier(int64 identifier) { | 605 virtual void SetUploadIdentifier(int64 identifier) { |
| 586 DCHECK(params_.get()); | 606 DCHECK(params_.get()); |
| 587 if (!params_->upload) | 607 if (!params_->upload) |
| 588 params_->upload = new net::UploadData(); | 608 params_->upload = new net::UploadData(); |
| 589 params_->upload->set_identifier(identifier); | 609 params_->upload->set_identifier(identifier); |
| 590 } | 610 } |
| 591 | 611 |
| 592 virtual bool Start(Peer* peer) { | 612 virtual bool Start(Peer* peer) { |
| 593 DCHECK(!proxy_); | 613 DCHECK(!proxy_); |
| 594 | 614 |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 | 849 |
| 830 // static | 850 // static |
| 831 scoped_refptr<base::MessageLoopProxy> | 851 scoped_refptr<base::MessageLoopProxy> |
| 832 SimpleResourceLoaderBridge::GetIoThread() { | 852 SimpleResourceLoaderBridge::GetIoThread() { |
| 833 if (!EnsureIOThread()) { | 853 if (!EnsureIOThread()) { |
| 834 LOG(DFATAL) << "Failed to create IO thread."; | 854 LOG(DFATAL) << "Failed to create IO thread."; |
| 835 return NULL; | 855 return NULL; |
| 836 } | 856 } |
| 837 return g_io_thread->message_loop_proxy(); | 857 return g_io_thread->message_loop_proxy(); |
| 838 } | 858 } |
| OLD | NEW |