LibWeb: Use interface_name instead of serialize_type virtual

`interface_name` is implemented for every platform object,
so we no longer need this boilerplate for every serializable
platform object.
This commit is contained in:
Shannon Booth 2025-07-18 16:14:26 +12:00 committed by Shannon Booth
parent 4d64f21fa5
commit 6a9cd0e8e0
17 changed files with 1 additions and 24 deletions

View file

@ -17,8 +17,6 @@ class Serializable {
public:
virtual ~Serializable() = default;
virtual InterfaceName serialize_type() const = 0;
// https://html.spec.whatwg.org/multipage/structured-data.html#serialization-steps
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) = 0;

View file

@ -49,7 +49,6 @@ public:
InternalKeyData const& handle() const { return m_key_data; }
String algorithm_name() const;
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::CryptoKey; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -59,8 +59,6 @@ public:
GC::Ref<Streams::ReadableStream> get_stream();
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::Blob; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -30,8 +30,6 @@ public:
// https://w3c.github.io/FileAPI/#dfn-lastModified
i64 last_modified() const { return m_last_modified; }
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::File; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -46,7 +46,6 @@ public:
virtual Optional<JS::Value> item_value(size_t index) const override;
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::FileList; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -70,8 +70,6 @@ public:
WebIDL::ExceptionOr<GC::Ref<DOMMatrix>> set_matrix_value(String const& transform_list);
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMMatrix; }
private:
DOMMatrix(JS::Realm&, double m11, double m12, double m21, double m22, double m41, double m42);
DOMMatrix(JS::Realm&, double m11, double m12, double m13, double m14, double m21, double m22, double m23, double m24, double m31, double m32, double m33, double m34, double m41, double m42, double m43, double m44);

View file

@ -115,7 +115,6 @@ public:
WebIDL::ExceptionOr<String> to_string() const;
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMMatrixReadOnly; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -35,8 +35,6 @@ public:
void set_z(double z) { m_z = z; }
void set_w(double w) { m_w = w; }
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMPoint; }
private:
DOMPoint(JS::Realm&, double x, double y, double z, double w);
DOMPoint(JS::Realm&);

View file

@ -44,7 +44,6 @@ public:
WebIDL::ExceptionOr<GC::Ref<DOMPoint>> matrix_transform(DOMMatrixInit&) const;
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMPointReadOnly; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -44,7 +44,6 @@ public:
GC::Ref<DOMRect> get_bounds() const;
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMQuad; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -33,8 +33,6 @@ public:
void set_width(double width) { m_rect.set_width(width); }
void set_height(double height) { m_rect.set_height(height); }
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMRect; }
private:
DOMRect(JS::Realm&, double x, double y, double width, double height);
explicit DOMRect(JS::Realm&);

View file

@ -69,7 +69,6 @@ public:
return min(x(), x() + width());
}
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMRectReadOnly; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -38,7 +38,6 @@ public:
virtual ~ImageBitmap() override;
// ^Web::Bindings::Serializable
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::ImageBitmap; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -46,7 +46,6 @@ public:
Bindings::PredefinedColorSpace color_space() const { return m_color_space; }
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::ImageData; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -444,7 +444,7 @@ public:
// 2. Let typeString be the identifier of the primary interface of value.
// 3. Set serialized to { [[Type]]: typeString }.
serialized.encode(ValueTag::SerializableObject);
serialized.encode(serializable->serialize_type());
serialized.encode(as<Bindings::PlatformObject>(serializable)->interface_name());
// 4. Set deep to true
deep = true;

View file

@ -112,8 +112,6 @@ public:
Utf16FlyString const& message() const { return m_message; }
u16 code() const { return get_legacy_code_for_name(m_name); }
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::DOMException; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;

View file

@ -27,7 +27,6 @@ public:
static ExceptionOr<GC::Ref<QuotaExceededError>> construct_impl(JS::Realm&, Utf16String const& message = {}, QuotaExceededErrorOptions const& options = {});
virtual Bindings::InterfaceName serialize_type() const override { return Bindings::InterfaceName::QuotaExceededError; }
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::TransferDataEncoder&, bool for_storage, HTML::SerializationMemory&) override;
virtual WebIDL::ExceptionOr<void> deserialization_steps(HTML::TransferDataDecoder&, HTML::DeserializationMemory&) override;