/* * Copyright (c) 2024, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::HTML { class EnvironmentSettingsSnapshot final : public EnvironmentSettingsObject { GC_CELL(EnvironmentSettingsSnapshot, EnvironmentSettingsObject); GC_DECLARE_ALLOCATOR(EnvironmentSettingsSnapshot); public: EnvironmentSettingsSnapshot(NonnullOwnPtr, SerializedEnvironmentSettingsObject const&); virtual ~EnvironmentSettingsSnapshot() override; GC::Ptr responsible_document() override { return nullptr; } String api_url_character_encoding() const override { return m_api_url_character_encoding; } URL::URL api_base_url() const override { return m_url; } URL::Origin origin() const override { return m_origin; } PolicyContainer policy_container() const override { return m_policy_container; } CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() const override { return CanUseCrossOriginIsolatedAPIs::No; } private: String m_api_url_character_encoding; URL::URL m_url; URL::Origin m_origin; HTML::PolicyContainer m_policy_container; }; }