mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 17:55:07 +02:00
LibWeb: Begin serializing global object as part of serialized ESO
Instead of passing through window's associated document's URL as an extra argument to starting up a worker. This will allow for improving the representation of 'outside settings' when setting up a Worker.
This commit is contained in:
committed by
Jelle Raaijmakers
parent
513830532b
commit
665654a1c4
Notes:
github-actions[bot]
2026-02-23 10:43:27 +00:00
Author: https://github.com/shannonbooth Commit: https://github.com/LadybirdBrowser/ladybird/commit/665654a1c4f Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/8070 Reviewed-by: https://github.com/gmta ✅
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
|
||||
* Copyright (c) 2026, Shannon Booth <shannon@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
@@ -10,6 +11,36 @@
|
||||
|
||||
namespace IPC {
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder& encoder, Web::HTML::SerializedWindow const& window)
|
||||
{
|
||||
TRY(encoder.encode(window.associated_document.url));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<Web::HTML::SerializedWindow> decode(Decoder& decoder)
|
||||
{
|
||||
return Web::HTML::SerializedWindow {
|
||||
.associated_document {
|
||||
.url = TRY(decoder.decode<URL::URL>()),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder&, Web::HTML::SerializedWorkerGlobalScope const&)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<Web::HTML::SerializedWorkerGlobalScope> decode(Decoder&)
|
||||
{
|
||||
return Web::HTML::SerializedWorkerGlobalScope {};
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder& encoder, Web::HTML::SerializedEnvironmentSettingsObject const& object)
|
||||
{
|
||||
@@ -23,6 +54,7 @@ ErrorOr<void> encode(Encoder& encoder, Web::HTML::SerializedEnvironmentSettingsO
|
||||
TRY(encoder.encode(object.policy_container));
|
||||
TRY(encoder.encode(object.cross_origin_isolated_capability));
|
||||
TRY(encoder.encode(object.time_origin));
|
||||
TRY(encoder.encode(object.global));
|
||||
|
||||
return {};
|
||||
}
|
||||
@@ -41,6 +73,7 @@ ErrorOr<Web::HTML::SerializedEnvironmentSettingsObject> decode(Decoder& decoder)
|
||||
.policy_container = TRY(decoder.decode<Web::HTML::SerializedPolicyContainer>()),
|
||||
.cross_origin_isolated_capability = TRY(decoder.decode<Web::HTML::CanUseCrossOriginIsolatedAPIs>()),
|
||||
.time_origin = TRY(decoder.decode<double>()),
|
||||
.global = TRY(decoder.decode<Web::HTML::SerializedGlobal>()),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user