1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:17:35 +00:00

LibWeb: Add the missing MessageEvent IDL constructor

This commit is contained in:
Idan Horowitz 2021-10-01 18:39:03 +03:00 committed by Andreas Kling
parent 9863de4609
commit d44857d34d
4 changed files with 36 additions and 8 deletions

View file

@ -10,13 +10,23 @@
namespace Web::HTML {
struct MessageEventInit : public DOM::EventInit {
JS::Value data { JS::js_null() };
String origin { "" };
String last_event_id { "" };
};
class MessageEvent : public DOM::Event {
public:
using WrapperType = Bindings::MessageEventWrapper;
static NonnullRefPtr<MessageEvent> create(const FlyString& event_name, JS::Value data, String const& origin)
static NonnullRefPtr<MessageEvent> create(FlyString const& event_name, MessageEventInit const& event_init = {})
{
return adopt_ref(*new MessageEvent(event_name, data, origin));
return adopt_ref(*new MessageEvent(event_name, event_init));
}
static NonnullRefPtr<MessageEvent> create_with_global_object(Bindings::WindowObject&, FlyString const& event_name, MessageEventInit const& event_init)
{
return MessageEvent::create(event_name, event_init);
}
virtual ~MessageEvent() override = default;
@ -26,10 +36,11 @@ public:
String const& last_event_id() const { return m_last_event_id; }
protected:
MessageEvent(const FlyString& event_name, JS::Value data, String origin)
: DOM::Event(event_name)
, m_data(data)
, m_origin(move(origin))
MessageEvent(FlyString const& event_name, MessageEventInit const& event_init)
: DOM::Event(event_name, event_init)
, m_data(event_init.data)
, m_origin(event_init.origin)
, m_last_event_id(event_init.last_event_id)
{
}