Everywhere: Make TransportSocket non-movable

Instead of wrapping all non-movable members of TransportSocket in OwnPtr
to keep it movable, make TransportSocket itself non-movable and wrap it
in OwnPtr.
This commit is contained in:
Aliaksandr Kalenik 2025-04-08 22:01:46 +02:00 committed by Alexander Kalenik
parent 79c22e0d86
commit db8c443392
Notes: github-actions[bot] 2025-04-09 13:28:53 +00:00
42 changed files with 97 additions and 100 deletions

View file

@ -56,7 +56,7 @@
namespace WebContent {
ConnectionFromClient::ConnectionFromClient(IPC::Transport transport)
ConnectionFromClient::ConnectionFromClient(NonnullOwnPtr<IPC::Transport> transport)
: IPC::ConnectionFromClient<WebContentClientEndpoint, WebContentServerEndpoint>(*this, move(transport), 1)
, m_page_host(PageHost::create(*this))
{

View file

@ -51,7 +51,7 @@ public:
Queue<Web::QueuedInputEvent>& input_event_queue() { return m_input_event_queue; }
private:
explicit ConnectionFromClient(IPC::Transport);
explicit ConnectionFromClient(NonnullOwnPtr<IPC::Transport>);
Optional<PageClient&> page(u64 index, SourceLocation = SourceLocation::current());
Optional<PageClient const&> page(u64 index, SourceLocation = SourceLocation::current()) const;

View file

@ -197,10 +197,10 @@ ErrorOr<NonnullRefPtr<WebDriverConnection>> WebDriverConnection::connect(Web::Pa
page_client.page().set_should_block_pop_ups(false);
dbgln_if(WEBDRIVER_DEBUG, "Connected to WebDriver");
return adopt_nonnull_ref_or_enomem(new (nothrow) WebDriverConnection(IPC::Transport(move(socket)), page_client));
return adopt_nonnull_ref_or_enomem(new (nothrow) WebDriverConnection(make<IPC::Transport>(move(socket)), page_client));
}
WebDriverConnection::WebDriverConnection(IPC::Transport transport, Web::PageClient& page_client)
WebDriverConnection::WebDriverConnection(NonnullOwnPtr<IPC::Transport> transport, Web::PageClient& page_client)
: IPC::ConnectionToServer<WebDriverClientEndpoint, WebDriverServerEndpoint>(*this, move(transport))
{
set_current_top_level_browsing_context(page_client.page().top_level_browsing_context());

View file

@ -42,7 +42,7 @@ public:
void page_did_open_dialog(Badge<PageClient>);
private:
WebDriverConnection(IPC::Transport transport, Web::PageClient& page_client);
WebDriverConnection(NonnullOwnPtr<IPC::Transport> transport, Web::PageClient& page_client);
virtual void die() override { }

View file

@ -26,10 +26,10 @@ ErrorOr<NonnullRefPtr<WebUIConnection>> WebUIConnection::connect(IPC::File web_u
auto socket = TRY(Core::LocalSocket::adopt_fd(web_ui_socket.take_fd()));
TRY(socket->set_blocking(true));
return adopt_ref(*new WebUIConnection(IPC::Transport { move(socket) }, document));
return adopt_ref(*new WebUIConnection(make<IPC::Transport>(move(socket)), document));
}
WebUIConnection::WebUIConnection(IPC::Transport transport, Web::DOM::Document& document)
WebUIConnection::WebUIConnection(NonnullOwnPtr<IPC::Transport> transport, Web::DOM::Document& document)
: IPC::ConnectionFromClient<WebUIClientEndpoint, WebUIServerEndpoint>(*this, move(transport), 1)
, m_document(document)
{

View file

@ -28,7 +28,7 @@ public:
void received_message_from_web_ui(String const& name, JS::Value data);
private:
WebUIConnection(IPC::Transport, Web::DOM::Document&);
WebUIConnection(NonnullOwnPtr<IPC::Transport>, Web::DOM::Document&);
virtual void die() override { }
virtual void send_message(String name, JsonValue data) override;

View file

@ -213,7 +213,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
static_assert(IsSame<IPC::Transport, IPC::TransportSocket>, "Need to handle other IPC transports here");
auto webcontent_socket = TRY(Core::take_over_socket_from_system_server("WebContent"sv));
auto webcontent_client = TRY(WebContent::ConnectionFromClient::try_create(IPC::Transport(move(webcontent_socket))));
auto webcontent_client = TRY(WebContent::ConnectionFromClient::try_create(make<IPC::Transport>(move(webcontent_socket))));
webcontent_client->on_image_decoder_connection = [&](auto& socket_file) {
auto maybe_error = reinitialize_image_decoder(socket_file);
@ -255,7 +255,7 @@ ErrorOr<void> initialize_resource_loader(GC::Heap& heap, int request_server_sock
auto socket = TRY(Core::LocalSocket::adopt_fd(request_server_socket));
TRY(socket->set_blocking(true));
auto request_client = TRY(try_make_ref_counted<Requests::RequestClient>(IPC::Transport(move(socket))));
auto request_client = TRY(try_make_ref_counted<Requests::RequestClient>(make<IPC::Transport>(move(socket))));
#ifdef AK_OS_WINDOWS
auto response = request_client->send_sync<Messages::RequestServer::InitTransport>(Core::System::getpid());
request_client->transport().set_peer_pid(response->peer_pid());
@ -271,7 +271,7 @@ ErrorOr<void> initialize_image_decoder(int image_decoder_socket)
auto socket = TRY(Core::LocalSocket::adopt_fd(image_decoder_socket));
TRY(socket->set_blocking(true));
auto new_client = TRY(try_make_ref_counted<ImageDecoderClient::Client>(IPC::Transport(move(socket))));
auto new_client = TRY(try_make_ref_counted<ImageDecoderClient::Client>(make<IPC::Transport>(move(socket))));
#ifdef AK_OS_WINDOWS
auto response = new_client->send_sync<Messages::ImageDecoderServer::InitTransport>(Core::System::getpid());
new_client->transport().set_peer_pid(response->peer_pid());
@ -289,7 +289,7 @@ ErrorOr<void> reinitialize_image_decoder(IPC::File const& image_decoder_socket)
auto socket = TRY(Core::LocalSocket::adopt_fd(image_decoder_socket.take_fd()));
TRY(socket->set_blocking(true));
auto new_client = TRY(try_make_ref_counted<ImageDecoderClient::Client>(IPC::Transport(move(socket))));
auto new_client = TRY(try_make_ref_counted<ImageDecoderClient::Client>(make<IPC::Transport>(move(socket))));
static_cast<WebView::ImageCodecPlugin&>(Web::Platform::ImageCodecPlugin::the()).set_client(move(new_client));