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 17 matching lines...) Expand all Loading... |
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/async_resource_handler.h" | 35 #include "content/browser/renderer_host/async_resource_handler.h" |
36 #include "content/browser/renderer_host/buffered_resource_handler.h" | 36 #include "content/browser/renderer_host/buffered_resource_handler.h" |
37 #include "content/browser/renderer_host/cross_site_resource_handler.h" | 37 #include "content/browser/renderer_host/cross_site_resource_handler.h" |
| 38 #include "content/browser/renderer_host/paused_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" |
45 #include "content/browser/renderer_host/resource_request_details.h" | 46 #include "content/browser/renderer_host/resource_request_details.h" |
46 #include "content/browser/renderer_host/sync_resource_handler.h" | 47 #include "content/browser/renderer_host/sync_resource_handler.h" |
47 #include "content/browser/resource_context.h" | 48 #include "content/browser/resource_context.h" |
(...skipping 2190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2238 bool ResourceDispatcherHost::allow_cross_origin_auth_prompt() { | 2239 bool ResourceDispatcherHost::allow_cross_origin_auth_prompt() { |
2239 return allow_cross_origin_auth_prompt_; | 2240 return allow_cross_origin_auth_prompt_; |
2240 } | 2241 } |
2241 | 2242 |
2242 void ResourceDispatcherHost::set_allow_cross_origin_auth_prompt(bool value) { | 2243 void ResourceDispatcherHost::set_allow_cross_origin_auth_prompt(bool value) { |
2243 allow_cross_origin_auth_prompt_ = value; | 2244 allow_cross_origin_auth_prompt_ = value; |
2244 } | 2245 } |
2245 | 2246 |
2246 void ResourceDispatcherHost::MarkAsTransferredNavigation( | 2247 void ResourceDispatcherHost::MarkAsTransferredNavigation( |
2247 const GlobalRequestID& transferred_request_id, | 2248 const GlobalRequestID& transferred_request_id, |
2248 net::URLRequest* ransferred_request) { | 2249 net::URLRequest* transferred_request) { |
2249 transferred_navigations_[transferred_request_id] = ransferred_request; | 2250 transferred_navigations_[transferred_request_id] = transferred_request; |
| 2251 |
| 2252 // If a URLRequest is transferred to a new RenderViewHost, its |
| 2253 // ResourceHandlers should not receive any notifications because they may |
| 2254 // depend on the state of the old RVH. We set a ResourceHandler that allows |
| 2255 // canceling requests, because on shutdown of the RDH all pending requests are |
| 2256 // canceled. The RVH of requests that are being transferred may be gone by |
| 2257 // that time. |
| 2258 ResourceDispatcherHostRequestInfo* info = InfoForRequest(transferred_request); |
| 2259 scoped_refptr<ResourceHandler> paused_resource_handler( |
| 2260 new PausedResourceHandler(info->resource_handler())); |
| 2261 info->set_resource_handler(paused_resource_handler.get()); |
2250 } | 2262 } |
2251 | 2263 |
2252 bool ResourceDispatcherHost::IsTransferredNavigation( | 2264 bool ResourceDispatcherHost::IsTransferredNavigation( |
2253 const content::GlobalRequestID& transferred_request_id) const { | 2265 const content::GlobalRequestID& transferred_request_id) const { |
2254 return transferred_navigations_.find(transferred_request_id) != | 2266 return transferred_navigations_.find(transferred_request_id) != |
2255 transferred_navigations_.end(); | 2267 transferred_navigations_.end(); |
2256 } | 2268 } |
OLD | NEW |