mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-25 19:51:59 +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:
parent
43dc0f52a6
commit
f8df624171
Notes:
github-actions[bot]
2025-01-20 12:53:59 +00:00
Author: https://github.com/shannonbooth
Commit: f8df624171
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3129
Reviewed-by: https://github.com/trflynn89
2 changed files with 28 additions and 22 deletions
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue