Commit 82f1503a authored by Yoichi Osato's avatar Yoichi Osato Committed by Commit Bot

Prohibit blink::FetchParameters copy

This CL deletes the default copy constructor and introduce
a move constructor instead.
That's because we are planning to add a non-copiable member for
streaming body to ResourceRequest
 ("fetch() upload streaming" design doc/ http://bit.ly/2RlBw6x),
which is a instance member of FetchParameters.

Bug: 787704
Change-Id: I25949176e44b71d2a59d4081455340b65344a7c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1947616Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#721857}
parent c1b8c724
......@@ -42,8 +42,9 @@ ClassicPendingScript* ClassicPendingScript::Fetch(
const WTF::TextEncoding& encoding,
ScriptElementBase* element,
FetchParameters::DeferOption defer) {
FetchParameters params = options.CreateFetchParameters(
url, element_document.GetSecurityOrigin(), cross_origin, encoding, defer);
FetchParameters params(
options.CreateFetchParameters(url, element_document.GetSecurityOrigin(),
cross_origin, encoding, defer));
ClassicPendingScript* pending_script =
MakeGarbageCollected<ClassicPendingScript>(
......
......@@ -217,9 +217,9 @@ void PossiblyFetchBlockedDocWriteScript(
EmitErrorBlocked(resource->Url(), element_document);
FetchParameters params = options.CreateFetchParameters(
FetchParameters params(options.CreateFetchParameters(
resource->Url(), element_document.GetSecurityOrigin(), cross_origin,
resource->Encoding(), FetchParameters::kIdleLoad);
resource->Encoding(), FetchParameters::kIdleLoad));
AddHeader(&params);
ScriptResource::Fetch(params, element_document.Fetcher(), nullptr,
ScriptResource::kNoStreaming);
......
......@@ -49,6 +49,8 @@ FetchParameters::FetchParameters(const ResourceRequest& resource_request,
defer_(kNoDefer),
image_request_optimization_(kNone) {}
FetchParameters::FetchParameters(FetchParameters&&) = default;
FetchParameters::~FetchParameters() = default;
void FetchParameters::SetCrossOriginAccessControl(
......
......@@ -73,6 +73,9 @@ class PLATFORM_EXPORT FetchParameters {
explicit FetchParameters(const ResourceRequest&);
FetchParameters(const ResourceRequest&, const ResourceLoaderOptions&);
FetchParameters(const FetchParameters&) = delete;
FetchParameters& operator=(const FetchParameters&) = delete;
FetchParameters(FetchParameters&&);
~FetchParameters();
ResourceRequest& MutableResourceRequest() { return resource_request_; }
......
......@@ -956,8 +956,8 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) {
ResourceRequest resource_request(url);
resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL);
fetch_params = FetchParameters(resource_request);
Resource* new_resource = MockResource::Fetch(fetch_params, fetcher, nullptr);
FetchParameters fetch_params2 = FetchParameters(resource_request);
Resource* new_resource = MockResource::Fetch(fetch_params2, fetcher, nullptr);
EXPECT_EQ(resource, new_resource);
platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
EXPECT_TRUE(resource->IsLoaded());
......@@ -971,7 +971,7 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) {
RegisterMockedURLLoadWithCustomResponse(
url, test::PlatformTestDataPath(kTestResourceFilename),
WrappedResourceResponse(revalidate_response));
new_resource = MockResource::Fetch(fetch_params, fetcher, nullptr);
new_resource = MockResource::Fetch(fetch_params2, fetcher, nullptr);
EXPECT_EQ(resource, new_resource);
EXPECT_TRUE(GetMemoryCache()->Contains(resource));
static_cast<scheduler::FakeTaskRunner*>(fetcher->GetTaskRunner().get())
......
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