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 |