SerializedEnvironmentSettingsObject.h 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/String.h>
  8. #include <LibIPC/Forward.h>
  9. #include <LibURL/URL.h>
  10. #include <LibWeb/HTML/Origin.h>
  11. #include <LibWeb/HTML/PolicyContainers.h>
  12. namespace Web::HTML {
  13. enum class CanUseCrossOriginIsolatedAPIs {
  14. No,
  15. Yes,
  16. };
  17. struct SerializedEnvironmentSettingsObject {
  18. String id;
  19. URL::URL creation_url;
  20. URL::URL top_level_creation_url;
  21. Origin top_level_origin;
  22. String api_url_character_encoding;
  23. URL::URL api_base_url;
  24. Origin origin;
  25. PolicyContainer policy_container;
  26. CanUseCrossOriginIsolatedAPIs cross_origin_isolated_capability;
  27. };
  28. }
  29. namespace IPC {
  30. template<>
  31. ErrorOr<void> encode(Encoder&, Web::HTML::SerializedEnvironmentSettingsObject const&);
  32. template<>
  33. ErrorOr<Web::HTML::SerializedEnvironmentSettingsObject> decode(Decoder&);
  34. }