diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc | 72 |
1 files changed, 44 insertions, 28 deletions
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc index bb529c83964..980d15a3fd0 100644 --- a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc +++ b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc @@ -37,6 +37,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" #include "third_party/blink/public/mojom/loader/request_context_frame_type.mojom-blink.h" +#include "third_party/blink/public/mojom/security_context/insecure_request_policy.mojom-blink.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/web_url_loader.h" #include "third_party/blink/public/platform/web_url_loader_mock_factory.h" @@ -103,10 +104,26 @@ const FetchClientSettingsObjectSnapshot& CreateFetchClientSettingsObject( SecurityOrigin::Create(KURL("https://example.com/")), network::mojom::ReferrerPolicy::kDefault, "https://example.com/foo.html", HttpsState::kModern, AllowedByNosniff::MimeTypeCheck::kStrict, - address_space, kLeaveInsecureRequestsAlone, + address_space, + mojom::blink::InsecureRequestPolicy::kLeaveInsecureRequestsAlone, FetchClientSettingsObject::InsecureNavigationsSet()); } +class PartialResourceRequest { + public: + PartialResourceRequest() : PartialResourceRequest(ResourceRequest()) {} + PartialResourceRequest(const ResourceRequest& request) + : is_ad_resource_(request.IsAdResource()), + priority_(request.Priority()) {} + + bool IsAdResource() const { return is_ad_resource_; } + ResourceLoadPriority Priority() const { return priority_; } + + private: + bool is_ad_resource_; + ResourceLoadPriority priority_; +}; + } // namespace class ResourceFetcherTest : public testing::Test { @@ -123,7 +140,7 @@ class ResourceFetcherTest : public testing::Test { const ResourceResponse& redirect_response, ResourceType, const FetchInitiatorInfo&) override { - request_ = request; + request_ = PartialResourceRequest(request); } void DidChangePriority(uint64_t identifier, ResourceLoadPriority, @@ -149,12 +166,12 @@ class ResourceFetcherTest : public testing::Test { int64_t encoded_data_length, IsInternalRequest is_internal_request) override {} - const base::Optional<ResourceRequest>& GetLastRequest() const { + const base::Optional<PartialResourceRequest>& GetLastRequest() const { return request_; } private: - base::Optional<ResourceRequest> request_; + base::Optional<PartialResourceRequest> request_; }; protected: @@ -194,7 +211,7 @@ TEST_F(ResourceFetcherTest, StartLoadAfterFrameDetach) { fetcher->ClearContext(); ResourceRequest resource_request(secure_url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); Resource* resource = RawResource::Fetch(fetch_params, fetcher, nullptr); ASSERT_TRUE(resource); EXPECT_TRUE(resource->ErrorOccurred()); @@ -256,12 +273,13 @@ TEST_F(ResourceFetcherTest, WillSendRequestAdBit) { ResourceRequest resource_request(url); resource_request.SetIsAdResource(); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); platform_->GetURLLoaderMockFactory()->RegisterURL(url, WebURLResponse(), ""); Resource* new_resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_EQ(resource, new_resource); - base::Optional<ResourceRequest> new_request = observer->GetLastRequest(); + base::Optional<PartialResourceRequest> new_request = + observer->GetLastRequest(); EXPECT_TRUE(new_request.has_value()); EXPECT_TRUE(new_request.value().IsAdResource()); } @@ -286,7 +304,7 @@ TEST_F(ResourceFetcherTest, Vary) { *MakeGarbageCollected<TestResourceFetcherProperties>(source_origin)); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); platform_->GetURLLoaderMockFactory()->RegisterURL(url, WebURLResponse(), ""); Resource* new_resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_NE(resource, new_resource); @@ -296,7 +314,8 @@ TEST_F(ResourceFetcherTest, Vary) { TEST_F(ResourceFetcherTest, ResourceTimingInfo) { auto info = ResourceTimingInfo::Create( fetch_initiator_type_names::kDocument, base::TimeTicks::Now(), - mojom::RequestContextType::UNSPECIFIED); + mojom::RequestContextType::UNSPECIFIED, + network::mojom::RequestDestination::kEmpty); info->AddFinalTransferSize(5); EXPECT_EQ(info->TransferSize(), static_cast<uint64_t>(5)); ResourceResponse redirect_response(KURL("https://example.com/original")); @@ -328,7 +347,7 @@ TEST_F(ResourceFetcherTest, VaryOnBack) { ResourceRequest resource_request(url); resource_request.SetCacheMode(mojom::FetchCacheMode::kForceCache); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); Resource* new_resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_EQ(resource, new_resource); } @@ -383,7 +402,7 @@ class RequestSameResourceOnComplete MakeGarbageCollected<TestLoaderFactory>())); ResourceRequest resource_request2(GetResource()->Url()); resource_request2.SetCacheMode(mojom::FetchCacheMode::kValidateCache); - FetchParameters fetch_params2(resource_request2); + FetchParameters fetch_params2(std::move(resource_request2)); Resource* resource2 = MockResource::Fetch(fetch_params2, fetcher2, nullptr); EXPECT_EQ(GetResource(), resource2); notify_finished_called_ = true; @@ -391,9 +410,7 @@ class RequestSameResourceOnComplete } bool NotifyFinishedCalled() const { return notify_finished_called_; } - void Trace(blink::Visitor* visitor) override { - RawResourceClient::Trace(visitor); - } + void Trace(Visitor* visitor) override { RawResourceClient::Trace(visitor); } String DebugName() const override { return "RequestSameResourceOnComplete"; } @@ -419,7 +436,7 @@ TEST_F(ResourceFetcherTest, RevalidateWhileFinishingLoading) { *MakeGarbageCollected<TestResourceFetcherProperties>(source_origin)); ResourceRequest request1(url); request1.SetHttpHeaderField(http_names::kCacheControl, "no-cache"); - FetchParameters fetch_params1(request1); + FetchParameters fetch_params1(std::move(request1)); Persistent<RequestSameResourceOnComplete> client = MakeGarbageCollected<RequestSameResourceOnComplete>(fetch_params1, fetcher1); @@ -440,7 +457,7 @@ TEST_F(ResourceFetcherTest, MAYBE_DontReuseMediaDataUrl) { ResourceLoaderOptions options; options.data_buffering_policy = kDoNotBufferData; options.initiator_info.name = fetch_initiator_type_names::kInternal; - FetchParameters fetch_params(request, options); + FetchParameters fetch_params(std::move(request), options); Resource* resource1 = RawResource::FetchMedia(fetch_params, fetcher, nullptr); Resource* resource2 = RawResource::FetchMedia(fetch_params, fetcher, nullptr); EXPECT_NE(resource1, resource2); @@ -477,9 +494,7 @@ class ServeRequestsOnCompleteClient final } void DataDownloaded(Resource*, uint64_t) override { ASSERT_TRUE(false); } - void Trace(blink::Visitor* visitor) override { - RawResourceClient::Trace(visitor); - } + void Trace(Visitor* visitor) override { RawResourceClient::Trace(visitor); } String DebugName() const override { return "ServeRequestsOnCompleteClient"; } }; @@ -496,7 +511,7 @@ TEST_F(ResourceFetcherTest, ResponseOnCancel) { auto* fetcher = CreateFetcher(); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); Persistent<ServeRequestsOnCompleteClient> client = MakeGarbageCollected<ServeRequestsOnCompleteClient>(); Resource* resource = RawResource::Fetch(fetch_params, fetcher, client); @@ -536,13 +551,13 @@ class ScopedMockRedirectRequester { MakeGarbageCollected<TestLoaderFactory>())); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); RawResource::Fetch(fetch_params, fetcher, nullptr); url_test_helpers::ServeAsynchronousRequests(); } private: - Member<MockFetchContext> context_; + MockFetchContext* context_; const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; DISALLOW_COPY_AND_ASSIGN(ScopedMockRedirectRequester); @@ -596,7 +611,7 @@ TEST_F(ResourceFetcherTest, SynchronousRequest) { auto* fetcher = CreateFetcher(); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); fetch_params.MakeSynchronous(); Resource* resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_TRUE(resource->IsLoaded()); @@ -611,7 +626,7 @@ TEST_F(ResourceFetcherTest, PingPriority) { auto* fetcher = CreateFetcher(); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::PING); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); Resource* resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_EQ(ResourceLoadPriority::kVeryLow, resource->GetResourceRequest().Priority()); @@ -849,7 +864,7 @@ TEST_F(ResourceFetcherTest, Revalidate304) { *MakeGarbageCollected<TestResourceFetcherProperties>(source_origin)); ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); platform_->GetURLLoaderMockFactory()->RegisterURL(url, WebURLResponse(), ""); Resource* new_resource = RawResource::Fetch(fetch_params, fetcher, nullptr); fetcher->StopFetching(); @@ -918,7 +933,7 @@ TEST_F(ResourceFetcherTest, ContentIdURL) { { ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::VIDEO); - FetchParameters fetch_params(resource_request); + FetchParameters fetch_params(std::move(resource_request)); RawResource* resource = RawResource::FetchMedia(fetch_params, fetcher, nullptr); ASSERT_NE(nullptr, resource); @@ -956,7 +971,7 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) { ResourceRequest resource_request(url); resource_request.SetRequestContext(mojom::RequestContextType::INTERNAL); - FetchParameters fetch_params2 = FetchParameters(resource_request); + FetchParameters fetch_params2 = FetchParameters(std::move(resource_request)); Resource* new_resource = MockResource::Fetch(fetch_params2, fetcher, nullptr); EXPECT_EQ(resource, new_resource); platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); @@ -976,7 +991,8 @@ TEST_F(ResourceFetcherTest, StaleWhileRevalidate) { EXPECT_TRUE(GetMemoryCache()->Contains(resource)); static_cast<scheduler::FakeTaskRunner*>(fetcher->GetTaskRunner().get()) ->RunUntilIdle(); - base::Optional<ResourceRequest> swr_request = observer->GetLastRequest(); + base::Optional<PartialResourceRequest> swr_request = + observer->GetLastRequest(); ASSERT_TRUE(swr_request.has_value()); EXPECT_EQ(ResourceLoadPriority::kVeryLow, swr_request->Priority()); platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests(); |