Commit fdbfed2c authored by Yoichi Osato's avatar Yoichi Osato Committed by Commit Bot

[fetch] Copy only request head when revalidating request.

That's because we won't send body with the request.

This CL also refactors CopyHeadFrom function to take reference than
pointer because all arguments must not be null.

Bug: 787704
Change-Id: I426c0251772cede8d130a24c298f99d005ac345c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2082853Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#746370}
parent 8cc471ec
...@@ -45,7 +45,7 @@ FrameLoadRequest::FrameLoadRequest(Document* origin_document, ...@@ -45,7 +45,7 @@ FrameLoadRequest::FrameLoadRequest(Document* origin_document,
const ResourceRequest& resource_request) const ResourceRequest& resource_request)
: origin_document_(origin_document), : origin_document_(origin_document),
should_send_referrer_(kMaybeSendReferrer) { should_send_referrer_(kMaybeSendReferrer) {
resource_request_.CopyHeadFrom(&resource_request); resource_request_.CopyHeadFrom(resource_request);
resource_request_.SetHttpBody(resource_request.HttpBody()); resource_request_.SetHttpBody(resource_request.HttpBody());
resource_request_.SetMode(network::mojom::RequestMode::kNavigate); resource_request_.SetMode(network::mojom::RequestMode::kNavigate);
resource_request_.SetCredentialsMode( resource_request_.SetCredentialsMode(
......
...@@ -117,7 +117,7 @@ void WebURLRequest::CopyFrom(const WebURLRequest& r) { ...@@ -117,7 +117,7 @@ void WebURLRequest::CopyFrom(const WebURLRequest& r) {
DCHECK_EQ(owned_resource_request_.get(), resource_request_); DCHECK_EQ(owned_resource_request_.get(), resource_request_);
DCHECK(owned_resource_request_->IsNull()); DCHECK(owned_resource_request_->IsNull());
DCHECK(this != &r); DCHECK(this != &r);
resource_request_->CopyHeadFrom(r.resource_request_); resource_request_->CopyHeadFrom(*r.resource_request_);
resource_request_->SetHttpBody(r.resource_request_->HttpBody()); resource_request_->SetHttpBody(r.resource_request_->HttpBody());
} }
......
...@@ -490,7 +490,7 @@ void Resource::SetRevalidatingRequest(const ResourceRequest& request) { ...@@ -490,7 +490,7 @@ void Resource::SetRevalidatingRequest(const ResourceRequest& request) {
DCHECK(!request.IsNull()); DCHECK(!request.IsNull());
CHECK(!is_revalidation_start_forbidden_); CHECK(!is_revalidation_start_forbidden_);
is_revalidating_ = true; is_revalidating_ = true;
resource_request_.CopyFrom(request); resource_request_.CopyHeadFrom(request);
status_ = ResourceStatus::kNotStarted; status_ = ResourceStatus::kNotStarted;
} }
......
...@@ -2090,7 +2090,7 @@ void ResourceFetcher::RevalidateStaleResource(Resource* stale_resource) { ...@@ -2090,7 +2090,7 @@ void ResourceFetcher::RevalidateStaleResource(Resource* stale_resource) {
// TODO(dtapuska): revisit this when we have a better way to re-dispatch // TODO(dtapuska): revisit this when we have a better way to re-dispatch
// requests. // requests.
ResourceRequest request; ResourceRequest request;
request.CopyFrom(stale_resource->GetResourceRequest()); request.CopyHeadFrom(stale_resource->GetResourceRequest());
FetchParameters params(std::move(request)); FetchParameters params(std::move(request));
params.SetStaleRevalidation(true); params.SetStaleRevalidation(true);
params.MutableResourceRequest().SetSkipServiceWorker(true); params.MutableResourceRequest().SetSkipServiceWorker(true);
......
...@@ -113,8 +113,8 @@ void ResourceRequest::CopyFrom(const ResourceRequest& src) { ...@@ -113,8 +113,8 @@ void ResourceRequest::CopyFrom(const ResourceRequest& src) {
*this = src; *this = src;
} }
void ResourceRequest::CopyHeadFrom(const ResourceRequestHead* src) { void ResourceRequest::CopyHeadFrom(const ResourceRequestHead& src) {
this->ResourceRequestHead::operator=(*src); this->ResourceRequestHead::operator=(src);
} }
std::unique_ptr<ResourceRequest> ResourceRequest::CreateRedirectRequest( std::unique_ptr<ResourceRequest> ResourceRequest::CreateRedirectRequest(
......
...@@ -557,7 +557,7 @@ class PLATFORM_EXPORT ResourceRequest final : public ResourceRequestHead { ...@@ -557,7 +557,7 @@ class PLATFORM_EXPORT ResourceRequest final : public ResourceRequestHead {
// TODO(yoichio): Use move semantics as much as possible. // TODO(yoichio): Use move semantics as much as possible.
// See crbug.com/787704. // See crbug.com/787704.
void CopyFrom(const ResourceRequest&); void CopyFrom(const ResourceRequest&);
void CopyHeadFrom(const ResourceRequestHead*); void CopyHeadFrom(const ResourceRequestHead&);
// Constructs a new ResourceRequest for a redirect from this instance. // Constructs a new ResourceRequest for a redirect from this instance.
std::unique_ptr<ResourceRequest> CreateRedirectRequest( std::unique_ptr<ResourceRequest> CreateRedirectRequest(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment