diff --git a/Userland/Libraries/LibWeb/Bindings/Serializable.h b/Userland/Libraries/LibWeb/Bindings/Serializable.h index c4ef2714774..67d76703a96 100644 --- a/Userland/Libraries/LibWeb/Bindings/Serializable.h +++ b/Userland/Libraries/LibWeb/Bindings/Serializable.h @@ -21,7 +21,7 @@ public: // https://html.spec.whatwg.org/multipage/structured-data.html#serialization-steps virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord&, bool for_storage, HTML::SerializationMemory&) = 0; // https://html.spec.whatwg.org/multipage/structured-data.html#deserialization-steps - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position) = 0; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position, HTML::DeserializationMemory&) = 0; }; } diff --git a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp index 16feb91e5f4..fadcedadff8 100644 --- a/Userland/Libraries/LibWeb/FileAPI/Blob.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/Blob.cpp @@ -165,7 +165,7 @@ WebIDL::ExceptionOr Blob::serialization_steps(HTML::SerializationRecord& r return {}; } -WebIDL::ExceptionOr Blob::deserialization_steps(ReadonlySpan const& record, size_t& position) +WebIDL::ExceptionOr Blob::deserialization_steps(ReadonlySpan const& record, size_t& position, HTML::DeserializationMemory&) { auto& vm = this->vm(); diff --git a/Userland/Libraries/LibWeb/FileAPI/Blob.h b/Userland/Libraries/LibWeb/FileAPI/Blob.h index a1b7facb1af..c01c4cfb61b 100644 --- a/Userland/Libraries/LibWeb/FileAPI/Blob.h +++ b/Userland/Libraries/LibWeb/FileAPI/Blob.h @@ -58,7 +58,7 @@ public: virtual StringView interface_name() const override { return "Blob"sv; } virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord& record, bool for_storage, HTML::SerializationMemory&) override; - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const& record, size_t& position) override; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const& record, size_t& position, HTML::DeserializationMemory&) override; protected: Blob(JS::Realm&, ByteBuffer, String type); diff --git a/Userland/Libraries/LibWeb/FileAPI/File.cpp b/Userland/Libraries/LibWeb/FileAPI/File.cpp index 5f44390816b..bac8fcaf935 100644 --- a/Userland/Libraries/LibWeb/FileAPI/File.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/File.cpp @@ -109,7 +109,7 @@ WebIDL::ExceptionOr File::serialization_steps(HTML::SerializationRecord& r return {}; } -WebIDL::ExceptionOr File::deserialization_steps(ReadonlySpan const& record, size_t& position) +WebIDL::ExceptionOr File::deserialization_steps(ReadonlySpan const& record, size_t& position, HTML::DeserializationMemory&) { auto& vm = this->vm(); diff --git a/Userland/Libraries/LibWeb/FileAPI/File.h b/Userland/Libraries/LibWeb/FileAPI/File.h index 11df4ece07c..5a8fa860943 100644 --- a/Userland/Libraries/LibWeb/FileAPI/File.h +++ b/Userland/Libraries/LibWeb/FileAPI/File.h @@ -33,7 +33,7 @@ public: virtual StringView interface_name() const override { return "File"sv; } virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord& record, bool for_storage, HTML::SerializationMemory&) override; - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position) override; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position, HTML::DeserializationMemory&) override; private: File(JS::Realm&, ByteBuffer, String file_name, String type, i64 last_modified); diff --git a/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.cpp b/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.cpp index 19081d6a5ba..00b0f96b73f 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.cpp +++ b/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.cpp @@ -759,7 +759,7 @@ WebIDL::ExceptionOr DOMMatrixReadOnly::serialization_steps(HTML::Serializa } // https://drafts.fxtf.org/geometry/#structured-serialization -WebIDL::ExceptionOr DOMMatrixReadOnly::deserialization_steps(ReadonlySpan const& record, size_t& position) +WebIDL::ExceptionOr DOMMatrixReadOnly::deserialization_steps(ReadonlySpan const& record, size_t& position, HTML::DeserializationMemory&) { bool is_2d = HTML::deserialize_primitive_type(record, position); // 1. If serialized.[[Is2D]] is true: diff --git a/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.h b/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.h index f30b3b17bd7..f779da523c0 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.h +++ b/Userland/Libraries/LibWeb/Geometry/DOMMatrixReadOnly.h @@ -116,7 +116,7 @@ public: virtual StringView interface_name() const override { return "DOMMatrixReadOnly"sv; } virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord&, bool for_storage, HTML::SerializationMemory&) override; - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const& record, size_t& position) override; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const& record, size_t& position, HTML::DeserializationMemory&) override; protected: DOMMatrixReadOnly(JS::Realm&, double m11, double m12, double m21, double m22, double m41, double m42); diff --git a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.cpp b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.cpp index cb958eac12a..ee052a79805 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.cpp +++ b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.cpp @@ -79,7 +79,7 @@ WebIDL::ExceptionOr DOMPointReadOnly::serialization_steps(HTML::Serializat return {}; } -WebIDL::ExceptionOr DOMPointReadOnly::deserialization_steps(ReadonlySpan const& serialized, size_t& position) +WebIDL::ExceptionOr DOMPointReadOnly::deserialization_steps(ReadonlySpan const& serialized, size_t& position, HTML::DeserializationMemory&) { // 1. Set value’s x coordinate to serialized.[[X]]. m_x = HTML::deserialize_primitive_type(serialized, position); diff --git a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.h b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.h index 61e6d6ad4a2..0c35d222c99 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.h +++ b/Userland/Libraries/LibWeb/Geometry/DOMPointReadOnly.h @@ -46,7 +46,7 @@ public: virtual StringView interface_name() const override { return "DOMPointReadOnly"sv; } virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord&, bool for_storage, HTML::SerializationMemory&) override; - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position) override; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position, HTML::DeserializationMemory&) override; protected: DOMPointReadOnly(JS::Realm&, double x, double y, double z, double w); diff --git a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.cpp b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.cpp index b9a135ba9e6..c00e7ff2db4 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.cpp +++ b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.cpp @@ -65,7 +65,7 @@ WebIDL::ExceptionOr DOMRectReadOnly::serialization_steps(HTML::Serializati } // https://drafts.fxtf.org/geometry/#structured-serialization -WebIDL::ExceptionOr DOMRectReadOnly::deserialization_steps(ReadonlySpan const& serialized, size_t& position) +WebIDL::ExceptionOr DOMRectReadOnly::deserialization_steps(ReadonlySpan const& serialized, size_t& position, HTML::DeserializationMemory&) { // 1. Set value’s x coordinate to serialized.[[X]]. auto x = HTML::deserialize_primitive_type(serialized, position); diff --git a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.h b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.h index c6450ea458c..27dfa405e09 100644 --- a/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.h +++ b/Userland/Libraries/LibWeb/Geometry/DOMRectReadOnly.h @@ -71,7 +71,7 @@ public: virtual StringView interface_name() const override { return "DOMRectReadOnly"sv; } virtual WebIDL::ExceptionOr serialization_steps(HTML::SerializationRecord&, bool for_storage, HTML::SerializationMemory&) override; - virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position) override; + virtual WebIDL::ExceptionOr deserialization_steps(ReadonlySpan const&, size_t& position, HTML::DeserializationMemory&) override; protected: DOMRectReadOnly(JS::Realm&, double x, double y, double width, double height); diff --git a/Userland/Libraries/LibWeb/HTML/StructuredSerialize.cpp b/Userland/Libraries/LibWeb/HTML/StructuredSerialize.cpp index eded9d8885c..e6c80c438f9 100644 --- a/Userland/Libraries/LibWeb/HTML/StructuredSerialize.cpp +++ b/Userland/Libraries/LibWeb/HTML/StructuredSerialize.cpp @@ -949,7 +949,7 @@ public: else { // 1. Perform the appropriate deserialization steps for the interface identified by serialized.[[Type]], given serialized, value, and targetRealm. auto& serializable = dynamic_cast(value.as_object()); - TRY(serializable.deserialization_steps(m_serialized, m_position)); + TRY(serializable.deserialization_steps(m_serialized, m_position, m_memory)); } }