Commit c8f8f564 authored by Daniel Clark's avatar Daniel Clark Committed by Chromium LUCI CQ

Move ModuleType enum out of ModuleScriptCreationParams and make names less redundant

Pull the ModuleType enum out of the ModuleScriptCreationParams class
so that the full class definition of ModuleScriptCreationParams doesn't
need to be included in modulator.h once Modulator methods start taking
ModuleType parameters as part of the Import Assertions work.

Also make the names of the enum values a bit less redundant.

Bug: 1132413
Change-Id: I714b0c2dfe5f6467b2e447e6e732c02509a62902
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2605002Reviewed-by: default avatarHiroshige Hayashizaki <hiroshige@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#839488}
parent 36ed9214
......@@ -42,7 +42,7 @@ void DocumentModuleScriptFetcher::NotifyFinished(Resource* resource) {
auto* script_resource = To<ScriptResource>(resource);
ModuleScriptCreationParams::ModuleType module_type;
ModuleType module_type;
{
HeapVector<Member<ConsoleMessage>> error_messages;
if (!WasModuleLoadSuccessful(script_resource, &error_messages,
......
......@@ -79,17 +79,17 @@ void InstalledServiceWorkerModuleScriptFetcher::Fetch(
mojom::blink::kAppCacheNoCacheId);
}
ModuleScriptCreationParams::ModuleType module_type;
ModuleType module_type;
// TODO(sasebree) De-duplicate similar logic that lives in
// ModuleScriptFetcher::WasModuleLoadSuccessful
if (MIMETypeRegistry::IsSupportedJavaScriptMIMEType(
script_data->GetHttpContentType())) {
module_type = ModuleScriptCreationParams::ModuleType::kJavaScriptModule;
module_type = ModuleType::kJavaScript;
} else if (base::FeatureList::IsEnabled(blink::features::kJSONModules) &&
MIMETypeRegistry::IsJSONMimeType(
script_data->GetHttpContentType())) {
module_type = ModuleScriptCreationParams::ModuleType::kJSONModule;
module_type = ModuleType::kJSON;
} else {
// This should never happen.
// If we reach here, we know we received an incompatible mime type from the
......
......@@ -19,18 +19,18 @@
namespace blink {
enum class ModuleType { kJavaScript, kJSON, kCSS };
// ModuleScriptCreationParams contains parameters for creating ModuleScript.
class ModuleScriptCreationParams {
DISALLOW_NEW();
enum class ModuleType { kJavaScriptModule, kJSONModule, kCSSModule };
public:
ModuleScriptCreationParams(
const KURL& source_url,
const KURL& base_url,
ScriptSourceLocationType source_location_type,
const ModuleScriptCreationParams::ModuleType module_type,
const ModuleType module_type,
const ParkableString& source_text,
SingleCachedMetadataHandler* cache_handler,
network::mojom::CredentialsMode credentials_mode,
......@@ -70,9 +70,7 @@ class ModuleScriptCreationParams {
GetModuleType(), isolated_source_text, GetFetchCredentialsMode());
}
ModuleScriptCreationParams::ModuleType GetModuleType() const {
return module_type_;
}
ModuleType GetModuleType() const { return module_type_; }
const KURL& SourceURL() const { return source_url_; }
const KURL& BaseURL() const { return base_url_; }
......@@ -116,13 +114,12 @@ class ModuleScriptCreationParams {
private:
// Creates an isolated copy.
ModuleScriptCreationParams(
const KURL& source_url,
const KURL& base_url,
ScriptSourceLocationType source_location_type,
const ModuleScriptCreationParams::ModuleType& module_type,
const String& isolated_source_text,
network::mojom::CredentialsMode credentials_mode)
ModuleScriptCreationParams(const KURL& source_url,
const KURL& base_url,
ScriptSourceLocationType source_location_type,
const ModuleType& module_type,
const String& isolated_source_text,
network::mojom::CredentialsMode credentials_mode)
: source_url_(source_url),
base_url_(base_url),
source_location_type_(source_location_type),
......
......@@ -37,7 +37,7 @@ void ModuleScriptFetcher::Trace(Visitor* visitor) const {
bool ModuleScriptFetcher::WasModuleLoadSuccessful(
ScriptResource* resource,
HeapVector<Member<ConsoleMessage>>* error_messages,
ModuleScriptCreationParams::ModuleType* module_type) {
ModuleType* module_type) {
DCHECK(error_messages);
DCHECK_EQ(resource->GetScriptType(), mojom::blink::ScriptType::kModule);
......@@ -71,20 +71,20 @@ bool ModuleScriptFetcher::WasModuleLoadSuccessful(
// <spec step="12">If type is a JavaScript MIME type, then:</spec>
if (MIMETypeRegistry::IsSupportedJavaScriptMIMEType(
response.HttpContentType())) {
*module_type = ModuleScriptCreationParams::ModuleType::kJavaScriptModule;
*module_type = ModuleType::kJavaScript;
return true;
}
// <spec step="13">If type is a JSON MIME type, then:</spec>
if (base::FeatureList::IsEnabled(blink::features::kJSONModules) &&
MIMETypeRegistry::IsJSONMimeType(response.HttpContentType())) {
*module_type = ModuleScriptCreationParams::ModuleType::kJSONModule;
*module_type = ModuleType::kJSON;
return true;
}
if (RuntimeEnabledFeatures::CSSModulesEnabled() &&
MIMETypeRegistry::IsSupportedStyleSheetMIMEType(
response.HttpContentType())) {
*module_type = ModuleScriptCreationParams::ModuleType::kCSSModule;
*module_type = ModuleType::kCSS;
return true;
}
String required_response_type = "JavaScript";
......
......@@ -56,7 +56,7 @@ class CORE_EXPORT ModuleScriptFetcher : public ResourceClient {
static bool WasModuleLoadSuccessful(
ScriptResource* resource,
HeapVector<Member<ConsoleMessage>>* error_messages,
ModuleScriptCreationParams::ModuleType* module_type);
ModuleType* module_type);
};
} // namespace blink
......
......@@ -259,17 +259,17 @@ void ModuleScriptLoader::NotifyFetchFinishedSuccess(
// module script given source text, module map settings object, response's
// url, and options.</spec>
switch (params.GetModuleType()) {
case ModuleScriptCreationParams::ModuleType::kJSONModule:
case ModuleType::kJSON:
DCHECK(base::FeatureList::IsEnabled(blink::features::kJSONModules));
module_script_ = ValueWrapperSyntheticModuleScript::
CreateJSONWrapperSyntheticModuleScript(params, modulator_);
break;
case ModuleScriptCreationParams::ModuleType::kCSSModule:
case ModuleType::kCSS:
DCHECK(RuntimeEnabledFeatures::CSSModulesEnabled());
module_script_ = ValueWrapperSyntheticModuleScript::
CreateCSSWrapperSyntheticModuleScript(params, modulator_);
break;
case ModuleScriptCreationParams::ModuleType::kJavaScriptModule: {
case ModuleType::kJavaScript: {
// Step 9. "Let source text be the result of UTF-8 decoding response's
// body." [spec text]
// Step 10. "Let module script be the result of creating
......
......@@ -91,7 +91,7 @@ void WorkerModuleScriptFetcher::NotifyFinished(Resource* resource) {
ClearResource();
auto* script_resource = To<ScriptResource>(resource);
ModuleScriptCreationParams::ModuleType module_type;
ModuleType module_type;
{
HeapVector<Member<ConsoleMessage>> error_messages;
if (!WasModuleLoadSuccessful(script_resource, &error_messages,
......@@ -109,7 +109,7 @@ void WorkerModuleScriptFetcher::NotifyFinished(Resource* resource) {
void WorkerModuleScriptFetcher::NotifyClient(
const KURL& request_url,
ModuleScriptCreationParams::ModuleType module_type,
ModuleType module_type,
const network::mojom::CredentialsMode credentials_mode,
const ParkableString& source_text,
const ResourceResponse& response,
......@@ -229,7 +229,7 @@ void WorkerModuleScriptFetcher::OnFinishedLoadingWorkerMainScript() {
if (decoder_)
source_text_.Append(decoder_->Flush());
NotifyClient(worker_main_script_loader_->GetRequestURL(),
ModuleScriptCreationParams::ModuleType::kJavaScriptModule,
ModuleType::kJavaScript,
network::mojom::CredentialsMode::kSameOrigin,
ParkableString(source_text_.ToString().ReleaseImpl()), response,
worker_main_script_loader_->CreateCachedMetadataHandler());
......
......@@ -48,7 +48,7 @@ class CORE_EXPORT WorkerModuleScriptFetcher final
String DebugName() const override { return "WorkerModuleScriptFetcher"; }
void NotifyClient(const KURL& request_url,
ModuleScriptCreationParams::ModuleType module_type,
ModuleType module_type,
const network::mojom::CredentialsMode credentials_mode,
const ParkableString& source_text,
const ResourceResponse& response,
......
......@@ -48,7 +48,7 @@ void WorkletModuleScriptFetcher::NotifyFinished(Resource* resource) {
base::Optional<ModuleScriptCreationParams> params;
auto* script_resource = To<ScriptResource>(resource);
HeapVector<Member<ConsoleMessage>> error_messages;
ModuleScriptCreationParams::ModuleType module_type;
ModuleType module_type;
if (WasModuleLoadSuccessful(script_resource, &error_messages, &module_type)) {
const KURL& url = script_resource->GetResponse().CurrentRequestUrl();
// Create an external module script where base_url == source_url.
......
......@@ -155,8 +155,8 @@ class ModuleMapTestModulator final : public DummyModulator {
void NotifyFetchFinished() {
client_->NotifyFetchFinishedSuccess(ModuleScriptCreationParams(
url_, url_, ScriptSourceLocationType::kExternalFile,
ModuleScriptCreationParams::ModuleType::kJavaScriptModule,
ParkableString(String("").ReleaseImpl()), nullptr, credential_mode_));
ModuleType::kJavaScript, ParkableString(String("").ReleaseImpl()),
nullptr, credential_mode_));
}
void Trace(Visitor* visitor) const { visitor->Trace(client_); }
......
......@@ -83,8 +83,7 @@ class ModuleScriptTest : public ::testing::Test, public ParametrizedModuleTest {
SingleCachedMetadataHandler* cache_handler) {
ModuleScriptCreationParams params(
KURL("https://fox.url/script.js"), KURL("https://fox.url/"),
ScriptSourceLocationType::kInline,
ModuleScriptCreationParams::ModuleType::kJavaScriptModule,
ScriptSourceLocationType::kInline, ModuleType::kJavaScript,
ParkableString(source_text.IsolatedCopy().ReleaseImpl()), cache_handler,
network::mojom::CredentialsMode::kOmit);
return JSModuleScript::Create(params, modulator, ScriptFetchOptions());
......
......@@ -727,9 +727,8 @@ bool ScriptLoader::PrepareScript(const TextPosition& script_start_position,
ModuleScriptCreationParams params(
source_url, base_url, ScriptSourceLocationType::kInline,
ModuleScriptCreationParams::ModuleType::kJavaScriptModule,
ParkableString(source_text.Impl()), nullptr,
options.CredentialsMode());
ModuleType::kJavaScript, ParkableString(source_text.Impl()),
nullptr, options.CredentialsMode());
ModuleScript* module_script =
JSModuleScript::Create(params, modulator, options, position);
......
......@@ -29,8 +29,7 @@ v8::Local<v8::Module> ModuleTestBase::CompileModule(
ExceptionState& exception_state) {
ModuleScriptCreationParams params(
/*source_url=*/url, /*base_url=*/url,
ScriptSourceLocationType::kExternalFile,
ModuleScriptCreationParams::ModuleType::kJavaScriptModule,
ScriptSourceLocationType::kExternalFile, ModuleType::kJavaScript,
ParkableString(source.Impl()), nullptr,
network::mojom::CredentialsMode::kOmit);
return ModuleRecord::Compile(isolate, params, ScriptFetchOptions(),
......
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