| Index: content/browser/loader/cross_site_resource_handler.cc
|
| diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc
|
| index 6bac75adde6b8246e7748a8876d22973ab1c9988..657791f62f5e6ba9f0ec4733db6dd8618ce08ef0 100644
|
| --- a/content/browser/loader/cross_site_resource_handler.cc
|
| +++ b/content/browser/loader/cross_site_resource_handler.cc
|
| @@ -49,8 +49,7 @@ void OnCrossSiteResponseHelper(int render_process_id,
|
| CrossSiteResourceHandler::CrossSiteResourceHandler(
|
| scoped_ptr<ResourceHandler> next_handler,
|
| net::URLRequest* request)
|
| - : LayeredResourceHandler(next_handler.Pass()),
|
| - request_(request),
|
| + : LayeredResourceHandler(request, next_handler.Pass()),
|
| has_started_response_(false),
|
| in_cross_site_transition_(false),
|
| completed_during_transition_(false),
|
| @@ -61,7 +60,7 @@ CrossSiteResourceHandler::CrossSiteResourceHandler(
|
|
|
| CrossSiteResourceHandler::~CrossSiteResourceHandler() {
|
| // Cleanup back-pointer stored on the request info.
|
| - ResourceRequestInfoImpl::ForRequest(request_)->set_cross_site_handler(NULL);
|
| + GetRequestInfo()->set_cross_site_handler(NULL);
|
| }
|
|
|
| bool CrossSiteResourceHandler::OnRequestRedirected(
|
| @@ -86,7 +85,7 @@ bool CrossSiteResourceHandler::OnResponseStarted(
|
| DCHECK(!in_cross_site_transition_);
|
| has_started_response_ = true;
|
|
|
| - ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest(request_);
|
| + ResourceRequestInfoImpl* info = GetRequestInfo();
|
|
|
| // We will need to swap processes if either (1) a redirect that requires a
|
| // transfer occurred before we got here, or (2) a pending cross-site request
|
| @@ -94,7 +93,7 @@ bool CrossSiteResourceHandler::OnResponseStarted(
|
| // transferred back into the original process due to a redirect.
|
| bool should_transfer =
|
| GetContentClient()->browser()->ShouldSwapProcessesForRedirect(
|
| - info->GetContext(), request_->original_url(), request_->url());
|
| + info->GetContext(), request()->original_url(), request()->url());
|
| bool swap_needed = should_transfer ||
|
| CrossSiteRequestManager::GetInstance()->
|
| HasPendingCrossSiteRequest(info->GetChildID(), info->GetRouteID());
|
| @@ -139,8 +138,7 @@ bool CrossSiteResourceHandler::OnResponseCompleted(
|
| const net::URLRequestStatus& status,
|
| const std::string& security_info) {
|
| if (!in_cross_site_transition_) {
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| + ResourceRequestInfoImpl* info = GetRequestInfo();
|
| // If we've already completed the transition, or we're canceling the
|
| // request, or an error occurred with no cross-process navigation in
|
| // progress, then we should just pass this through.
|
| @@ -173,11 +171,10 @@ bool CrossSiteResourceHandler::OnResponseCompleted(
|
| // We can now send the response to the new renderer, which will cause
|
| // WebContentsImpl to swap in the new renderer and destroy the old one.
|
| void CrossSiteResourceHandler::ResumeResponse() {
|
| - DCHECK(request_);
|
| + DCHECK(request());
|
| DCHECK(in_cross_site_transition_);
|
| in_cross_site_transition_ = false;
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| + ResourceRequestInfoImpl* info = GetRequestInfo();
|
|
|
| if (has_started_response_) {
|
| // Send OnResponseStarted to the new renderer.
|
| @@ -218,8 +215,7 @@ void CrossSiteResourceHandler::StartCrossSiteTransition(
|
|
|
| // Store this handler on the ExtraRequestInfo, so that RDH can call our
|
| // ResumeResponse method when we are ready to resume.
|
| - ResourceRequestInfoImpl* info =
|
| - ResourceRequestInfoImpl::ForRequest(request_);
|
| + ResourceRequestInfoImpl* info = GetRequestInfo();
|
| info->set_cross_site_handler(this);
|
|
|
| DCHECK_EQ(request_id, info->GetRequestID());
|
| @@ -233,8 +229,8 @@ void CrossSiteResourceHandler::StartCrossSiteTransition(
|
| Referrer referrer;
|
| int frame_id = -1;
|
| if (should_transfer) {
|
| - transfer_url = request_->url();
|
| - referrer = Referrer(GURL(request_->referrer()), info->GetReferrerPolicy());
|
| + transfer_url = request()->url();
|
| + referrer = Referrer(GURL(request()->referrer()), info->GetReferrerPolicy());
|
| frame_id = info->GetFrameID();
|
|
|
| ResourceDispatcherHostImpl::Get()->MarkAsTransferredNavigation(
|
|
|