Commit 666a236a authored by Jerry Lin's avatar Jerry Lin Committed by Commit Bot

Replace usage of ResourceType with RequestDestination

Add new service worker util function 'IsMainRequestDestination' to
check request type and replace usage of IsMainResourceType with it in
ServiceWorkerNavigationLoader::StartRequest.

Use destination of ResourceRequest to check corresponding request type
is kScript instead of using resource_type in
ServiceWorkerSubresourceLoader::StartResponse.

Bug: 1062579
Change-Id: I90e44ad7f1e06dfe65fb03e4cbba83dfbd0bbf8b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2108444Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: default avatarHiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: default avatarYutaka Hirano <yhirano@chromium.org>
Reviewed-by: default avatarTsuyoshi Horo <horo@chromium.org>
Reviewed-by: default avatarAlex Gough <ajgo@chromium.org>
Commit-Queue: Jerry Lin <wahahab11@gmail.com>
Cr-Commit-Position: refs/heads/master@{#769636}
parent 9a42b991
...@@ -119,8 +119,8 @@ void ServiceWorkerNavigationLoader::StartRequest( ...@@ -119,8 +119,8 @@ void ServiceWorkerNavigationLoader::StartRequest(
"ServiceWorkerNavigationLoader::StartRequest", this, "ServiceWorkerNavigationLoader::StartRequest", this,
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
"url", resource_request.url.spec()); "url", resource_request.url.spec());
DCHECK(ServiceWorkerUtils::IsMainResourceType( DCHECK(ServiceWorkerUtils::IsMainRequestDestination(
static_cast<blink::mojom::ResourceType>(resource_request.resource_type))); resource_request.destination));
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId()); DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
resource_request_ = resource_request; resource_request_ = resource_request;
......
...@@ -491,6 +491,7 @@ class ServiceWorkerNavigationLoaderTest : public testing::Test { ...@@ -491,6 +491,7 @@ class ServiceWorkerNavigationLoaderTest : public testing::Test {
request->mode = network::mojom::RequestMode::kNavigate; request->mode = network::mojom::RequestMode::kNavigate;
request->credentials_mode = network::mojom::CredentialsMode::kInclude; request->credentials_mode = network::mojom::CredentialsMode::kInclude;
request->redirect_mode = network::mojom::RedirectMode::kManual; request->redirect_mode = network::mojom::RedirectMode::kManual;
request->destination = network::mojom::RequestDestination::kDocument;
return request; return request;
} }
......
...@@ -32,8 +32,7 @@ blink::mojom::FetchAPIRequestPtr TypeConverter< ...@@ -32,8 +32,7 @@ blink::mojom::FetchAPIRequestPtr TypeConverter<
input.referrer_policy)); input.referrer_policy));
output->mode = input.mode; output->mode = input.mode;
output->is_main_resource_load = output->is_main_resource_load =
content::ServiceWorkerUtils::IsMainResourceType( content::ServiceWorkerUtils::IsMainRequestDestination(input.destination);
static_cast<blink::mojom::ResourceType>(input.resource_type));
output->credentials_mode = input.credentials_mode; output->credentials_mode = input.credentials_mode;
output->cache_mode = output->cache_mode =
content::ServiceWorkerUtils::GetCacheModeFromLoadFlags(input.load_flags); content::ServiceWorkerUtils::GetCacheModeFromLoadFlags(input.load_flags);
......
...@@ -55,6 +55,17 @@ bool ServiceWorkerUtils::IsMainResourceType(blink::mojom::ResourceType type) { ...@@ -55,6 +55,17 @@ bool ServiceWorkerUtils::IsMainResourceType(blink::mojom::ResourceType type) {
type == blink::mojom::ResourceType::kSharedWorker; type == blink::mojom::ResourceType::kSharedWorker;
} }
// static
bool ServiceWorkerUtils::IsMainRequestDestination(
network::mojom::RequestDestination destination) {
// When PlzDedicatedWorker is enabled, a dedicated worker script is considered
// to be a main resource.
if (destination == network::mojom::RequestDestination::kWorker)
return base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker);
return blink::IsRequestDestinationFrame(destination) ||
destination == network::mojom::RequestDestination::kSharedWorker;
}
// static // static
bool ServiceWorkerUtils::ScopeMatches(const GURL& scope, const GURL& url) { bool ServiceWorkerUtils::ScopeMatches(const GURL& scope, const GURL& url) {
DCHECK(!scope.has_ref()); DCHECK(!scope.has_ref());
......
...@@ -28,6 +28,9 @@ class ServiceWorkerUtils { ...@@ -28,6 +28,9 @@ class ServiceWorkerUtils {
public: public:
static bool IsMainResourceType(blink::mojom::ResourceType type); static bool IsMainResourceType(blink::mojom::ResourceType type);
static bool IsMainRequestDestination(
network::mojom::RequestDestination destination);
// Returns true if |scope| matches |url|. // Returns true if |scope| matches |url|.
CONTENT_EXPORT static bool ScopeMatches(const GURL& scope, const GURL& url); CONTENT_EXPORT static bool ScopeMatches(const GURL& scope, const GURL& url);
......
...@@ -566,10 +566,9 @@ void ServiceWorkerSubresourceLoader::StartResponse( ...@@ -566,10 +566,9 @@ void ServiceWorkerSubresourceLoader::StartResponse(
// Read side data if necessary. We only do this if both the // Read side data if necessary. We only do this if both the
// |side_data_blob| is available to read and the request is destined // |side_data_blob| is available to read and the request is destined
// for a script. // for a script.
auto resource_type = auto request_destination = resource_request_.destination;
static_cast<blink::mojom::ResourceType>(resource_request_.resource_type);
if (response->side_data_blob && if (response->side_data_blob &&
resource_type == blink::mojom::ResourceType::kScript) { request_destination == network::mojom::RequestDestination::kScript) {
side_data_as_blob_.Bind(std::move(response->side_data_blob->blob)); side_data_as_blob_.Bind(std::move(response->side_data_blob->blob));
side_data_as_blob_->ReadSideData(base::BindOnce( side_data_as_blob_->ReadSideData(base::BindOnce(
&ServiceWorkerSubresourceLoader::OnSideDataReadingComplete, &ServiceWorkerSubresourceLoader::OnSideDataReadingComplete,
......
...@@ -552,8 +552,7 @@ class ServiceWorkerSubresourceLoaderTest : public ::testing::Test { ...@@ -552,8 +552,7 @@ class ServiceWorkerSubresourceLoaderTest : public ::testing::Test {
network::ResourceRequest request; network::ResourceRequest request;
request.url = url; request.url = url;
request.method = "GET"; request.method = "GET";
request.resource_type = request.destination = network::mojom::RequestDestination::kEmpty;
static_cast<int>(blink::mojom::ResourceType::kSubResource);
return request; return request;
} }
...@@ -601,8 +600,7 @@ class ServiceWorkerSubresourceLoaderTest : public ::testing::Test { ...@@ -601,8 +600,7 @@ class ServiceWorkerSubresourceLoaderTest : public ::testing::Test {
CreateSubresourceLoaderFactory(); CreateSubresourceLoaderFactory();
network::ResourceRequest request = network::ResourceRequest request =
CreateRequest(GURL("https://www.example.com/big-file")); CreateRequest(GURL("https://www.example.com/big-file"));
request.resource_type = request.destination = network::mojom::RequestDestination::kVideo;
static_cast<int>(blink::mojom::ResourceType::kMedia);
request.headers.SetHeader("Range", range_header); request.headers.SetHeader("Range", range_header);
mojo::Remote<network::mojom::URLLoader> loader; mojo::Remote<network::mojom::URLLoader> loader;
std::unique_ptr<network::TestURLLoaderClient> client; std::unique_ptr<network::TestURLLoaderClient> client;
...@@ -1026,7 +1024,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponse) { ...@@ -1026,7 +1024,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponse) {
// Perform the request. // Perform the request.
network::ResourceRequest request = network::ResourceRequest request =
CreateRequest(GURL("https://www.example.com/foo.js")); CreateRequest(GURL("https://www.example.com/foo.js"));
request.resource_type = static_cast<int>(blink::mojom::ResourceType::kScript); request.destination = network::mojom::RequestDestination::kScript;
mojo::Remote<network::mojom::URLLoader> loader; mojo::Remote<network::mojom::URLLoader> loader;
std::unique_ptr<network::TestURLLoaderClient> client; std::unique_ptr<network::TestURLLoaderClient> client;
StartRequest(factory, request, &loader, &client); StartRequest(factory, request, &loader, &client);
...@@ -1083,7 +1081,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponseWithoutMetadata) { ...@@ -1083,7 +1081,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponseWithoutMetadata) {
// Perform the request. // Perform the request.
network::ResourceRequest request = network::ResourceRequest request =
CreateRequest(GURL("https://www.example.com/foo.js")); CreateRequest(GURL("https://www.example.com/foo.js"));
request.resource_type = static_cast<int>(blink::mojom::ResourceType::kScript); request.destination = network::mojom::RequestDestination::kScript;
mojo::Remote<network::mojom::URLLoader> loader; mojo::Remote<network::mojom::URLLoader> loader;
std::unique_ptr<network::TestURLLoaderClient> client; std::unique_ptr<network::TestURLLoaderClient> client;
StartRequest(factory, request, &loader, &client); StartRequest(factory, request, &loader, &client);
...@@ -1130,8 +1128,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponseNonScript) { ...@@ -1130,8 +1128,7 @@ TEST_F(ServiceWorkerSubresourceLoaderTest, BlobResponseNonScript) {
// Perform the request. // Perform the request.
network::ResourceRequest request = network::ResourceRequest request =
CreateRequest(GURL("https://www.example.com/foo.txt")); CreateRequest(GURL("https://www.example.com/foo.txt"));
request.resource_type = request.destination = network::mojom::RequestDestination::kEmpty;
static_cast<int>(blink::mojom::ResourceType::kSubResource);
mojo::Remote<network::mojom::URLLoader> loader; mojo::Remote<network::mojom::URLLoader> loader;
std::unique_ptr<network::TestURLLoaderClient> client; std::unique_ptr<network::TestURLLoaderClient> client;
StartRequest(factory, request, &loader, &client); StartRequest(factory, request, &loader, &client);
......
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