diff --git a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
index b53e1257a40..8bcf90b1b41 100644
--- a/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
+++ b/Userland/Libraries/LibWeb/HTML/MessagePort.cpp
@@ -280,15 +280,12 @@ ErrorOr MessagePort::send_message_on_transport(SerializedTransferRecord co
void MessagePort::post_port_message(SerializedTransferRecord serialize_with_transfer_result)
{
- // FIXME: Use the correct task source?
- queue_global_task(Task::Source::PostedMessage, relevant_global_object(*this), JS::create_heap_function(heap(), [this, serialize_with_transfer_result = move(serialize_with_transfer_result)]() mutable {
- if (!m_transport.has_value() || !m_transport->is_open())
- return;
- if (auto result = send_message_on_transport(serialize_with_transfer_result); result.is_error()) {
- dbgln("Failed to post message: {}", result.error());
- disentangle();
- }
- }));
+ if (!m_transport.has_value() || !m_transport->is_open())
+ return;
+ if (auto result = send_message_on_transport(serialize_with_transfer_result); result.is_error()) {
+ dbgln("Failed to post message: {}", result.error());
+ disentangle();
+ }
}
ErrorOr MessagePort::parse_message()
@@ -324,7 +321,11 @@ ErrorOr MessagePort::parse_message()
m_buffered_data.remove(0, HEADER_SIZE + m_socket_incoming_message_size);
- post_message_task_steps(serialized_transfer_record);
+ // Note: this is step 7 of message_port_post_message_steps:
+ // 7. Add a task that runs the following steps to the port message queue of targetPort:
+ queue_global_task(Task::Source::PostedMessage, relevant_global_object(*this), JS::create_heap_function(heap(), [this, serialized_transfer_record = move(serialized_transfer_record)]() mutable {
+ this->post_message_task_steps(serialized_transfer_record);
+ }));
break;
}