diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp index 06f5d4c490..961bc39459 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp @@ -1,6 +1,7 @@ /* * Copyright (c) 2021, Luke Wilde * Copyright (c) 2022, Linus Groh + * Copyright (c) 2022, networkException * * SPDX-License-Identifier: BSD-2-Clause */ @@ -266,6 +267,19 @@ bool EnvironmentSettingsObject::is_scripting_disabled() const return !is_scripting_enabled(); } +// https://html.spec.whatwg.org/multipage/webappapis.html#module-type-allowed +bool EnvironmentSettingsObject::module_type_allowed(AK::String const& module_type) const +{ + // 1. If moduleType is not "javascript", "css", or "json", then return false. + if (module_type != "javascript"sv && module_type != "css"sv && module_type != "json"sv) + return false; + + // FIXME: 2. If moduleType is "css" and the CSSStyleSheet interface is not exposed in settings's Realm, then return false. + + // 3. Return true. + return true; +} + // https://html.spec.whatwg.org/multipage/webappapis.html#incumbent-settings-object EnvironmentSettingsObject& incumbent_settings_object() { diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h index dbb1377dc6..6c42681ddd 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h @@ -106,6 +106,8 @@ struct EnvironmentSettingsObject bool is_scripting_enabled() const; bool is_scripting_disabled() const; + bool module_type_allowed(String const& module_type) const; + protected: explicit EnvironmentSettingsObject(NonnullOwnPtr);