ladybird/Libraries/LibWeb/HTML/Scripting/SerializedEnvironmentSettingsObject.h
Luke Wilde cae0ab2139 LibWeb: Make PolicyContainer GC allocated
This is required to store Content Security Policies, as their
Directives are implemented as subclasses with overridden virtual
functions. Thus, they cannot be stored as generic Directive classes, as
it'll lose the ability to call overridden functions when they are
copied.
2025-02-21 12:43:48 +00:00

46 lines
969 B
C++

/*
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/String.h>
#include <LibIPC/Forward.h>
#include <LibURL/Origin.h>
#include <LibURL/URL.h>
#include <LibWeb/HTML/SerializedPolicyContainer.h>
namespace Web::HTML {
enum class CanUseCrossOriginIsolatedAPIs {
No,
Yes,
};
struct SerializedEnvironmentSettingsObject {
String id;
URL::URL creation_url;
URL::URL top_level_creation_url;
URL::Origin top_level_origin;
String api_url_character_encoding;
URL::URL api_base_url;
URL::Origin origin;
SerializedPolicyContainer policy_container;
CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability;
double time_origin;
};
}
namespace IPC {
template<>
ErrorOr<void> encode(Encoder&, Web::HTML::SerializedEnvironmentSettingsObject const&);
template<>
ErrorOr<Web::HTML::SerializedEnvironmentSettingsObject> decode(Decoder&);
}