summaryrefslogtreecommitdiffstats
path: root/content/browser/loader/cross_site_resource_handler.cc
diff options
context:
space:
mode:
authorcreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-07 19:45:52 +0000
committercreis@chromium.org <creis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-07 19:45:52 +0000
commit66ab87e8ebc518ab54238f9899f813311844997b (patch)
treeb26bbd221e2668c33d84ab9ca92cc45a01828080 /content/browser/loader/cross_site_resource_handler.cc
parentc745d405c8ac5a39c4ede5ccafe3445878b3767b (diff)
downloadchromium_src-66ab87e8ebc518ab54238f9899f813311844997b.zip
chromium_src-66ab87e8ebc518ab54238f9899f813311844997b.tar.gz
chromium_src-66ab87e8ebc518ab54238f9899f813311844997b.tar.bz2
Clean up ResourceHandler API.
1. Move URLRequest member to ResourceHandler base class and add convenience functions for subclasses. 2. Make OnWillRead take a scoped_refptr to avoid leaking the buffer. BUG=295239 TEST=No behavior change. Review URL: https://codereview.chromium.org/25536005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227318 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/loader/cross_site_resource_handler.cc')
-rw-r--r--content/browser/loader/cross_site_resource_handler.cc24
1 files changed, 10 insertions, 14 deletions
diff --git a/content/browser/loader/cross_site_resource_handler.cc b/content/browser/loader/cross_site_resource_handler.cc
index 6bac75a..657791f 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(