From 9afea1248f01437c2d4fdb422f87623bba3ac928 Mon Sep 17 00:00:00 2001 From: networkException Date: Sun, 23 Oct 2022 04:06:19 +0200 Subject: [PATCH] LibWeb: Add disallow further import maps steps to ESO --- .../LibWeb/HTML/Scripting/Environments.cpp | 14 ++++++++++++++ .../Libraries/LibWeb/HTML/Scripting/Environments.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp index 28ccf88260..551c83b4f4 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.cpp @@ -293,6 +293,20 @@ bool EnvironmentSettingsObject::module_type_allowed(AK::String const& module_typ return true; } +// https://html.spec.whatwg.org/multipage/webappapis.html#disallow-further-import-maps +void EnvironmentSettingsObject::disallow_further_import_maps() +{ + // 1. Let global be settingsObject's global object. + auto& global = global_object(); + + // 2. If global does not implement Window, then return. + if (!is(global)) + return; + + // 3. Set global's import maps allowed to false. + verify_cast(global).set_import_maps_allowed(false); +} + // 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 0de0ba771b..1915c24022 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h @@ -113,6 +113,8 @@ struct EnvironmentSettingsObject bool module_type_allowed(String const& module_type) const; + void disallow_further_import_maps(); + protected: explicit EnvironmentSettingsObject(NonnullOwnPtr);