mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 19:04:58 +00:00
LibWeb/HTML: Do not use macro to implement MessagePort event handlers
This is not really any more code, and will make it easier to implement the custom behaviour specified for the onmessage setter.
This commit is contained in:
@@ -438,17 +438,28 @@ void MessagePort::close()
|
|||||||
disentangle();
|
disentangle();
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef __ENUMERATE
|
// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessageerror
|
||||||
#define __ENUMERATE(attribute_name, event_name) \
|
void MessagePort::set_onmessageerror(GC::Ptr<WebIDL::CallbackType> value)
|
||||||
void MessagePort::set_##attribute_name(WebIDL::CallbackType* value) \
|
{
|
||||||
{ \
|
set_event_handler_attribute(EventNames::messageerror, value);
|
||||||
set_event_handler_attribute(event_name, value); \
|
}
|
||||||
} \
|
|
||||||
WebIDL::CallbackType* MessagePort::attribute_name() \
|
// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessageerror
|
||||||
{ \
|
GC::Ptr<WebIDL::CallbackType> MessagePort::onmessageerror()
|
||||||
return event_handler_attribute(event_name); \
|
{
|
||||||
}
|
return event_handler_attribute(EventNames::messageerror);
|
||||||
ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(__ENUMERATE)
|
}
|
||||||
#undef __ENUMERATE
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessage
|
||||||
|
void MessagePort::set_onmessage(GC::Ptr<WebIDL::CallbackType> value)
|
||||||
|
{
|
||||||
|
set_event_handler_attribute(EventNames::message, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessage
|
||||||
|
GC::Ptr<WebIDL::CallbackType> MessagePort::onmessage()
|
||||||
|
{
|
||||||
|
return event_handler_attribute(EventNames::message);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
|
|
||||||
namespace Web::HTML {
|
namespace Web::HTML {
|
||||||
|
|
||||||
#define ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(E) \
|
|
||||||
E(onmessage, HTML::EventNames::message) \
|
|
||||||
E(onmessageerror, HTML::EventNames::messageerror)
|
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/web-messaging.html#message-ports
|
// https://html.spec.whatwg.org/multipage/web-messaging.html#message-ports
|
||||||
class MessagePort final : public DOM::EventTarget
|
class MessagePort final : public DOM::EventTarget
|
||||||
, public Bindings::Transferable {
|
, public Bindings::Transferable {
|
||||||
@@ -50,12 +46,11 @@ public:
|
|||||||
|
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
#undef __ENUMERATE
|
void set_onmessageerror(GC::Ptr<WebIDL::CallbackType>);
|
||||||
#define __ENUMERATE(attribute_name, event_name) \
|
GC::Ptr<WebIDL::CallbackType> onmessageerror();
|
||||||
void set_##attribute_name(WebIDL::CallbackType*); \
|
|
||||||
WebIDL::CallbackType* attribute_name();
|
void set_onmessage(GC::Ptr<WebIDL::CallbackType>);
|
||||||
ENUMERATE_MESSAGE_PORT_EVENT_HANDLERS(__ENUMERATE)
|
GC::Ptr<WebIDL::CallbackType> onmessage();
|
||||||
#undef __ENUMERATE
|
|
||||||
|
|
||||||
// ^Transferable
|
// ^Transferable
|
||||||
virtual WebIDL::ExceptionOr<void> transfer_steps(HTML::TransferDataHolder&) override;
|
virtual WebIDL::ExceptionOr<void> transfer_steps(HTML::TransferDataHolder&) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user