Commit 675916c7 authored by Yoichi Osato's avatar Yoichi Osato Committed by Commit Bot

Implicitly copy only head and form body for main resource loading.

This CL is refactoring.
This CL extracts ResourceRequest::CopyFrom() in main resource loading
path that fetch doesn't use.
This is a preparation for fetch upload streaming.

Bug: 787704
Change-Id: I0b53eca0dac33d1aeffd81ddb39d8c49b9f70824
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2076823Reviewed-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@{#745361}
parent c59272cc
......@@ -45,7 +45,8 @@ FrameLoadRequest::FrameLoadRequest(Document* origin_document,
const ResourceRequest& resource_request)
: origin_document_(origin_document),
should_send_referrer_(kMaybeSendReferrer) {
resource_request_.CopyFrom(resource_request);
resource_request_.CopyHeadFrom(&resource_request);
resource_request_.SetHttpBody(resource_request.HttpBody());
resource_request_.SetMode(network::mojom::RequestMode::kNavigate);
resource_request_.SetCredentialsMode(
network::mojom::CredentialsMode::kInclude);
......
......@@ -117,7 +117,8 @@ void WebURLRequest::CopyFrom(const WebURLRequest& r) {
DCHECK_EQ(owned_resource_request_.get(), resource_request_);
DCHECK(owned_resource_request_->IsNull());
DCHECK(this != &r);
resource_request_->CopyFrom(*r.resource_request_);
resource_request_->CopyHeadFrom(r.resource_request_);
resource_request_->SetHttpBody(r.resource_request_->HttpBody());
}
bool WebURLRequest::IsNull() const {
......
......@@ -113,6 +113,10 @@ void ResourceRequest::CopyFrom(const ResourceRequest& src) {
*this = src;
}
void ResourceRequest::CopyHeadFrom(const ResourceRequestHead* src) {
this->ResourceRequestHead::operator=(*src);
}
std::unique_ptr<ResourceRequest> ResourceRequest::CreateRedirectRequest(
const KURL& new_url,
const AtomicString& new_method,
......
......@@ -557,6 +557,7 @@ class PLATFORM_EXPORT ResourceRequest final : public ResourceRequestHead {
// TODO(yoichio): Use move semantics as much as possible.
// See crbug.com/787704.
void CopyFrom(const ResourceRequest&);
void CopyHeadFrom(const ResourceRequestHead*);
// Constructs a new ResourceRequest for a redirect from this instance.
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