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