| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "content/browser/loader/async_resource_handler.h" | 5 #include "content/browser/loader/async_resource_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "content/browser/loader/resource_dispatcher_host_impl.h" | 26 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
| 27 #include "content/browser/loader/resource_loader.h" | 27 #include "content/browser/loader/resource_loader.h" |
| 28 #include "content/browser/loader/resource_loader_delegate.h" | 28 #include "content/browser/loader/resource_loader_delegate.h" |
| 29 #include "content/browser/loader/resource_message_filter.h" | 29 #include "content/browser/loader/resource_message_filter.h" |
| 30 #include "content/browser/loader/resource_request_info_impl.h" | 30 #include "content/browser/loader/resource_request_info_impl.h" |
| 31 #include "content/common/resource_messages.h" | 31 #include "content/common/resource_messages.h" |
| 32 #include "content/common/resource_request.h" | 32 #include "content/common/resource_request.h" |
| 33 #include "content/public/browser/resource_context.h" | 33 #include "content/public/browser/resource_context.h" |
| 34 #include "content/public/browser/resource_request_info.h" | 34 #include "content/public/browser/resource_request_info.h" |
| 35 #include "content/public/common/content_features.h" | 35 #include "content/public/common/content_features.h" |
| 36 #include "content/public/common/process_type.h" | |
| 37 #include "content/public/common/resource_type.h" | 36 #include "content/public/common/resource_type.h" |
| 38 #include "content/public/test/mock_resource_context.h" | 37 #include "content/public/test/mock_resource_context.h" |
| 39 #include "content/public/test/test_browser_thread_bundle.h" | 38 #include "content/public/test/test_browser_thread_bundle.h" |
| 40 #include "ipc/ipc_message.h" | 39 #include "ipc/ipc_message.h" |
| 41 #include "ipc/ipc_message_macros.h" | 40 #include "ipc/ipc_message_macros.h" |
| 42 #include "net/http/http_response_headers.h" | 41 #include "net/http/http_response_headers.h" |
| 43 #include "net/http/http_util.h" | 42 #include "net/http/http_util.h" |
| 44 #include "net/ssl/client_cert_store.h" | 43 #include "net/ssl/client_cert_store.h" |
| 45 #include "net/url_request/url_request.h" | 44 #include "net/url_request/url_request.h" |
| 46 #include "net/url_request/url_request_context.h" | 45 #include "net/url_request/url_request_context.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 size_t response_data_size_; | 88 size_t response_data_size_; |
| 90 }; | 89 }; |
| 91 | 90 |
| 92 // A subclass of ResourceMessageFilter that records IPC messages that are sent. | 91 // A subclass of ResourceMessageFilter that records IPC messages that are sent. |
| 93 class RecordingResourceMessageFilter : public ResourceMessageFilter { | 92 class RecordingResourceMessageFilter : public ResourceMessageFilter { |
| 94 public: | 93 public: |
| 95 RecordingResourceMessageFilter(ResourceContext* resource_context, | 94 RecordingResourceMessageFilter(ResourceContext* resource_context, |
| 96 net::URLRequestContext* request_context) | 95 net::URLRequestContext* request_context) |
| 97 : ResourceMessageFilter( | 96 : ResourceMessageFilter( |
| 98 0, | 97 0, |
| 99 PROCESS_TYPE_RENDERER, | |
| 100 nullptr, | 98 nullptr, |
| 101 nullptr, | 99 nullptr, |
| 102 nullptr, | 100 nullptr, |
| 103 nullptr, | 101 nullptr, |
| 104 base::Bind(&RecordingResourceMessageFilter::GetContexts, | 102 base::Bind(&RecordingResourceMessageFilter::GetContexts, |
| 105 base::Unretained(this))), | 103 base::Unretained(this))), |
| 106 resource_context_(resource_context), | 104 resource_context_(resource_context), |
| 107 request_context_(request_context) { | 105 request_context_(request_context) { |
| 106 InitializeForTest(); |
| 108 set_peer_process_for_testing(base::Process::Current()); | 107 set_peer_process_for_testing(base::Process::Current()); |
| 109 } | 108 } |
| 110 | 109 |
| 111 const std::vector<std::unique_ptr<IPC::Message>>& messages() const { | 110 const std::vector<std::unique_ptr<IPC::Message>>& messages() const { |
| 112 return messages_; | 111 return messages_; |
| 113 } | 112 } |
| 114 | 113 |
| 115 // IPC::Sender implementation: | 114 // IPC::Sender implementation: |
| 116 bool Send(IPC::Message* message) override { | 115 bool Send(IPC::Message* message) override { |
| 117 // Unpickle the base::SharedMemoryHandle to avoid warnings about | 116 // Unpickle the base::SharedMemoryHandle to avoid warnings about |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 test_job_factory_.SetProtocolHandler( | 157 test_job_factory_.SetProtocolHandler( |
| 159 "test", base::MakeUnique<TestProtocolHandler>(response_data_size)); | 158 "test", base::MakeUnique<TestProtocolHandler>(response_data_size)); |
| 160 context_.set_job_factory(&test_job_factory_); | 159 context_.set_job_factory(&test_job_factory_); |
| 161 context_.Init(); | 160 context_.Init(); |
| 162 std::unique_ptr<net::URLRequest> request = context_.CreateRequest( | 161 std::unique_ptr<net::URLRequest> request = context_.CreateRequest( |
| 163 GURL("test:test"), net::DEFAULT_PRIORITY, nullptr); | 162 GURL("test:test"), net::DEFAULT_PRIORITY, nullptr); |
| 164 resource_context_ = base::MakeUnique<MockResourceContext>(&context_); | 163 resource_context_ = base::MakeUnique<MockResourceContext>(&context_); |
| 165 filter_ = | 164 filter_ = |
| 166 new RecordingResourceMessageFilter(resource_context_.get(), &context_); | 165 new RecordingResourceMessageFilter(resource_context_.get(), &context_); |
| 167 ResourceRequestInfoImpl* info = new ResourceRequestInfoImpl( | 166 ResourceRequestInfoImpl* info = new ResourceRequestInfoImpl( |
| 168 PROCESS_TYPE_RENDERER, // process_type | 167 filter_->requester_info_for_test(), |
| 169 0, // child_id | |
| 170 0, // route_id | 168 0, // route_id |
| 171 -1, // frame_tree_node_id | 169 -1, // frame_tree_node_id |
| 172 0, // origin_pid | 170 0, // origin_pid |
| 173 0, // request_id | 171 0, // request_id |
| 174 0, // render_frame_id | 172 0, // render_frame_id |
| 175 false, // is_main_frame | 173 false, // is_main_frame |
| 176 false, // parent_is_main_frame | 174 false, // parent_is_main_frame |
| 177 RESOURCE_TYPE_IMAGE, // resource_type | 175 RESOURCE_TYPE_IMAGE, // resource_type |
| 178 ui::PAGE_TRANSITION_LINK, // transition_type | 176 ui::PAGE_TRANSITION_LINK, // transition_type |
| 179 false, // should_replace_current_entry | 177 false, // should_replace_current_entry |
| 180 false, // is_download | 178 false, // is_download |
| 181 false, // is_stream | 179 false, // is_stream |
| 182 false, // allow_download | 180 false, // allow_download |
| 183 false, // has_user_gesture | 181 false, // has_user_gesture |
| 184 false, // enable load timing | 182 false, // enable load timing |
| 185 false, // enable upload progress | 183 false, // enable upload progress |
| 186 false, // do_not_prompt_for_login | 184 false, // do_not_prompt_for_login |
| 187 blink::WebReferrerPolicyDefault, // referrer_policy | 185 blink::WebReferrerPolicyDefault, // referrer_policy |
| 188 blink::WebPageVisibilityStateVisible, // visibility_state | 186 blink::WebPageVisibilityStateVisible, // visibility_state |
| 189 resource_context_.get(), // context | 187 resource_context_.get(), // context |
| 190 filter_->GetWeakPtr(), // filter | |
| 191 false, // report_raw_headers | 188 false, // report_raw_headers |
| 192 true, // is_async | 189 true, // is_async |
| 193 false, // is_using_lofi | 190 false, // is_using_lofi |
| 194 std::string(), // original_headers | 191 std::string(), // original_headers |
| 195 nullptr, // body | 192 nullptr, // body |
| 196 false); // initiated_in_secure_context | 193 false); // initiated_in_secure_context |
| 197 info->AssociateWithRequest(request.get()); | 194 info->AssociateWithRequest(request.get()); |
| 198 std::unique_ptr<AsyncResourceHandler> handler = | 195 std::unique_ptr<AsyncResourceHandler> handler = |
| 199 base::MakeUnique<AsyncResourceHandler>(request.get(), &rdh_); | 196 base::MakeUnique<AsyncResourceHandler>(request.get(), &rdh_); |
| 200 loader_ = base::MakeUnique<ResourceLoader>( | 197 loader_ = base::MakeUnique<ResourceLoader>( |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 ResourceRequestCompletionStatus completion_status = | 326 ResourceRequestCompletionStatus completion_status = |
| 330 std::get<1>(completion_params); | 327 std::get<1>(completion_params); |
| 331 EXPECT_EQ(TotalReceivedBytes(kDataSize), | 328 EXPECT_EQ(TotalReceivedBytes(kDataSize), |
| 332 completion_status.encoded_data_length); | 329 completion_status.encoded_data_length); |
| 333 EXPECT_EQ(kDataSize, completion_status.encoded_body_length); | 330 EXPECT_EQ(kDataSize, completion_status.encoded_body_length); |
| 334 } | 331 } |
| 335 | 332 |
| 336 } // namespace | 333 } // namespace |
| 337 | 334 |
| 338 } // namespace content | 335 } // namespace content |
| OLD | NEW |