SerializedEnvironmentSettingsObject.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibIPC/Decoder.h>
  7. #include <LibIPC/Encoder.h>
  8. #include <LibWeb/HTML/Scripting/SerializedEnvironmentSettingsObject.h>
  9. namespace IPC {
  10. template<>
  11. ErrorOr<void> encode(Encoder& encoder, Web::HTML::SerializedEnvironmentSettingsObject const& object)
  12. {
  13. TRY(encoder.encode(object.id));
  14. TRY(encoder.encode(object.creation_url));
  15. TRY(encoder.encode(object.top_level_creation_url));
  16. TRY(encoder.encode(object.top_level_origin));
  17. TRY(encoder.encode(object.api_url_character_encoding));
  18. TRY(encoder.encode(object.api_base_url));
  19. TRY(encoder.encode(object.origin));
  20. TRY(encoder.encode(object.policy_container));
  21. TRY(encoder.encode(object.cross_origin_isolated_capability));
  22. return {};
  23. }
  24. template<>
  25. ErrorOr<Web::HTML::SerializedEnvironmentSettingsObject> decode(Decoder& decoder)
  26. {
  27. Web::HTML::SerializedEnvironmentSettingsObject object {};
  28. object.id = TRY(decoder.decode<String>());
  29. object.creation_url = TRY(decoder.decode<URL::URL>());
  30. object.top_level_creation_url = TRY(decoder.decode<URL::URL>());
  31. object.top_level_origin = TRY(decoder.decode<Web::HTML::Origin>());
  32. object.api_url_character_encoding = TRY(decoder.decode<String>());
  33. object.api_base_url = TRY(decoder.decode<URL::URL>());
  34. object.origin = TRY(decoder.decode<Web::HTML::Origin>());
  35. object.policy_container = TRY(decoder.decode<Web::HTML::PolicyContainer>());
  36. object.cross_origin_isolated_capability = TRY(decoder.decode<Web::HTML::CanUseCrossOriginIsolatedAPIs>());
  37. return object;
  38. }
  39. }