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( ...@@ -42,8 +42,9 @@ ClassicPendingScript* ClassicPendingScript::Fetch(
const WTF::TextEncoding& encoding, const WTF::TextEncoding& encoding,
ScriptElementBase* element, ScriptElementBase* element,
FetchParameters::DeferOption defer) { FetchParameters::DeferOption defer) {
FetchParameters params = options.CreateFetchParameters( FetchParameters params(
url, element_document.GetSecurityOrigin(), cross_origin, encoding, defer); options.CreateFetchParameters(url, element_document.GetSecurityOrigin(),
cross_origin, encoding, defer));
ClassicPendingScript* pending_script = ClassicPendingScript* pending_script =
MakeGarbageCollected<ClassicPendingScript>( MakeGarbageCollected<ClassicPendingScript>(
......
...@@ -217,9 +217,9 @@ void PossiblyFetchBlockedDocWriteScript( ...@@ -217,9 +217,9 @@ void PossiblyFetchBlockedDocWriteScript(
EmitErrorBlocked(resource->Url(), element_document); EmitErrorBlocked(resource->Url(), element_document);
FetchParameters params = options.CreateFetchParameters( FetchParameters params(options.CreateFetchParameters(
resource->Url(), element_document.GetSecurityOrigin(), cross_origin, resource->Url(), element_document.GetSecurityOrigin(), cross_origin,
resource->Encoding(), FetchParameters::kIdleLoad); resource->Encoding(), FetchParameters::kIdleLoad));
AddHeader(&params); AddHeader(&params);
ScriptResource::Fetch(params, element_document.Fetcher(), nullptr, ScriptResource::Fetch(params, element_document.Fetcher(), nullptr,
ScriptResource::kNoStreaming); ScriptResource::kNoStreaming);
......
...@@ -49,6 +49,8 @@ FetchParameters::FetchParameters(const ResourceRequest& resource_request, ...@@ -49,6 +49,8 @@ FetchParameters::FetchParameters(const ResourceRequest& resource_request,
defer_(kNoDefer), defer_(kNoDefer),
image_request_optimization_(kNone) {} image_request_optimization_(kNone) {}
FetchParameters::FetchParameters(FetchParameters&&) = default;
FetchParameters::~FetchParameters() = default; FetchParameters::~FetchParameters() = default;
void FetchParameters::SetCrossOriginAccessControl( void FetchParameters::SetCrossOriginAccessControl(
......
...@@ -73,6 +73,9 @@ class PLATFORM_EXPORT FetchParameters { ...@@ -73,6 +73,9 @@ class PLATFORM_EXPORT FetchParameters {
explicit FetchParameters(const ResourceRequest&); explicit FetchParameters(const ResourceRequest&);
FetchParameters(const ResourceRequest&, const ResourceLoaderOptions&); FetchParameters(const ResourceRequest&, const ResourceLoaderOptions&);
FetchParameters(const FetchParameters&) = delete;
FetchParameters& operator=(const FetchParameters&) = delete;
FetchParameters(FetchParameters&&);
~FetchParameters(); ~FetchParameters();
ResourceRequest& MutableResourceRequest() { return resource_request_; } ResourceRequest& MutableResourceRequest() { return resource_request_; }
......
...@@ -956,8 +956,8 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) { ...@@ -956,8 +956,8 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) {
ResourceRequest resource_request(url); ResourceRequest resource_request(url);
resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL);
fetch_params = FetchParameters(resource_request); FetchParameters fetch_params2 = FetchParameters(resource_request);
Resource* new_resource = MockResource::Fetch(fetch_params, fetcher, nullptr); Resource* new_resource = MockResource::Fetch(fetch_params2, fetcher, nullptr);
EXPECT_EQ(resource, new_resource); EXPECT_EQ(resource, new_resource);
platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
EXPECT_TRUE(resource->IsLoaded()); EXPECT_TRUE(resource->IsLoaded());
...@@ -971,7 +971,7 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) { ...@@ -971,7 +971,7 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) {
RegisterMockedURLLoadWithCustomResponse( RegisterMockedURLLoadWithCustomResponse(
url, test::PlatformTestDataPath(kTestResourceFilename), url, test::PlatformTestDataPath(kTestResourceFilename),
WrappedResourceResponse(revalidate_response)); 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_EQ(resource, new_resource);
EXPECT_TRUE(GetMemoryCache()->Contains(resource)); EXPECT_TRUE(GetMemoryCache()->Contains(resource));
static_cast<scheduler::FakeTaskRunner*>(fetcher->GetTaskRunner().get()) 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