Serenity Operating System
at master 37 lines 1.2 kB view raw
1/* 2 * Copyright (c) 2021, Luke Wilde <lukew@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibJS/Heap/Cell.h> 10#include <LibWeb/HTML/Scripting/Environments.h> 11 12namespace Web::HTML { 13 14class WindowEnvironmentSettingsObject final : public EnvironmentSettingsObject { 15 JS_CELL(WindowEnvironmentSettingsObject, EnvironmentSettingsObject); 16 17public: 18 static WebIDL::ExceptionOr<void> setup(AK::URL const& creation_url, NonnullOwnPtr<JS::ExecutionContext>, Optional<Environment>, AK::URL top_level_creation_url, Origin top_level_origin); 19 20 virtual ~WindowEnvironmentSettingsObject() override; 21 22 virtual JS::GCPtr<DOM::Document> responsible_document() override; 23 virtual DeprecatedString api_url_character_encoding() override; 24 virtual AK::URL api_base_url() override; 25 virtual Origin origin() override; 26 virtual PolicyContainer policy_container() override; 27 virtual CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability() override; 28 29private: 30 WindowEnvironmentSettingsObject(Window&, NonnullOwnPtr<JS::ExecutionContext>); 31 32 virtual void visit_edges(JS::Cell::Visitor&) override; 33 34 JS::GCPtr<Window> m_window; 35}; 36 37}