| Index: content/browser/renderer_host/resource_dispatcher_host.cc
|
| diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc
|
| index a210f8de897aaa3ebe2ecf5aab43b8d48fb63a88..f4b6015caa2917d2e718556ce5a69db6c3951264 100644
|
| --- a/content/browser/renderer_host/resource_dispatcher_host.cc
|
| +++ b/content/browser/renderer_host/resource_dispatcher_host.cc
|
| @@ -35,6 +35,7 @@
|
| #include "content/browser/renderer_host/async_resource_handler.h"
|
| #include "content/browser/renderer_host/buffered_resource_handler.h"
|
| #include "content/browser/renderer_host/cross_site_resource_handler.h"
|
| +#include "content/browser/renderer_host/paused_resource_handler.h"
|
| #include "content/browser/renderer_host/redirect_to_file_resource_handler.h"
|
| #include "content/browser/renderer_host/render_view_host.h"
|
| #include "content/browser/renderer_host/render_view_host_delegate.h"
|
| @@ -2245,8 +2246,19 @@ void ResourceDispatcherHost::set_allow_cross_origin_auth_prompt(bool value) {
|
|
|
| void ResourceDispatcherHost::MarkAsTransferredNavigation(
|
| const GlobalRequestID& transferred_request_id,
|
| - net::URLRequest* ransferred_request) {
|
| - transferred_navigations_[transferred_request_id] = ransferred_request;
|
| + net::URLRequest* transferred_request) {
|
| + transferred_navigations_[transferred_request_id] = transferred_request;
|
| +
|
| + // If a URLRequest is transferred to a new RenderViewHost, its
|
| + // ResourceHandlers should not receive any notifications because they may
|
| + // depend on the state of the old RVH. We set a ResourceHandler that allows
|
| + // canceling requests, because on shutdown of the RDH all pending requests are
|
| + // canceled. The RVH of requests that are being transferred may be gone by
|
| + // that time.
|
| + ResourceDispatcherHostRequestInfo* info = InfoForRequest(transferred_request);
|
| + scoped_refptr<ResourceHandler> paused_resource_handler(
|
| + new PausedResourceHandler(info->resource_handler()));
|
| + info->set_resource_handler(paused_resource_handler.get());
|
| }
|
|
|
| bool ResourceDispatcherHost::IsTransferredNavigation(
|
|
|