From 4817b7c6230c7aca22d5f1df2d93001cf56ee583 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 13 Oct 2022 18:22:11 +0200 Subject: [PATCH] LibWeb: Add policy container to {Window,Worker}EnvironmentSettingsObject --- Userland/Libraries/LibWeb/HTML/Scripting/Environments.h | 3 ++- .../HTML/Scripting/WindowEnvironmentSettingsObject.cpp | 7 +++++++ .../HTML/Scripting/WindowEnvironmentSettingsObject.h | 1 + .../HTML/Scripting/WorkerEnvironmentSettingsObject.h | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h index f846f30218..551c18f53e 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h +++ b/Userland/Libraries/LibWeb/HTML/Scripting/Environments.h @@ -77,7 +77,8 @@ struct EnvironmentSettingsObject // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-origin virtual Origin origin() = 0; - // FIXME: A policy container https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-policy-container + // A policy container https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-policy-container + virtual PolicyContainer policy_container() = 0; // https://html.spec.whatwg.org/multipage/webappapis.html#concept-settings-object-cross-origin-isolated-capability virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() = 0; diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp b/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp index 94e861c64b..4d78bfb3e6 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp +++ b/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp @@ -108,6 +108,13 @@ Origin WindowEnvironmentSettingsObject::origin() return m_window->associated_document().origin(); } +// https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-policy-container +PolicyContainer WindowEnvironmentSettingsObject::policy_container() +{ + // Return the policy container of window's associated Document. + return m_window->associated_document().policy_container(); +} + // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:concept-settings-object-cross-origin-isolated-capability CanUseCrossOriginIsolatedAPIs WindowEnvironmentSettingsObject::cross_origin_isolated_capability() { diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h b/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h index 47c25d9e85..f743d9a81f 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h +++ b/Userland/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h @@ -23,6 +23,7 @@ public: virtual String api_url_character_encoding() override; virtual AK::URL api_base_url() override; virtual Origin origin() override; + virtual PolicyContainer policy_container() override; virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override; private: diff --git a/Userland/Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.h b/Userland/Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.h index e2e2ba6dc9..8226d2557d 100644 --- a/Userland/Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.h +++ b/Userland/Libraries/LibWeb/HTML/Scripting/WorkerEnvironmentSettingsObject.h @@ -46,12 +46,14 @@ public: String api_url_character_encoding() override { return m_api_url_character_encoding; } AK::URL api_base_url() override { return m_url; } Origin origin() override { return m_origin; } + PolicyContainer policy_container() override { return m_policy_container; } CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override { TODO(); } private: String m_api_url_character_encoding; AK::URL m_url; HTML::Origin m_origin; + HTML::PolicyContainer m_policy_container; }; }