diff --git a/Libraries/LibWeb/HTML/MessagePort.cpp b/Libraries/LibWeb/HTML/MessagePort.cpp
index 10b0b920277..fecaee14b52 100644
--- a/Libraries/LibWeb/HTML/MessagePort.cpp
+++ b/Libraries/LibWeb/HTML/MessagePort.cpp
@@ -454,6 +454,11 @@ GC::Ptr MessagePort::onmessageerror()
void MessagePort::set_onmessage(GC::Ptr value)
{
set_event_handler_attribute(EventNames::message, value);
+
+ // https://html.spec.whatwg.org/multipage/web-messaging.html#message-ports:handler-messageeventtarget-onmessage
+ // The first time a MessagePort object's onmessage IDL attribute is set, the port's port message queue must be enabled,
+ // as if the start() method had been called.
+ start();
}
// https://html.spec.whatwg.org/multipage/web-messaging.html#handler-messageeventtarget-onmessage