OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading | 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading |
6 | 6 |
7 #include "content/browser/renderer_host/resource_dispatcher_host.h" | 7 #include "content/browser/renderer_host/resource_dispatcher_host.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 14 matching lines...) Expand all Loading... | |
25 #include "content/browser/cert_store.h" | 25 #include "content/browser/cert_store.h" |
26 #include "content/browser/child_process_security_policy.h" | 26 #include "content/browser/child_process_security_policy.h" |
27 #include "content/browser/chrome_blob_storage_context.h" | 27 #include "content/browser/chrome_blob_storage_context.h" |
28 #include "content/browser/cross_site_request_manager.h" | 28 #include "content/browser/cross_site_request_manager.h" |
29 #include "content/browser/download/download_file_manager.h" | 29 #include "content/browser/download/download_file_manager.h" |
30 #include "content/browser/download/download_id_factory.h" | 30 #include "content/browser/download/download_id_factory.h" |
31 #include "content/browser/download/download_resource_handler.h" | 31 #include "content/browser/download/download_resource_handler.h" |
32 #include "content/browser/download/save_file_manager.h" | 32 #include "content/browser/download/save_file_manager.h" |
33 #include "content/browser/download/save_file_resource_handler.h" | 33 #include "content/browser/download/save_file_resource_handler.h" |
34 #include "content/browser/plugin_service_impl.h" | 34 #include "content/browser/plugin_service_impl.h" |
35 #include "content/browser/renderer_host/allow_cancel_resource_handler.h" | |
35 #include "content/browser/renderer_host/async_resource_handler.h" | 36 #include "content/browser/renderer_host/async_resource_handler.h" |
36 #include "content/browser/renderer_host/buffered_resource_handler.h" | 37 #include "content/browser/renderer_host/buffered_resource_handler.h" |
37 #include "content/browser/renderer_host/cross_site_resource_handler.h" | 38 #include "content/browser/renderer_host/cross_site_resource_handler.h" |
38 #include "content/browser/renderer_host/redirect_to_file_resource_handler.h" | 39 #include "content/browser/renderer_host/redirect_to_file_resource_handler.h" |
39 #include "content/browser/renderer_host/render_view_host.h" | 40 #include "content/browser/renderer_host/render_view_host.h" |
40 #include "content/browser/renderer_host/render_view_host_delegate.h" | 41 #include "content/browser/renderer_host/render_view_host_delegate.h" |
41 #include "content/browser/renderer_host/resource_dispatcher_host_login_delegate. h" | 42 #include "content/browser/renderer_host/resource_dispatcher_host_login_delegate. h" |
42 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h" | 43 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h" |
43 #include "content/browser/renderer_host/resource_message_filter.h" | 44 #include "content/browser/renderer_host/resource_message_filter.h" |
44 #include "content/browser/renderer_host/resource_queue.h" | 45 #include "content/browser/renderer_host/resource_queue.h" |
(...skipping 1251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1296 info->resource_handler())) { | 1297 info->resource_handler())) { |
1297 // The request is complete so we can remove it. | 1298 // The request is complete so we can remove it. |
1298 RemovePendingRequest(info->child_id(), info->request_id()); | 1299 RemovePendingRequest(info->child_id(), info->request_id()); |
1299 return; | 1300 return; |
1300 } | 1301 } |
1301 | 1302 |
1302 scoped_refptr<ResourceResponse> response(new ResourceResponse); | 1303 scoped_refptr<ResourceResponse> response(new ResourceResponse); |
1303 PopulateResourceResponse(request, response); | 1304 PopulateResourceResponse(request, response); |
1304 if (!info->resource_handler()->OnRequestRedirected(info->request_id(), | 1305 if (!info->resource_handler()->OnRequestRedirected(info->request_id(), |
1305 new_url, | 1306 new_url, |
1306 response, defer_redirect)) | 1307 response, |
1308 defer_redirect)) { | |
1307 CancelRequestInternal(request, false); | 1309 CancelRequestInternal(request, false); |
1310 return; | |
1311 } | |
1312 | |
1313 // If a URLRequest is transferred to a new RenderViewHost, its | |
1314 // ResourceHandlers should not received any notifications because they may | |
Matt Perry
2012/01/05 23:52:44
receive*
battre
2012/01/06 02:18:02
Done.
| |
1315 // depend on the state of the old RVH. We set a ResourceHandler that allows | |
1316 // canceling requests, because on shutdown of the RDH all pending requests | |
1317 // are canceled. The RVH of requests that are being transferred may be gone by | |
1318 // that time. | |
1319 GlobalRequestID global_request_id(info->child_id(), info->request_id()); | |
1320 if (IsTransferredNavigation(global_request_id)) | |
1321 info->set_resource_handler(new AllowCancelResourceHandler()); | |
battre
2012/01/05 22:55:17
We cannot put this code into the TransferNavigatio
Matt Perry
2012/01/05 23:52:44
It's perfectly fine to delete an instance of a cla
battre
2012/01/06 02:18:02
Done. Moved to MarkAsTransferredNavigation as disc
| |
1308 } | 1322 } |
1309 | 1323 |
1310 void ResourceDispatcherHost::OnAuthRequired( | 1324 void ResourceDispatcherHost::OnAuthRequired( |
1311 net::URLRequest* request, | 1325 net::URLRequest* request, |
1312 net::AuthChallengeInfo* auth_info) { | 1326 net::AuthChallengeInfo* auth_info) { |
1313 if (request->load_flags() & net::LOAD_DO_NOT_PROMPT_FOR_LOGIN) { | 1327 if (request->load_flags() & net::LOAD_DO_NOT_PROMPT_FOR_LOGIN) { |
1314 request->CancelAuth(); | 1328 request->CancelAuth(); |
1315 return; | 1329 return; |
1316 } | 1330 } |
1317 | 1331 |
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2247 const GlobalRequestID& transferred_request_id, | 2261 const GlobalRequestID& transferred_request_id, |
2248 net::URLRequest* ransferred_request) { | 2262 net::URLRequest* ransferred_request) { |
2249 transferred_navigations_[transferred_request_id] = ransferred_request; | 2263 transferred_navigations_[transferred_request_id] = ransferred_request; |
2250 } | 2264 } |
2251 | 2265 |
2252 bool ResourceDispatcherHost::IsTransferredNavigation( | 2266 bool ResourceDispatcherHost::IsTransferredNavigation( |
2253 const content::GlobalRequestID& transferred_request_id) const { | 2267 const content::GlobalRequestID& transferred_request_id) const { |
2254 return transferred_navigations_.find(transferred_request_id) != | 2268 return transferred_navigations_.find(transferred_request_id) != |
2255 transferred_navigations_.end(); | 2269 transferred_navigations_.end(); |
2256 } | 2270 } |
OLD | NEW |