mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-10 18:10:56 +09:00
LibWeb+WebWorker: Convert Workers to use MessagePorts for postMessage
This aligns Workers and Window and MessagePorts to all use the same mechanism for transferring serialized messages across realms. It also allows transferring more message ports into a worker. Re-enable the Worker-echo test, as none of the MessagePort tests have themselves been flaky, and those are now using the same underlying implementation.
This commit is contained in:
parent
37f2d49818
commit
b10fee00eb
Notes:
sideshowbarker
2024-07-17 00:47:29 +09:00
Author: https://github.com/ADKaster
Commit: b10fee00eb
Pull-request: https://github.com/SerenityOS/serenity/pull/22372
21 changed files with 159 additions and 222 deletions
|
@ -52,11 +52,12 @@ Web::Page const& ConnectionFromClient::page() const
|
|||
return m_page_host->page();
|
||||
}
|
||||
|
||||
void ConnectionFromClient::start_dedicated_worker(AK::URL const& url, String const& type, String const&, String const&, IPC::File const& implicit_port)
|
||||
void ConnectionFromClient::start_dedicated_worker(AK::URL const& url, String const& type, String const&, String const&, Web::HTML::TransferDataHolder const& implicit_port)
|
||||
{
|
||||
m_worker_host = make_ref_counted<DedicatedWorkerHost>(page(), url, type, implicit_port.take_fd());
|
||||
|
||||
m_worker_host->run();
|
||||
m_worker_host = make_ref_counted<DedicatedWorkerHost>(url, type);
|
||||
// FIXME: Yikes, const_cast to move? Feels like a LibIPC bug.
|
||||
// We should be able to move non-copyable types from a Message type.
|
||||
m_worker_host->run(page(), move(const_cast<Web::HTML::TransferDataHolder&>(implicit_port)));
|
||||
}
|
||||
|
||||
void ConnectionFromClient::handle_file_return(i32 error, Optional<IPC::File> const& file, i32 request_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue