1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 02:47:34 +00:00

Userland: Get rid of the OwnPtr<...> boilerplate code for IPC handlers

This commit is contained in:
Gunnar Beutner 2021-05-02 04:39:36 +02:00 committed by Andreas Kling
parent 1a015dc379
commit 7cf2839a26
33 changed files with 389 additions and 385 deletions

View file

@ -30,7 +30,7 @@ void ClientConnection::die()
exit(0); exit(0);
} }
OwnPtr<Messages::LanguageServer::GreetResponse> ClientConnection::handle(const Messages::LanguageServer::Greet& message) Messages::LanguageServer::GreetResponse ClientConnection::handle(const Messages::LanguageServer::Greet& message)
{ {
m_filedb.set_project_root(message.project_root()); m_filedb.set_project_root(message.project_root());
if (unveil(message.project_root().characters(), "r") < 0) { if (unveil(message.project_root().characters(), "r") < 0) {
@ -41,7 +41,7 @@ OwnPtr<Messages::LanguageServer::GreetResponse> ClientConnection::handle(const M
perror("unveil"); perror("unveil");
exit(1); exit(1);
} }
return make<Messages::LanguageServer::GreetResponse>(); return {};
} }
void ClientConnection::handle(const Messages::LanguageServer::FileOpened& message) void ClientConnection::handle(const Messages::LanguageServer::FileOpened& message)

View file

@ -29,7 +29,7 @@ public:
virtual void die() override; virtual void die() override;
protected: protected:
virtual OwnPtr<Messages::LanguageServer::GreetResponse> handle(const Messages::LanguageServer::Greet&) override; virtual Messages::LanguageServer::GreetResponse handle(const Messages::LanguageServer::Greet&) override;
virtual void handle(const Messages::LanguageServer::FileOpened&) override; virtual void handle(const Messages::LanguageServer::FileOpened&) override;
virtual void handle(const Messages::LanguageServer::FileEditInsertText&) override; virtual void handle(const Messages::LanguageServer::FileEditInsertText&) override;
virtual void handle(const Messages::LanguageServer::FileEditRemoveText&) override; virtual void handle(const Messages::LanguageServer::FileEditRemoveText&) override;

View file

@ -313,6 +313,7 @@ public:
)~~~"); )~~~");
message_generator.append(R"~~~( message_generator.append(R"~~~(
@message.name@(decltype(nullptr)) : m_ipc_message_valid(false) { }
@message.constructor@ @message.constructor@
virtual ~@message.name@() override {} virtual ~@message.name@() override {}
@ -402,6 +403,7 @@ public:
message_generator.append(R"~~~( message_generator.append(R"~~~(
private: private:
bool m_ipc_message_valid { true };
)~~~"); )~~~");
for (auto& parameter : parameters) { for (auto& parameter : parameters) {
@ -529,7 +531,7 @@ public:
return message; return message;
} }
virtual OwnPtr<IPC::Message> handle(const IPC::Message& message) override virtual OwnPtr<IPC::MessageBuffer> handle(const IPC::Message& message) override
{ {
switch (message.message_id()) { switch (message.message_id()) {
)~~~"); )~~~");
@ -539,16 +541,19 @@ public:
message_generator.set("message.name", name); message_generator.set("message.name", name);
message_generator.append(R"~~~( message_generator.append(R"~~~(
case (int)Messages::@endpoint.name@::MessageID::@message.name@: case (int)Messages::@endpoint.name@::MessageID::@message.name@: {
)~~~"); )~~~");
if (returns_something) { if (returns_something) {
message_generator.append(R"~~~( message_generator.append(R"~~~(
return handle(static_cast<const Messages::@endpoint.name@::@message.name@&>(message)); auto response = handle(static_cast<const Messages::@endpoint.name@::@message.name@&>(message));
return make<IPC::MessageBuffer>(response.encode());
}
)~~~"); )~~~");
} else { } else {
message_generator.append(R"~~~( message_generator.append(R"~~~(
handle(static_cast<const Messages::@endpoint.name@::@message.name@&>(message)); handle(static_cast<const Messages::@endpoint.name@::@message.name@&>(message));
return {}; return {};
}
)~~~"); )~~~");
} }
}; };
@ -571,12 +576,11 @@ public:
String return_type = "void"; String return_type = "void";
if (message.is_synchronous) { if (message.is_synchronous) {
StringBuilder builder; StringBuilder builder;
builder.append("OwnPtr<Messages::"); builder.append("Messages::");
builder.append(endpoint.name); builder.append(endpoint.name);
builder.append("::"); builder.append("::");
builder.append(message.name); builder.append(message.name);
builder.append("Response"); builder.append("Response");
builder.append(">");
return_type = builder.to_string(); return_type = builder.to_string();
} }
message_generator.set("message.complex_return_type", return_type); message_generator.set("message.complex_return_type", return_type);

View file

@ -48,13 +48,18 @@ public:
} }
void post_message(const Message& message) void post_message(const Message& message)
{
post_message(message.encode());
}
// FIXME: unnecessary copy
void post_message(MessageBuffer buffer)
{ {
// NOTE: If this connection is being shut down, but has not yet been destroyed, // NOTE: If this connection is being shut down, but has not yet been destroyed,
// the socket will be closed. Don't try to send more messages. // the socket will be closed. Don't try to send more messages.
if (!m_socket->is_open()) if (!m_socket->is_open())
return; return;
auto buffer = message.encode();
// Prepend the message size. // Prepend the message size.
uint32_t message_size = buffer.data.size(); uint32_t message_size = buffer.data.size();
buffer.data.prepend(reinterpret_cast<const u8*>(&message_size), sizeof(message_size)); buffer.data.prepend(reinterpret_cast<const u8*>(&message_size), sizeof(message_size));

View file

@ -16,6 +16,7 @@ class BufferStream;
namespace IPC { namespace IPC {
class Message; class Message;
class MessageBuffer;
class Endpoint { class Endpoint {
public: public:
@ -23,7 +24,7 @@ public:
virtual u32 magic() const = 0; virtual u32 magic() const = 0;
virtual String name() const = 0; virtual String name() const = 0;
virtual OwnPtr<Message> handle(const Message&) = 0; virtual OwnPtr<MessageBuffer> handle(const Message&) = 0;
protected: protected:
Endpoint(); Endpoint();

View file

@ -83,13 +83,13 @@ void RequestClient::handle(const Messages::RequestClient::HeadersBecameAvailable
} }
} }
OwnPtr<Messages::RequestClient::CertificateRequestedResponse> RequestClient::handle(const Messages::RequestClient::CertificateRequested& message) Messages::RequestClient::CertificateRequestedResponse RequestClient::handle(const Messages::RequestClient::CertificateRequested& message)
{ {
if (auto request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr))) { if (auto request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr))) {
request->did_request_certificates({}); request->did_request_certificates({});
} }
return make<Messages::RequestClient::CertificateRequestedResponse>(); return {};
} }
} }

View file

@ -35,7 +35,7 @@ private:
virtual void handle(const Messages::RequestClient::RequestProgress&) override; virtual void handle(const Messages::RequestClient::RequestProgress&) override;
virtual void handle(const Messages::RequestClient::RequestFinished&) override; virtual void handle(const Messages::RequestClient::RequestFinished&) override;
virtual OwnPtr<Messages::RequestClient::CertificateRequestedResponse> handle(const Messages::RequestClient::CertificateRequested&) override; virtual Messages::RequestClient::CertificateRequestedResponse handle(const Messages::RequestClient::CertificateRequested&) override;
virtual void handle(const Messages::RequestClient::HeadersBecameAvailable&) override; virtual void handle(const Messages::RequestClient::HeadersBecameAvailable&) override;
HashMap<i32, RefPtr<Request>> m_requests; HashMap<i32, RefPtr<Request>> m_requests;

View file

@ -147,22 +147,20 @@ void WebContentClient::handle(const Messages::WebContentClient::DidJSConsoleOutp
m_view.notify_server_did_js_console_output(message.method(), message.line()); m_view.notify_server_did_js_console_output(message.method(), message.line());
} }
OwnPtr<Messages::WebContentClient::DidRequestAlertResponse> WebContentClient::handle(const Messages::WebContentClient::DidRequestAlert& message) Messages::WebContentClient::DidRequestAlertResponse WebContentClient::handle(const Messages::WebContentClient::DidRequestAlert& message)
{ {
m_view.notify_server_did_request_alert({}, message.message()); m_view.notify_server_did_request_alert({}, message.message());
return make<Messages::WebContentClient::DidRequestAlertResponse>(); return {};
} }
OwnPtr<Messages::WebContentClient::DidRequestConfirmResponse> WebContentClient::handle(const Messages::WebContentClient::DidRequestConfirm& message) Messages::WebContentClient::DidRequestConfirmResponse WebContentClient::handle(const Messages::WebContentClient::DidRequestConfirm& message)
{ {
auto result = m_view.notify_server_did_request_confirm({}, message.message()); return m_view.notify_server_did_request_confirm({}, message.message());
return make<Messages::WebContentClient::DidRequestConfirmResponse>(result);
} }
OwnPtr<Messages::WebContentClient::DidRequestPromptResponse> WebContentClient::handle(const Messages::WebContentClient::DidRequestPrompt& message) Messages::WebContentClient::DidRequestPromptResponse WebContentClient::handle(const Messages::WebContentClient::DidRequestPrompt& message)
{ {
auto result = m_view.notify_server_did_request_prompt({}, message.message(), message.default_()); return m_view.notify_server_did_request_prompt({}, message.message(), message.default_());
return make<Messages::WebContentClient::DidRequestPromptResponse>(result);
} }
void WebContentClient::handle(const Messages::WebContentClient::DidChangeFavicon& message) void WebContentClient::handle(const Messages::WebContentClient::DidChangeFavicon& message)
@ -174,10 +172,9 @@ void WebContentClient::handle(const Messages::WebContentClient::DidChangeFavicon
m_view.notify_server_did_change_favicon(*message.favicon().bitmap()); m_view.notify_server_did_change_favicon(*message.favicon().bitmap());
} }
OwnPtr<Messages::WebContentClient::DidRequestCookieResponse> WebContentClient::handle(const Messages::WebContentClient::DidRequestCookie& message) Messages::WebContentClient::DidRequestCookieResponse WebContentClient::handle(const Messages::WebContentClient::DidRequestCookie& message)
{ {
auto result = m_view.notify_server_did_request_cookie({}, message.url(), static_cast<Cookie::Source>(message.source())); return m_view.notify_server_did_request_cookie({}, message.url(), static_cast<Cookie::Source>(message.source()));
return make<Messages::WebContentClient::DidRequestCookieResponse>(result);
} }
void WebContentClient::handle(const Messages::WebContentClient::DidSetCookie& message) void WebContentClient::handle(const Messages::WebContentClient::DidSetCookie& message)

View file

@ -53,10 +53,10 @@ private:
virtual void handle(const Messages::WebContentClient::DidGetSource&) override; virtual void handle(const Messages::WebContentClient::DidGetSource&) override;
virtual void handle(const Messages::WebContentClient::DidJSConsoleOutput&) override; virtual void handle(const Messages::WebContentClient::DidJSConsoleOutput&) override;
virtual void handle(const Messages::WebContentClient::DidChangeFavicon&) override; virtual void handle(const Messages::WebContentClient::DidChangeFavicon&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestAlertResponse> handle(const Messages::WebContentClient::DidRequestAlert&) override; virtual Messages::WebContentClient::DidRequestAlertResponse handle(const Messages::WebContentClient::DidRequestAlert&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestConfirmResponse> handle(const Messages::WebContentClient::DidRequestConfirm&) override; virtual Messages::WebContentClient::DidRequestConfirmResponse handle(const Messages::WebContentClient::DidRequestConfirm&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestPromptResponse> handle(const Messages::WebContentClient::DidRequestPrompt&) override; virtual Messages::WebContentClient::DidRequestPromptResponse handle(const Messages::WebContentClient::DidRequestPrompt&) override;
virtual OwnPtr<Messages::WebContentClient::DidRequestCookieResponse> handle(const Messages::WebContentClient::DidRequestCookie&) override; virtual Messages::WebContentClient::DidRequestCookieResponse handle(const Messages::WebContentClient::DidRequestCookie&) override;
virtual void handle(const Messages::WebContentClient::DidSetCookie&) override; virtual void handle(const Messages::WebContentClient::DidSetCookie&) override;
OutOfProcessWebView& m_view; OutOfProcessWebView& m_view;

View file

@ -59,82 +59,82 @@ void ClientConnection::did_change_main_mix_volume(Badge<Mixer>, int volume)
post_message(Messages::AudioClient::MainMixVolumeChanged(volume)); post_message(Messages::AudioClient::MainMixVolumeChanged(volume));
} }
OwnPtr<Messages::AudioServer::GreetResponse> ClientConnection::handle(const Messages::AudioServer::Greet&) Messages::AudioServer::GreetResponse ClientConnection::handle(const Messages::AudioServer::Greet&)
{ {
return make<Messages::AudioServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::AudioServer::GetMainMixVolumeResponse> ClientConnection::handle(const Messages::AudioServer::GetMainMixVolume&) Messages::AudioServer::GetMainMixVolumeResponse ClientConnection::handle(const Messages::AudioServer::GetMainMixVolume&)
{ {
return make<Messages::AudioServer::GetMainMixVolumeResponse>(m_mixer.main_volume()); return m_mixer.main_volume();
} }
OwnPtr<Messages::AudioServer::SetMainMixVolumeResponse> ClientConnection::handle(const Messages::AudioServer::SetMainMixVolume& message) Messages::AudioServer::SetMainMixVolumeResponse ClientConnection::handle(const Messages::AudioServer::SetMainMixVolume& message)
{ {
m_mixer.set_main_volume(message.volume()); m_mixer.set_main_volume(message.volume());
return make<Messages::AudioServer::SetMainMixVolumeResponse>(); return {};
} }
OwnPtr<Messages::AudioServer::EnqueueBufferResponse> ClientConnection::handle(const Messages::AudioServer::EnqueueBuffer& message) Messages::AudioServer::EnqueueBufferResponse ClientConnection::handle(const Messages::AudioServer::EnqueueBuffer& message)
{ {
if (!m_queue) if (!m_queue)
m_queue = m_mixer.create_queue(*this); m_queue = m_mixer.create_queue(*this);
if (m_queue->is_full()) if (m_queue->is_full())
return make<Messages::AudioServer::EnqueueBufferResponse>(false); return false;
m_queue->enqueue(Audio::Buffer::create_with_anonymous_buffer(message.buffer(), message.buffer_id(), message.sample_count())); m_queue->enqueue(Audio::Buffer::create_with_anonymous_buffer(message.buffer(), message.buffer_id(), message.sample_count()));
return make<Messages::AudioServer::EnqueueBufferResponse>(true); return true;
} }
OwnPtr<Messages::AudioServer::GetRemainingSamplesResponse> ClientConnection::handle(const Messages::AudioServer::GetRemainingSamples&) Messages::AudioServer::GetRemainingSamplesResponse ClientConnection::handle(const Messages::AudioServer::GetRemainingSamples&)
{ {
int remaining = 0; int remaining = 0;
if (m_queue) if (m_queue)
remaining = m_queue->get_remaining_samples(); remaining = m_queue->get_remaining_samples();
return make<Messages::AudioServer::GetRemainingSamplesResponse>(remaining); return remaining;
} }
OwnPtr<Messages::AudioServer::GetPlayedSamplesResponse> ClientConnection::handle(const Messages::AudioServer::GetPlayedSamples&) Messages::AudioServer::GetPlayedSamplesResponse ClientConnection::handle(const Messages::AudioServer::GetPlayedSamples&)
{ {
int played = 0; int played = 0;
if (m_queue) if (m_queue)
played = m_queue->get_played_samples(); played = m_queue->get_played_samples();
return make<Messages::AudioServer::GetPlayedSamplesResponse>(played); return played;
} }
OwnPtr<Messages::AudioServer::SetPausedResponse> ClientConnection::handle(const Messages::AudioServer::SetPaused& message) Messages::AudioServer::SetPausedResponse ClientConnection::handle(const Messages::AudioServer::SetPaused& message)
{ {
if (m_queue) if (m_queue)
m_queue->set_paused(message.paused()); m_queue->set_paused(message.paused());
return make<Messages::AudioServer::SetPausedResponse>(); return {};
} }
OwnPtr<Messages::AudioServer::ClearBufferResponse> ClientConnection::handle(const Messages::AudioServer::ClearBuffer& message) Messages::AudioServer::ClearBufferResponse ClientConnection::handle(const Messages::AudioServer::ClearBuffer& message)
{ {
if (m_queue) if (m_queue)
m_queue->clear(message.paused()); m_queue->clear(message.paused());
return make<Messages::AudioServer::ClearBufferResponse>(); return {};
} }
OwnPtr<Messages::AudioServer::GetPlayingBufferResponse> ClientConnection::handle(const Messages::AudioServer::GetPlayingBuffer&) Messages::AudioServer::GetPlayingBufferResponse ClientConnection::handle(const Messages::AudioServer::GetPlayingBuffer&)
{ {
int id = -1; int id = -1;
if (m_queue) if (m_queue)
id = m_queue->get_playing_buffer(); id = m_queue->get_playing_buffer();
return make<Messages::AudioServer::GetPlayingBufferResponse>(id); return id;
} }
OwnPtr<Messages::AudioServer::GetMutedResponse> ClientConnection::handle(const Messages::AudioServer::GetMuted&) Messages::AudioServer::GetMutedResponse ClientConnection::handle(const Messages::AudioServer::GetMuted&)
{ {
return make<Messages::AudioServer::GetMutedResponse>(m_mixer.is_muted()); return m_mixer.is_muted();
} }
OwnPtr<Messages::AudioServer::SetMutedResponse> ClientConnection::handle(const Messages::AudioServer::SetMuted& message) Messages::AudioServer::SetMutedResponse ClientConnection::handle(const Messages::AudioServer::SetMuted& message)
{ {
m_mixer.set_muted(message.muted()); m_mixer.set_muted(message.muted());
return make<Messages::AudioServer::SetMutedResponse>(); return {};
} }
} }

View file

@ -36,17 +36,17 @@ public:
static void for_each(Function<void(ClientConnection&)>); static void for_each(Function<void(ClientConnection&)>);
private: private:
virtual OwnPtr<Messages::AudioServer::GreetResponse> handle(const Messages::AudioServer::Greet&) override; virtual Messages::AudioServer::GreetResponse handle(const Messages::AudioServer::Greet&) override;
virtual OwnPtr<Messages::AudioServer::GetMainMixVolumeResponse> handle(const Messages::AudioServer::GetMainMixVolume&) override; virtual Messages::AudioServer::GetMainMixVolumeResponse handle(const Messages::AudioServer::GetMainMixVolume&) override;
virtual OwnPtr<Messages::AudioServer::SetMainMixVolumeResponse> handle(const Messages::AudioServer::SetMainMixVolume&) override; virtual Messages::AudioServer::SetMainMixVolumeResponse handle(const Messages::AudioServer::SetMainMixVolume&) override;
virtual OwnPtr<Messages::AudioServer::EnqueueBufferResponse> handle(const Messages::AudioServer::EnqueueBuffer&) override; virtual Messages::AudioServer::EnqueueBufferResponse handle(const Messages::AudioServer::EnqueueBuffer&) override;
virtual OwnPtr<Messages::AudioServer::GetRemainingSamplesResponse> handle(const Messages::AudioServer::GetRemainingSamples&) override; virtual Messages::AudioServer::GetRemainingSamplesResponse handle(const Messages::AudioServer::GetRemainingSamples&) override;
virtual OwnPtr<Messages::AudioServer::GetPlayedSamplesResponse> handle(const Messages::AudioServer::GetPlayedSamples&) override; virtual Messages::AudioServer::GetPlayedSamplesResponse handle(const Messages::AudioServer::GetPlayedSamples&) override;
virtual OwnPtr<Messages::AudioServer::SetPausedResponse> handle(const Messages::AudioServer::SetPaused&) override; virtual Messages::AudioServer::SetPausedResponse handle(const Messages::AudioServer::SetPaused&) override;
virtual OwnPtr<Messages::AudioServer::ClearBufferResponse> handle(const Messages::AudioServer::ClearBuffer&) override; virtual Messages::AudioServer::ClearBufferResponse handle(const Messages::AudioServer::ClearBuffer&) override;
virtual OwnPtr<Messages::AudioServer::GetPlayingBufferResponse> handle(const Messages::AudioServer::GetPlayingBuffer&) override; virtual Messages::AudioServer::GetPlayingBufferResponse handle(const Messages::AudioServer::GetPlayingBuffer&) override;
virtual OwnPtr<Messages::AudioServer::GetMutedResponse> handle(const Messages::AudioServer::GetMuted&) override; virtual Messages::AudioServer::GetMutedResponse handle(const Messages::AudioServer::GetMuted&) override;
virtual OwnPtr<Messages::AudioServer::SetMutedResponse> handle(const Messages::AudioServer::SetMuted&) override; virtual Messages::AudioServer::SetMutedResponse handle(const Messages::AudioServer::SetMuted&) override;
Mixer& m_mixer; Mixer& m_mixer;
RefPtr<BufferQueue> m_queue; RefPtr<BufferQueue> m_queue;

View file

@ -35,21 +35,21 @@ void ClientConnection::die()
s_connections.remove(client_id()); s_connections.remove(client_id());
} }
OwnPtr<Messages::ClipboardServer::GreetResponse> ClientConnection::handle(const Messages::ClipboardServer::Greet&) Messages::ClipboardServer::GreetResponse ClientConnection::handle(const Messages::ClipboardServer::Greet&)
{ {
return make<Messages::ClipboardServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::ClipboardServer::SetClipboardDataResponse> ClientConnection::handle(const Messages::ClipboardServer::SetClipboardData& message) Messages::ClipboardServer::SetClipboardDataResponse ClientConnection::handle(const Messages::ClipboardServer::SetClipboardData& message)
{ {
Storage::the().set_data(message.data(), message.mime_type(), message.metadata().entries()); Storage::the().set_data(message.data(), message.mime_type(), message.metadata().entries());
return make<Messages::ClipboardServer::SetClipboardDataResponse>(); return {};
} }
OwnPtr<Messages::ClipboardServer::GetClipboardDataResponse> ClientConnection::handle(const Messages::ClipboardServer::GetClipboardData&) Messages::ClipboardServer::GetClipboardDataResponse ClientConnection::handle(const Messages::ClipboardServer::GetClipboardData&)
{ {
auto& storage = Storage::the(); auto& storage = Storage::the();
return make<Messages::ClipboardServer::GetClipboardDataResponse>(storage.buffer(), storage.mime_type(), storage.metadata()); return { storage.buffer(), storage.mime_type(), storage.metadata() };
} }
void ClientConnection::notify_about_clipboard_change() void ClientConnection::notify_about_clipboard_change()

View file

@ -30,9 +30,9 @@ public:
void notify_about_clipboard_change(); void notify_about_clipboard_change();
private: private:
virtual OwnPtr<Messages::ClipboardServer::GreetResponse> handle(const Messages::ClipboardServer::Greet&) override; virtual Messages::ClipboardServer::GreetResponse handle(const Messages::ClipboardServer::Greet&) override;
virtual OwnPtr<Messages::ClipboardServer::GetClipboardDataResponse> handle(const Messages::ClipboardServer::GetClipboardData&) override; virtual Messages::ClipboardServer::GetClipboardDataResponse handle(const Messages::ClipboardServer::GetClipboardData&) override;
virtual OwnPtr<Messages::ClipboardServer::SetClipboardDataResponse> handle(const Messages::ClipboardServer::SetClipboardData&) override; virtual Messages::ClipboardServer::SetClipboardDataResponse handle(const Messages::ClipboardServer::SetClipboardData&) override;
}; };
} }

View file

@ -30,24 +30,24 @@ void ClientConnection::die()
exit(0); exit(0);
} }
OwnPtr<Messages::ImageDecoderServer::GreetResponse> ClientConnection::handle(const Messages::ImageDecoderServer::Greet&) Messages::ImageDecoderServer::GreetResponse ClientConnection::handle(const Messages::ImageDecoderServer::Greet&)
{ {
return make<Messages::ImageDecoderServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::ImageDecoderServer::DecodeImageResponse> ClientConnection::handle(const Messages::ImageDecoderServer::DecodeImage& message) Messages::ImageDecoderServer::DecodeImageResponse ClientConnection::handle(const Messages::ImageDecoderServer::DecodeImage& message)
{ {
auto encoded_buffer = message.data(); auto encoded_buffer = message.data();
if (!encoded_buffer.is_valid()) { if (!encoded_buffer.is_valid()) {
dbgln_if(IMAGE_DECODER_DEBUG, "Encoded data is invalid"); dbgln_if(IMAGE_DECODER_DEBUG, "Encoded data is invalid");
return {}; return nullptr;
} }
auto decoder = Gfx::ImageDecoder::create(encoded_buffer.data<u8>(), encoded_buffer.size()); auto decoder = Gfx::ImageDecoder::create(encoded_buffer.data<u8>(), encoded_buffer.size());
if (!decoder->frame_count()) { if (!decoder->frame_count()) {
dbgln_if(IMAGE_DECODER_DEBUG, "Could not decode image from encoded data"); dbgln_if(IMAGE_DECODER_DEBUG, "Could not decode image from encoded data");
return make<Messages::ImageDecoderServer::DecodeImageResponse>(false, 0, Vector<Gfx::ShareableBitmap> {}, Vector<u32> {}); return { false, 0, Vector<Gfx::ShareableBitmap> {}, Vector<u32> {} };
} }
Vector<Gfx::ShareableBitmap> bitmaps; Vector<Gfx::ShareableBitmap> bitmaps;
@ -68,7 +68,7 @@ OwnPtr<Messages::ImageDecoderServer::DecodeImageResponse> ClientConnection::hand
durations.append(frame.duration); durations.append(frame.duration);
} }
return make<Messages::ImageDecoderServer::DecodeImageResponse>(decoder->is_animated(), decoder->loop_count(), bitmaps, durations); return { decoder->is_animated(), decoder->loop_count(), bitmaps, durations };
} }
} }

View file

@ -27,8 +27,8 @@ public:
virtual void die() override; virtual void die() override;
private: private:
virtual OwnPtr<Messages::ImageDecoderServer::GreetResponse> handle(const Messages::ImageDecoderServer::Greet&) override; virtual Messages::ImageDecoderServer::GreetResponse handle(const Messages::ImageDecoderServer::Greet&) override;
virtual OwnPtr<Messages::ImageDecoderServer::DecodeImageResponse> handle(const Messages::ImageDecoderServer::DecodeImage&) override; virtual Messages::ImageDecoderServer::DecodeImageResponse handle(const Messages::ImageDecoderServer::DecodeImage&) override;
}; };
} }

View file

@ -28,12 +28,12 @@ void ClientConnection::die()
s_connections.remove(client_id()); s_connections.remove(client_id());
} }
OwnPtr<Messages::LaunchServer::GreetResponse> ClientConnection::handle(const Messages::LaunchServer::Greet&) Messages::LaunchServer::GreetResponse ClientConnection::handle(const Messages::LaunchServer::Greet&)
{ {
return make<Messages::LaunchServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::LaunchServer::OpenURLResponse> ClientConnection::handle(const Messages::LaunchServer::OpenURL& request) Messages::LaunchServer::OpenURLResponse ClientConnection::handle(const Messages::LaunchServer::OpenURL& request)
{ {
if (!m_allowlist.is_empty()) { if (!m_allowlist.is_empty()) {
bool allowed = false; bool allowed = false;
@ -47,30 +47,27 @@ OwnPtr<Messages::LaunchServer::OpenURLResponse> ClientConnection::handle(const M
if (!allowed) { if (!allowed) {
// You are not on the list, go home! // You are not on the list, go home!
did_misbehave(String::formatted("Client requested a combination of handler/URL that was not on the list: '{}' with '{}'", request.handler_name(), request.url()).characters()); did_misbehave(String::formatted("Client requested a combination of handler/URL that was not on the list: '{}' with '{}'", request.handler_name(), request.url()).characters());
return {}; return nullptr;
} }
} }
URL url(request.url()); URL url(request.url());
auto result = Launcher::the().open_url(url, request.handler_name()); return Launcher::the().open_url(url, request.handler_name());
return make<Messages::LaunchServer::OpenURLResponse>(result);
} }
OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> ClientConnection::handle(const Messages::LaunchServer::GetHandlersForURL& request) Messages::LaunchServer::GetHandlersForURLResponse ClientConnection::handle(const Messages::LaunchServer::GetHandlersForURL& request)
{ {
URL url(request.url()); URL url(request.url());
auto result = Launcher::the().handlers_for_url(url); return Launcher::the().handlers_for_url(url);
return make<Messages::LaunchServer::GetHandlersForURLResponse>(result);
} }
OwnPtr<Messages::LaunchServer::GetHandlersWithDetailsForURLResponse> ClientConnection::handle(const Messages::LaunchServer::GetHandlersWithDetailsForURL& request) Messages::LaunchServer::GetHandlersWithDetailsForURLResponse ClientConnection::handle(const Messages::LaunchServer::GetHandlersWithDetailsForURL& request)
{ {
URL url(request.url()); URL url(request.url());
auto result = Launcher::the().handlers_with_details_for_url(url); return Launcher::the().handlers_with_details_for_url(url);
return make<Messages::LaunchServer::GetHandlersWithDetailsForURLResponse>(result);
} }
OwnPtr<Messages::LaunchServer::AddAllowedURLResponse> ClientConnection::handle(const Messages::LaunchServer::AddAllowedURL& request) Messages::LaunchServer::AddAllowedURLResponse ClientConnection::handle(const Messages::LaunchServer::AddAllowedURL& request)
{ {
if (m_allowlist_is_sealed) { if (m_allowlist_is_sealed) {
did_misbehave("Got request to add more allowed handlers after list was sealed"); did_misbehave("Got request to add more allowed handlers after list was sealed");
@ -84,10 +81,10 @@ OwnPtr<Messages::LaunchServer::AddAllowedURLResponse> ClientConnection::handle(c
m_allowlist.empend(String(), false, Vector<URL> { request.url() }); m_allowlist.empend(String(), false, Vector<URL> { request.url() });
return make<Messages::LaunchServer::AddAllowedURLResponse>(); return {};
} }
OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse> ClientConnection::handle(const Messages::LaunchServer::AddAllowedHandlerWithAnyURL& request) Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse ClientConnection::handle(const Messages::LaunchServer::AddAllowedHandlerWithAnyURL& request)
{ {
if (m_allowlist_is_sealed) { if (m_allowlist_is_sealed) {
did_misbehave("Got request to add more allowed handlers after list was sealed"); did_misbehave("Got request to add more allowed handlers after list was sealed");
@ -101,10 +98,10 @@ OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse> ClientConnec
m_allowlist.empend(request.handler_name(), true, Vector<URL>()); m_allowlist.empend(request.handler_name(), true, Vector<URL>());
return make<Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse>(); return {};
} }
OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse> ClientConnection::handle(const Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLs& request) Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse ClientConnection::handle(const Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLs& request)
{ {
if (m_allowlist_is_sealed) { if (m_allowlist_is_sealed) {
did_misbehave("Got request to add more allowed handlers after list was sealed"); did_misbehave("Got request to add more allowed handlers after list was sealed");
@ -123,17 +120,17 @@ OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse> Cl
m_allowlist.empend(request.handler_name(), false, request.urls()); m_allowlist.empend(request.handler_name(), false, request.urls());
return make<Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse>(); return {};
} }
OwnPtr<Messages::LaunchServer::SealAllowlistResponse> ClientConnection::handle(const Messages::LaunchServer::SealAllowlist&) Messages::LaunchServer::SealAllowlistResponse ClientConnection::handle(const Messages::LaunchServer::SealAllowlist&)
{ {
if (m_allowlist_is_sealed) { if (m_allowlist_is_sealed) {
did_misbehave("Got more than one request to seal the allowed handlers list"); did_misbehave("Got more than one request to seal the allowed handlers list");
return {}; return {};
} }
return make<Messages::LaunchServer::SealAllowlistResponse>(); return {};
} }
} }

View file

@ -23,14 +23,14 @@ public:
private: private:
explicit ClientConnection(NonnullRefPtr<Core::LocalSocket>, int client_id); explicit ClientConnection(NonnullRefPtr<Core::LocalSocket>, int client_id);
virtual OwnPtr<Messages::LaunchServer::GreetResponse> handle(const Messages::LaunchServer::Greet&) override; virtual Messages::LaunchServer::GreetResponse handle(const Messages::LaunchServer::Greet&) override;
virtual OwnPtr<Messages::LaunchServer::OpenURLResponse> handle(const Messages::LaunchServer::OpenURL&) override; virtual Messages::LaunchServer::OpenURLResponse handle(const Messages::LaunchServer::OpenURL&) override;
virtual OwnPtr<Messages::LaunchServer::GetHandlersForURLResponse> handle(const Messages::LaunchServer::GetHandlersForURL&) override; virtual Messages::LaunchServer::GetHandlersForURLResponse handle(const Messages::LaunchServer::GetHandlersForURL&) override;
virtual OwnPtr<Messages::LaunchServer::GetHandlersWithDetailsForURLResponse> handle(const Messages::LaunchServer::GetHandlersWithDetailsForURL&) override; virtual Messages::LaunchServer::GetHandlersWithDetailsForURLResponse handle(const Messages::LaunchServer::GetHandlersWithDetailsForURL&) override;
virtual OwnPtr<Messages::LaunchServer::AddAllowedURLResponse> handle(const Messages::LaunchServer::AddAllowedURL&) override; virtual Messages::LaunchServer::AddAllowedURLResponse handle(const Messages::LaunchServer::AddAllowedURL&) override;
virtual OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse> handle(const Messages::LaunchServer::AddAllowedHandlerWithAnyURL&) override; virtual Messages::LaunchServer::AddAllowedHandlerWithAnyURLResponse handle(const Messages::LaunchServer::AddAllowedHandlerWithAnyURL&) override;
virtual OwnPtr<Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse> handle(const Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLs&) override; virtual Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLsResponse handle(const Messages::LaunchServer::AddAllowedHandlerWithOnlySpecificURLs&) override;
virtual OwnPtr<Messages::LaunchServer::SealAllowlistResponse> handle(const Messages::LaunchServer::SealAllowlist&) override; virtual Messages::LaunchServer::SealAllowlistResponse handle(const Messages::LaunchServer::SealAllowlist&) override;
struct AllowlistEntry { struct AllowlistEntry {
String handler_name; String handler_name;

View file

@ -28,22 +28,22 @@ void ClientConnection::die()
s_connections.remove(client_id()); s_connections.remove(client_id());
} }
OwnPtr<Messages::LookupServer::LookupNameResponse> ClientConnection::handle(const Messages::LookupServer::LookupName& message) Messages::LookupServer::LookupNameResponse ClientConnection::handle(const Messages::LookupServer::LookupName& message)
{ {
auto answers = LookupServer::the().lookup(message.name(), T_A); auto answers = LookupServer::the().lookup(message.name(), T_A);
if (answers.is_empty()) if (answers.is_empty())
return make<Messages::LookupServer::LookupNameResponse>(1, Vector<String>()); return { 1, Vector<String>() };
Vector<String> addresses; Vector<String> addresses;
for (auto& answer : answers) { for (auto& answer : answers) {
addresses.append(answer.record_data()); addresses.append(answer.record_data());
} }
return make<Messages::LookupServer::LookupNameResponse>(0, move(addresses)); return { 0, move(addresses) };
} }
OwnPtr<Messages::LookupServer::LookupAddressResponse> ClientConnection::handle(const Messages::LookupServer::LookupAddress& message) Messages::LookupServer::LookupAddressResponse ClientConnection::handle(const Messages::LookupServer::LookupAddress& message)
{ {
if (message.address().length() != 4) if (message.address().length() != 4)
return make<Messages::LookupServer::LookupAddressResponse>(1, String()); return { 1, String() };
IPv4Address address { (const u8*)message.address().characters() }; IPv4Address address { (const u8*)message.address().characters() };
auto name = String::formatted("{}.{}.{}.{}.in-addr.arpa", auto name = String::formatted("{}.{}.{}.{}.in-addr.arpa",
address[3], address[3],
@ -52,7 +52,7 @@ OwnPtr<Messages::LookupServer::LookupAddressResponse> ClientConnection::handle(c
address[0]); address[0]);
auto answers = LookupServer::the().lookup(name, T_PTR); auto answers = LookupServer::the().lookup(name, T_PTR);
if (answers.is_empty()) if (answers.is_empty())
return make<Messages::LookupServer::LookupAddressResponse>(1, String()); return { 1, String() };
return make<Messages::LookupServer::LookupAddressResponse>(0, answers[0].record_data()); return { 0, answers[0].record_data() };
} }
} }

View file

@ -26,8 +26,8 @@ public:
virtual void die() override; virtual void die() override;
private: private:
virtual OwnPtr<Messages::LookupServer::LookupNameResponse> handle(const Messages::LookupServer::LookupName&) override; virtual Messages::LookupServer::LookupNameResponse handle(const Messages::LookupServer::LookupName&) override;
virtual OwnPtr<Messages::LookupServer::LookupAddressResponse> handle(const Messages::LookupServer::LookupAddress&) override; virtual Messages::LookupServer::LookupAddressResponse handle(const Messages::LookupServer::LookupAddress&) override;
}; };
} }

View file

@ -28,50 +28,50 @@ void ClientConnection::die()
s_connections.remove(client_id()); s_connections.remove(client_id());
} }
OwnPtr<Messages::NotificationServer::GreetResponse> ClientConnection::handle(const Messages::NotificationServer::Greet&) Messages::NotificationServer::GreetResponse ClientConnection::handle(const Messages::NotificationServer::Greet&)
{ {
return make<Messages::NotificationServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::NotificationServer::ShowNotificationResponse> ClientConnection::handle(const Messages::NotificationServer::ShowNotification& message) Messages::NotificationServer::ShowNotificationResponse ClientConnection::handle(const Messages::NotificationServer::ShowNotification& message)
{ {
auto window = NotificationWindow::construct(client_id(), message.text(), message.title(), message.icon()); auto window = NotificationWindow::construct(client_id(), message.text(), message.title(), message.icon());
window->show(); window->show();
return make<Messages::NotificationServer::ShowNotificationResponse>(); return {};
} }
OwnPtr<Messages::NotificationServer::CloseNotificationResponse> ClientConnection::handle([[maybe_unused]] const Messages::NotificationServer::CloseNotification& message) Messages::NotificationServer::CloseNotificationResponse ClientConnection::handle([[maybe_unused]] const Messages::NotificationServer::CloseNotification& message)
{ {
auto window = NotificationWindow::get_window_by_id(client_id()); auto window = NotificationWindow::get_window_by_id(client_id());
if (window) { if (window) {
window->close(); window->close();
} }
return make<Messages::NotificationServer::CloseNotificationResponse>(); return {};
} }
OwnPtr<Messages::NotificationServer::UpdateNotificationIconResponse> ClientConnection::handle(const Messages::NotificationServer::UpdateNotificationIcon& message) Messages::NotificationServer::UpdateNotificationIconResponse ClientConnection::handle(const Messages::NotificationServer::UpdateNotificationIcon& message)
{ {
auto window = NotificationWindow::get_window_by_id(client_id()); auto window = NotificationWindow::get_window_by_id(client_id());
if (window) { if (window) {
window->set_image(message.icon()); window->set_image(message.icon());
} }
return make<Messages::NotificationServer::UpdateNotificationIconResponse>(window); return !!window;
} }
OwnPtr<Messages::NotificationServer::UpdateNotificationTextResponse> ClientConnection::handle(const Messages::NotificationServer::UpdateNotificationText& message) Messages::NotificationServer::UpdateNotificationTextResponse ClientConnection::handle(const Messages::NotificationServer::UpdateNotificationText& message)
{ {
auto window = NotificationWindow::get_window_by_id(client_id()); auto window = NotificationWindow::get_window_by_id(client_id());
if (window) { if (window) {
window->set_text(message.text()); window->set_text(message.text());
window->set_title(message.title()); window->set_title(message.title());
} }
return make<Messages::NotificationServer::UpdateNotificationTextResponse>(window); return !!window;
} }
OwnPtr<Messages::NotificationServer::IsShowingResponse> ClientConnection::handle(const Messages::NotificationServer::IsShowing&) Messages::NotificationServer::IsShowingResponse ClientConnection::handle(const Messages::NotificationServer::IsShowing&)
{ {
auto window = NotificationWindow::get_window_by_id(client_id()); auto window = NotificationWindow::get_window_by_id(client_id());
return make<Messages::NotificationServer::IsShowingResponse>(window); return !!window;
} }
} }

View file

@ -23,12 +23,12 @@ public:
private: private:
explicit ClientConnection(NonnullRefPtr<Core::LocalSocket>, int client_id); explicit ClientConnection(NonnullRefPtr<Core::LocalSocket>, int client_id);
virtual OwnPtr<Messages::NotificationServer::GreetResponse> handle(const Messages::NotificationServer::Greet&) override; virtual Messages::NotificationServer::GreetResponse handle(const Messages::NotificationServer::Greet&) override;
virtual OwnPtr<Messages::NotificationServer::ShowNotificationResponse> handle(const Messages::NotificationServer::ShowNotification&) override; virtual Messages::NotificationServer::ShowNotificationResponse handle(const Messages::NotificationServer::ShowNotification&) override;
virtual OwnPtr<Messages::NotificationServer::CloseNotificationResponse> handle(const Messages::NotificationServer::CloseNotification& message) override; virtual Messages::NotificationServer::CloseNotificationResponse handle(const Messages::NotificationServer::CloseNotification& message) override;
virtual OwnPtr<Messages::NotificationServer::UpdateNotificationIconResponse> handle(const Messages::NotificationServer::UpdateNotificationIcon& message) override; virtual Messages::NotificationServer::UpdateNotificationIconResponse handle(const Messages::NotificationServer::UpdateNotificationIcon& message) override;
virtual OwnPtr<Messages::NotificationServer::UpdateNotificationTextResponse> handle(const Messages::NotificationServer::UpdateNotificationText& message) override; virtual Messages::NotificationServer::UpdateNotificationTextResponse handle(const Messages::NotificationServer::UpdateNotificationText& message) override;
virtual OwnPtr<Messages::NotificationServer::IsShowingResponse> handle(const Messages::NotificationServer::IsShowing& message) override; virtual Messages::NotificationServer::IsShowingResponse handle(const Messages::NotificationServer::IsShowing& message) override;
}; };
} }

View file

@ -31,36 +31,36 @@ void ClientConnection::die()
Core::EventLoop::current().quit(0); Core::EventLoop::current().quit(0);
} }
OwnPtr<Messages::RequestServer::IsSupportedProtocolResponse> ClientConnection::handle(const Messages::RequestServer::IsSupportedProtocol& message) Messages::RequestServer::IsSupportedProtocolResponse ClientConnection::handle(const Messages::RequestServer::IsSupportedProtocol& message)
{ {
bool supported = Protocol::find_by_name(message.protocol().to_lowercase()); bool supported = Protocol::find_by_name(message.protocol().to_lowercase());
return make<Messages::RequestServer::IsSupportedProtocolResponse>(supported); return supported;
} }
OwnPtr<Messages::RequestServer::StartRequestResponse> ClientConnection::handle(const Messages::RequestServer::StartRequest& message) Messages::RequestServer::StartRequestResponse ClientConnection::handle(const Messages::RequestServer::StartRequest& message)
{ {
const auto& url = message.url(); const auto& url = message.url();
if (!url.is_valid()) { if (!url.is_valid()) {
dbgln("StartRequest: Invalid URL requested: '{}'", url); dbgln("StartRequest: Invalid URL requested: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {}); return { -1, Optional<IPC::File> {} };
} }
auto* protocol = Protocol::find_by_name(url.protocol()); auto* protocol = Protocol::find_by_name(url.protocol());
if (!protocol) { if (!protocol) {
dbgln("StartRequest: No protocol handler for URL: '{}'", url); dbgln("StartRequest: No protocol handler for URL: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {}); return { -1, Optional<IPC::File> {} };
} }
auto request = protocol->start_request(*this, message.method(), url, message.request_headers().entries(), message.request_body()); auto request = protocol->start_request(*this, message.method(), url, message.request_headers().entries(), message.request_body());
if (!request) { if (!request) {
dbgln("StartRequest: Protocol handler failed to start request: '{}'", url); dbgln("StartRequest: Protocol handler failed to start request: '{}'", url);
return make<Messages::RequestServer::StartRequestResponse>(-1, Optional<IPC::File> {}); return { -1, Optional<IPC::File> {} };
} }
auto id = request->id(); auto id = request->id();
auto fd = request->request_fd(); auto fd = request->request_fd();
m_requests.set(id, move(request)); m_requests.set(id, move(request));
return make<Messages::RequestServer::StartRequestResponse>(id, IPC::File(fd, IPC::File::CloseAfterSending)); return { id, IPC::File(fd, IPC::File::CloseAfterSending) };
} }
OwnPtr<Messages::RequestServer::StopRequestResponse> ClientConnection::handle(const Messages::RequestServer::StopRequest& message) Messages::RequestServer::StopRequestResponse ClientConnection::handle(const Messages::RequestServer::StopRequest& message)
{ {
auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr)); auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr));
bool success = false; bool success = false;
@ -69,7 +69,7 @@ OwnPtr<Messages::RequestServer::StopRequestResponse> ClientConnection::handle(co
m_requests.remove(message.request_id()); m_requests.remove(message.request_id());
success = true; success = true;
} }
return make<Messages::RequestServer::StopRequestResponse>(success); return success;
} }
void ClientConnection::did_receive_headers(Badge<Request>, Request& request) void ClientConnection::did_receive_headers(Badge<Request>, Request& request)
@ -100,12 +100,12 @@ void ClientConnection::did_request_certificates(Badge<Request>, Request& request
post_message(Messages::RequestClient::CertificateRequested(request.id())); post_message(Messages::RequestClient::CertificateRequested(request.id()));
} }
OwnPtr<Messages::RequestServer::GreetResponse> ClientConnection::handle(const Messages::RequestServer::Greet&) Messages::RequestServer::GreetResponse ClientConnection::handle(const Messages::RequestServer::Greet&)
{ {
return make<Messages::RequestServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::RequestServer::SetCertificateResponse> ClientConnection::handle(const Messages::RequestServer::SetCertificate& message) Messages::RequestServer::SetCertificateResponse ClientConnection::handle(const Messages::RequestServer::SetCertificate& message)
{ {
auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr)); auto* request = const_cast<Request*>(m_requests.get(message.request_id()).value_or(nullptr));
bool success = false; bool success = false;
@ -113,7 +113,7 @@ OwnPtr<Messages::RequestServer::SetCertificateResponse> ClientConnection::handle
request->set_certificate(message.certificate(), message.key()); request->set_certificate(message.certificate(), message.key());
success = true; success = true;
} }
return make<Messages::RequestServer::SetCertificateResponse>(success); return success;
} }
} }

View file

@ -31,11 +31,11 @@ public:
void did_request_certificates(Badge<Request>, Request&); void did_request_certificates(Badge<Request>, Request&);
private: private:
virtual OwnPtr<Messages::RequestServer::GreetResponse> handle(const Messages::RequestServer::Greet&) override; virtual Messages::RequestServer::GreetResponse handle(const Messages::RequestServer::Greet&) override;
virtual OwnPtr<Messages::RequestServer::IsSupportedProtocolResponse> handle(const Messages::RequestServer::IsSupportedProtocol&) override; virtual Messages::RequestServer::IsSupportedProtocolResponse handle(const Messages::RequestServer::IsSupportedProtocol&) override;
virtual OwnPtr<Messages::RequestServer::StartRequestResponse> handle(const Messages::RequestServer::StartRequest&) override; virtual Messages::RequestServer::StartRequestResponse handle(const Messages::RequestServer::StartRequest&) override;
virtual OwnPtr<Messages::RequestServer::StopRequestResponse> handle(const Messages::RequestServer::StopRequest&) override; virtual Messages::RequestServer::StopRequestResponse handle(const Messages::RequestServer::StopRequest&) override;
virtual OwnPtr<Messages::RequestServer::SetCertificateResponse> handle(const Messages::RequestServer::SetCertificate&) override; virtual Messages::RequestServer::SetCertificateResponse handle(const Messages::RequestServer::SetCertificate&) override;
HashMap<i32, OwnPtr<Request>> m_requests; HashMap<i32, OwnPtr<Request>> m_requests;
}; };

View file

@ -35,12 +35,12 @@ void ClientConnection::die()
s_connections.remove(client_id()); s_connections.remove(client_id());
} }
OwnPtr<Messages::SymbolServer::GreetResponse> ClientConnection::handle(const Messages::SymbolServer::Greet&) Messages::SymbolServer::GreetResponse ClientConnection::handle(const Messages::SymbolServer::Greet&)
{ {
return make<Messages::SymbolServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::SymbolServer::SymbolicateResponse> ClientConnection::handle(const Messages::SymbolServer::Symbolicate& message) Messages::SymbolServer::SymbolicateResponse ClientConnection::handle(const Messages::SymbolServer::Symbolicate& message)
{ {
auto path = message.path(); auto path = message.path();
if (!s_cache.contains(path)) { if (!s_cache.contains(path)) {
@ -48,13 +48,13 @@ OwnPtr<Messages::SymbolServer::SymbolicateResponse> ClientConnection::handle(con
if (mapped_file.is_error()) { if (mapped_file.is_error()) {
dbgln("Failed to map {}: {}", path, mapped_file.error().string()); dbgln("Failed to map {}: {}", path, mapped_file.error().string());
s_cache.set(path, {}); s_cache.set(path, {});
return make<Messages::SymbolServer::SymbolicateResponse>(false, String {}, 0, String {}, 0); return { false, String {}, 0, String {}, 0 };
} }
auto elf = make<ELF::Image>(mapped_file.value()->bytes()); auto elf = make<ELF::Image>(mapped_file.value()->bytes());
if (!elf->is_valid()) { if (!elf->is_valid()) {
dbgln("ELF not valid: {}", path); dbgln("ELF not valid: {}", path);
s_cache.set(path, {}); s_cache.set(path, {});
return make<Messages::SymbolServer::SymbolicateResponse>(false, String {}, 0, String {}, 0); return { false, String {}, 0, String {}, 0 };
} }
Debug::DebugInfo debug_info(move(elf)); Debug::DebugInfo debug_info(move(elf));
auto cached_elf = make<CachedELF>(mapped_file.release_value(), move(debug_info)); auto cached_elf = make<CachedELF>(mapped_file.release_value(), move(debug_info));
@ -66,7 +66,7 @@ OwnPtr<Messages::SymbolServer::SymbolicateResponse> ClientConnection::handle(con
auto& cached_elf = it->value; auto& cached_elf = it->value;
if (!cached_elf) if (!cached_elf)
return make<Messages::SymbolServer::SymbolicateResponse>(false, String {}, 0, String {}, 0); return { false, String {}, 0, String {}, 0 };
u32 offset = 0; u32 offset = 0;
auto symbol = cached_elf->debug_info.elf().symbolicate(message.address(), &offset); auto symbol = cached_elf->debug_info.elf().symbolicate(message.address(), &offset);
@ -78,7 +78,7 @@ OwnPtr<Messages::SymbolServer::SymbolicateResponse> ClientConnection::handle(con
line_number = source_position.value().line_number; line_number = source_position.value().line_number;
} }
return make<Messages::SymbolServer::SymbolicateResponse>(true, symbol, offset, filename, line_number); return { true, symbol, offset, filename, line_number };
} }
} }

View file

@ -27,8 +27,8 @@ public:
virtual void die() override; virtual void die() override;
private: private:
virtual OwnPtr<Messages::SymbolServer::GreetResponse> handle(const Messages::SymbolServer::Greet&) override; virtual Messages::SymbolServer::GreetResponse handle(const Messages::SymbolServer::Greet&) override;
virtual OwnPtr<Messages::SymbolServer::SymbolicateResponse> handle(const Messages::SymbolServer::Symbolicate&) override; virtual Messages::SymbolServer::SymbolicateResponse handle(const Messages::SymbolServer::Symbolicate&) override;
}; };
} }

View file

@ -58,9 +58,9 @@ const Web::Page& ClientConnection::page() const
return m_page_host->page(); return m_page_host->page();
} }
OwnPtr<Messages::WebContentServer::GreetResponse> ClientConnection::handle(const Messages::WebContentServer::Greet&) Messages::WebContentServer::GreetResponse ClientConnection::handle(const Messages::WebContentServer::Greet&)
{ {
return make<Messages::WebContentServer::GreetResponse>(); return {};
} }
void ClientConnection::handle(const Messages::WebContentServer::UpdateSystemTheme& message) void ClientConnection::handle(const Messages::WebContentServer::UpdateSystemTheme& message)

View file

@ -33,7 +33,7 @@ private:
Web::Page& page(); Web::Page& page();
const Web::Page& page() const; const Web::Page& page() const;
virtual OwnPtr<Messages::WebContentServer::GreetResponse> handle(const Messages::WebContentServer::Greet&) override; virtual Messages::WebContentServer::GreetResponse handle(const Messages::WebContentServer::Greet&) override;
virtual void handle(const Messages::WebContentServer::UpdateSystemTheme&) override; virtual void handle(const Messages::WebContentServer::UpdateSystemTheme&) override;
virtual void handle(const Messages::WebContentServer::UpdateScreenRect&) override; virtual void handle(const Messages::WebContentServer::UpdateScreenRect&) override;
virtual void handle(const Messages::WebContentServer::LoadURL&) override; virtual void handle(const Messages::WebContentServer::LoadURL&) override;

View file

@ -31,17 +31,17 @@ void ClientConnection::die()
Core::EventLoop::current().quit(0); Core::EventLoop::current().quit(0);
} }
OwnPtr<Messages::WebSocketServer::GreetResponse> ClientConnection::handle(const Messages::WebSocketServer::Greet&) Messages::WebSocketServer::GreetResponse ClientConnection::handle(const Messages::WebSocketServer::Greet&)
{ {
return make<Messages::WebSocketServer::GreetResponse>(); return {};
} }
OwnPtr<Messages::WebSocketServer::ConnectResponse> ClientConnection::handle(const Messages::WebSocketServer::Connect& message) Messages::WebSocketServer::ConnectResponse ClientConnection::handle(const Messages::WebSocketServer::Connect& message)
{ {
const auto& url = message.url(); const auto& url = message.url();
if (!url.is_valid()) { if (!url.is_valid()) {
dbgln("WebSocket::Connect: Invalid URL requested: '{}'", url); dbgln("WebSocket::Connect: Invalid URL requested: '{}'", url);
return make<Messages::WebSocketServer::ConnectResponse>(-1); return -1;
} }
ConnectionInfo connection_info(url); ConnectionInfo connection_info(url);
@ -73,16 +73,16 @@ OwnPtr<Messages::WebSocketServer::ConnectResponse> ClientConnection::handle(cons
connection->start(); connection->start();
m_connections.set(id, move(connection)); m_connections.set(id, move(connection));
return make<Messages::WebSocketServer::ConnectResponse>(id); return id;
} }
OwnPtr<Messages::WebSocketServer::ReadyStateResponse> ClientConnection::handle(const Messages::WebSocketServer::ReadyState& message) Messages::WebSocketServer::ReadyStateResponse ClientConnection::handle(const Messages::WebSocketServer::ReadyState& message)
{ {
RefPtr<WebSocket> connection = m_connections.get(message.connection_id()).value_or({}); RefPtr<WebSocket> connection = m_connections.get(message.connection_id()).value_or({});
if (connection) { if (connection) {
return make<Messages::WebSocketServer::ReadyStateResponse>((u32)connection->ready_state()); return (u32)connection->ready_state();
} }
return make<Messages::WebSocketServer::ReadyStateResponse>((u32)ReadyState::Closed); return (u32)ReadyState::Closed;
} }
void ClientConnection::handle(const Messages::WebSocketServer::Send& message) void ClientConnection::handle(const Messages::WebSocketServer::Send& message)
@ -101,7 +101,7 @@ void ClientConnection::handle(const Messages::WebSocketServer::Close& message)
connection->close(message.code(), message.reason()); connection->close(message.code(), message.reason());
} }
OwnPtr<Messages::WebSocketServer::SetCertificateResponse> ClientConnection::handle(const Messages::WebSocketServer::SetCertificate& message) Messages::WebSocketServer::SetCertificateResponse ClientConnection::handle(const Messages::WebSocketServer::SetCertificate& message)
{ {
RefPtr<WebSocket> connection = m_connections.get(message.connection_id()).value_or({}); RefPtr<WebSocket> connection = m_connections.get(message.connection_id()).value_or({});
bool success = false; bool success = false;
@ -110,7 +110,7 @@ OwnPtr<Messages::WebSocketServer::SetCertificateResponse> ClientConnection::hand
// connection->set_certificate(message.certificate(), message.key()); // connection->set_certificate(message.certificate(), message.key());
success = true; success = true;
} }
return make<Messages::WebSocketServer::SetCertificateResponse>(success); return success;
} }
void ClientConnection::did_connect(i32 connection_id) void ClientConnection::did_connect(i32 connection_id)

View file

@ -26,12 +26,12 @@ public:
virtual void die() override; virtual void die() override;
private: private:
virtual OwnPtr<Messages::WebSocketServer::GreetResponse> handle(const Messages::WebSocketServer::Greet&) override; virtual Messages::WebSocketServer::GreetResponse handle(const Messages::WebSocketServer::Greet&) override;
virtual OwnPtr<Messages::WebSocketServer::ConnectResponse> handle(const Messages::WebSocketServer::Connect&) override; virtual Messages::WebSocketServer::ConnectResponse handle(const Messages::WebSocketServer::Connect&) override;
virtual OwnPtr<Messages::WebSocketServer::ReadyStateResponse> handle(const Messages::WebSocketServer::ReadyState&) override; virtual Messages::WebSocketServer::ReadyStateResponse handle(const Messages::WebSocketServer::ReadyState&) override;
virtual void handle(const Messages::WebSocketServer::Send&) override; virtual void handle(const Messages::WebSocketServer::Send&) override;
virtual void handle(const Messages::WebSocketServer::Close&) override; virtual void handle(const Messages::WebSocketServer::Close&) override;
virtual OwnPtr<Messages::WebSocketServer::SetCertificateResponse> handle(const Messages::WebSocketServer::SetCertificate&) override; virtual Messages::WebSocketServer::SetCertificateResponse handle(const Messages::WebSocketServer::SetCertificate&) override;
void did_connect(i32); void did_connect(i32);
void did_receive_message(i32, Message); void did_receive_message(i32, Message);

View file

@ -81,57 +81,57 @@ void ClientConnection::notify_about_new_screen_rect(const Gfx::IntRect& rect)
post_message(Messages::WindowClient::ScreenRectChanged(rect)); post_message(Messages::WindowClient::ScreenRectChanged(rect));
} }
OwnPtr<Messages::WindowServer::CreateMenubarResponse> ClientConnection::handle(const Messages::WindowServer::CreateMenubar&) Messages::WindowServer::CreateMenubarResponse ClientConnection::handle(const Messages::WindowServer::CreateMenubar&)
{ {
int menubar_id = m_next_menubar_id++; int menubar_id = m_next_menubar_id++;
auto menubar = Menubar::create(*this, menubar_id); auto menubar = Menubar::create(*this, menubar_id);
m_menubars.set(menubar_id, move(menubar)); m_menubars.set(menubar_id, move(menubar));
return make<Messages::WindowServer::CreateMenubarResponse>(menubar_id); return menubar_id;
} }
OwnPtr<Messages::WindowServer::DestroyMenubarResponse> ClientConnection::handle(const Messages::WindowServer::DestroyMenubar& message) Messages::WindowServer::DestroyMenubarResponse ClientConnection::handle(const Messages::WindowServer::DestroyMenubar& message)
{ {
int menubar_id = message.menubar_id(); int menubar_id = message.menubar_id();
auto it = m_menubars.find(menubar_id); auto it = m_menubars.find(menubar_id);
if (it == m_menubars.end()) { if (it == m_menubars.end()) {
did_misbehave("DestroyMenubar: Bad menubar ID"); did_misbehave("DestroyMenubar: Bad menubar ID");
return {}; return nullptr;
} }
m_menubars.remove(it); m_menubars.remove(it);
return make<Messages::WindowServer::DestroyMenubarResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::CreateMenuResponse> ClientConnection::handle(const Messages::WindowServer::CreateMenu& message) Messages::WindowServer::CreateMenuResponse ClientConnection::handle(const Messages::WindowServer::CreateMenu& message)
{ {
int menu_id = m_next_menu_id++; int menu_id = m_next_menu_id++;
auto menu = Menu::construct(this, menu_id, message.menu_title()); auto menu = Menu::construct(this, menu_id, message.menu_title());
m_menus.set(menu_id, move(menu)); m_menus.set(menu_id, move(menu));
return make<Messages::WindowServer::CreateMenuResponse>(menu_id); return menu_id;
} }
OwnPtr<Messages::WindowServer::DestroyMenuResponse> ClientConnection::handle(const Messages::WindowServer::DestroyMenu& message) Messages::WindowServer::DestroyMenuResponse ClientConnection::handle(const Messages::WindowServer::DestroyMenu& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
did_misbehave("DestroyMenu: Bad menu ID"); did_misbehave("DestroyMenu: Bad menu ID");
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
menu.close(); menu.close();
m_menus.remove(it); m_menus.remove(it);
remove_child(menu); remove_child(menu);
return make<Messages::WindowServer::DestroyMenuResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowMenubarResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowMenubar& message) Messages::WindowServer::SetWindowMenubarResponse ClientConnection::handle(const Messages::WindowServer::SetWindowMenubar& message)
{ {
RefPtr<Window> window; RefPtr<Window> window;
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowMenubar: Bad window ID"); did_misbehave("SetWindowMenubar: Bad window ID");
return {}; return nullptr;
} }
window = it->value; window = it->value;
} }
@ -140,15 +140,15 @@ OwnPtr<Messages::WindowServer::SetWindowMenubarResponse> ClientConnection::handl
auto it = m_menubars.find(message.menubar_id()); auto it = m_menubars.find(message.menubar_id());
if (it == m_menubars.end()) { if (it == m_menubars.end()) {
did_misbehave("SetWindowMenubar: Bad menubar ID"); did_misbehave("SetWindowMenubar: Bad menubar ID");
return {}; return nullptr;
} }
menubar = *(*it).value; menubar = *(*it).value;
} }
window->set_menubar(menubar); window->set_menubar(menubar);
return make<Messages::WindowServer::SetWindowMenubarResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::AddMenuToMenubarResponse> ClientConnection::handle(const Messages::WindowServer::AddMenuToMenubar& message) Messages::WindowServer::AddMenuToMenubarResponse ClientConnection::handle(const Messages::WindowServer::AddMenuToMenubar& message)
{ {
int menubar_id = message.menubar_id(); int menubar_id = message.menubar_id();
int menu_id = message.menu_id(); int menu_id = message.menu_id();
@ -156,26 +156,26 @@ OwnPtr<Messages::WindowServer::AddMenuToMenubarResponse> ClientConnection::handl
auto jt = m_menus.find(menu_id); auto jt = m_menus.find(menu_id);
if (it == m_menubars.end()) { if (it == m_menubars.end()) {
did_misbehave("AddMenuToMenubar: Bad menubar ID"); did_misbehave("AddMenuToMenubar: Bad menubar ID");
return {}; return nullptr;
} }
if (jt == m_menus.end()) { if (jt == m_menus.end()) {
did_misbehave("AddMenuToMenubar: Bad menu ID"); did_misbehave("AddMenuToMenubar: Bad menu ID");
return {}; return nullptr;
} }
auto& menubar = *(*it).value; auto& menubar = *(*it).value;
auto& menu = *(*jt).value; auto& menu = *(*jt).value;
menubar.add_menu(menu); menubar.add_menu(menu);
return make<Messages::WindowServer::AddMenuToMenubarResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::AddMenuItemResponse> ClientConnection::handle(const Messages::WindowServer::AddMenuItem& message) Messages::WindowServer::AddMenuItemResponse ClientConnection::handle(const Messages::WindowServer::AddMenuItem& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
unsigned identifier = message.identifier(); unsigned identifier = message.identifier();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
dbgln("AddMenuItem: Bad menu ID: {}", menu_id); dbgln("AddMenuItem: Bad menu ID: {}", menu_id);
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
auto menu_item = make<MenuItem>(menu, identifier, message.text(), message.shortcut(), message.enabled(), message.checkable(), message.checked()); auto menu_item = make<MenuItem>(menu, identifier, message.text(), message.shortcut(), message.enabled(), message.checkable(), message.checked());
@ -185,49 +185,49 @@ OwnPtr<Messages::WindowServer::AddMenuItemResponse> ClientConnection::handle(con
menu_item->set_submenu_id(message.submenu_id()); menu_item->set_submenu_id(message.submenu_id());
menu_item->set_exclusive(message.exclusive()); menu_item->set_exclusive(message.exclusive());
menu.add_item(move(menu_item)); menu.add_item(move(menu_item));
return make<Messages::WindowServer::AddMenuItemResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::PopupMenuResponse> ClientConnection::handle(const Messages::WindowServer::PopupMenu& message) Messages::WindowServer::PopupMenuResponse ClientConnection::handle(const Messages::WindowServer::PopupMenu& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
auto position = message.screen_position(); auto position = message.screen_position();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
did_misbehave("PopupMenu: Bad menu ID"); did_misbehave("PopupMenu: Bad menu ID");
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
menu.popup(position); menu.popup(position);
return make<Messages::WindowServer::PopupMenuResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::DismissMenuResponse> ClientConnection::handle(const Messages::WindowServer::DismissMenu& message) Messages::WindowServer::DismissMenuResponse ClientConnection::handle(const Messages::WindowServer::DismissMenu& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
did_misbehave("DismissMenu: Bad menu ID"); did_misbehave("DismissMenu: Bad menu ID");
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
menu.close(); menu.close();
return make<Messages::WindowServer::DismissMenuResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::UpdateMenuItemResponse> ClientConnection::handle(const Messages::WindowServer::UpdateMenuItem& message) Messages::WindowServer::UpdateMenuItemResponse ClientConnection::handle(const Messages::WindowServer::UpdateMenuItem& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
did_misbehave("UpdateMenuItem: Bad menu ID"); did_misbehave("UpdateMenuItem: Bad menu ID");
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
auto* menu_item = menu.item_with_identifier(message.identifier()); auto* menu_item = menu.item_with_identifier(message.identifier());
if (!menu_item) { if (!menu_item) {
did_misbehave("UpdateMenuItem: Bad menu item identifier"); did_misbehave("UpdateMenuItem: Bad menu item identifier");
return {}; return nullptr;
} }
menu_item->set_text(message.text()); menu_item->set_text(message.text());
menu_item->set_shortcut_text(message.shortcut()); menu_item->set_shortcut_text(message.shortcut());
@ -236,65 +236,65 @@ OwnPtr<Messages::WindowServer::UpdateMenuItemResponse> ClientConnection::handle(
menu_item->set_default(message.is_default()); menu_item->set_default(message.is_default());
if (message.checkable()) if (message.checkable())
menu_item->set_checked(message.checked()); menu_item->set_checked(message.checked());
return make<Messages::WindowServer::UpdateMenuItemResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::AddMenuSeparatorResponse> ClientConnection::handle(const Messages::WindowServer::AddMenuSeparator& message) Messages::WindowServer::AddMenuSeparatorResponse ClientConnection::handle(const Messages::WindowServer::AddMenuSeparator& message)
{ {
int menu_id = message.menu_id(); int menu_id = message.menu_id();
auto it = m_menus.find(menu_id); auto it = m_menus.find(menu_id);
if (it == m_menus.end()) { if (it == m_menus.end()) {
did_misbehave("AddMenuSeparator: Bad menu ID"); did_misbehave("AddMenuSeparator: Bad menu ID");
return {}; return nullptr;
} }
auto& menu = *(*it).value; auto& menu = *(*it).value;
menu.add_item(make<MenuItem>(menu, MenuItem::Separator)); menu.add_item(make<MenuItem>(menu, MenuItem::Separator));
return make<Messages::WindowServer::AddMenuSeparatorResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::MoveWindowToFrontResponse> ClientConnection::handle(const Messages::WindowServer::MoveWindowToFront& message) Messages::WindowServer::MoveWindowToFrontResponse ClientConnection::handle(const Messages::WindowServer::MoveWindowToFront& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("MoveWindowToFront: Bad window ID"); did_misbehave("MoveWindowToFront: Bad window ID");
return {}; return nullptr;
} }
WindowManager::the().move_to_front_and_make_active(*(*it).value); WindowManager::the().move_to_front_and_make_active(*(*it).value);
return make<Messages::WindowServer::MoveWindowToFrontResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetFullscreenResponse> ClientConnection::handle(const Messages::WindowServer::SetFullscreen& message) Messages::WindowServer::SetFullscreenResponse ClientConnection::handle(const Messages::WindowServer::SetFullscreen& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetFullscreen: Bad window ID"); did_misbehave("SetFullscreen: Bad window ID");
return {}; return nullptr;
} }
it->value->set_fullscreen(message.fullscreen()); it->value->set_fullscreen(message.fullscreen());
return make<Messages::WindowServer::SetFullscreenResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetFramelessResponse> ClientConnection::handle(const Messages::WindowServer::SetFrameless& message) Messages::WindowServer::SetFramelessResponse ClientConnection::handle(const Messages::WindowServer::SetFrameless& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetFrameless: Bad window ID"); did_misbehave("SetFrameless: Bad window ID");
return {}; return nullptr;
} }
it->value->set_frameless(message.frameless()); it->value->set_frameless(message.frameless());
WindowManager::the().tell_wms_window_state_changed(*it->value); WindowManager::the().tell_wms_window_state_changed(*it->value);
return make<Messages::WindowServer::SetFramelessResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowOpacityResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowOpacity& message) Messages::WindowServer::SetWindowOpacityResponse ClientConnection::handle(const Messages::WindowServer::SetWindowOpacity& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowOpacity: Bad window ID"); did_misbehave("SetWindowOpacity: Bad window ID");
return {}; return nullptr;
} }
it->value->set_opacity(message.opacity()); it->value->set_opacity(message.opacity());
return make<Messages::WindowServer::SetWindowOpacityResponse>(); return {};
} }
void ClientConnection::handle(const Messages::WindowServer::AsyncSetWallpaper& message) void ClientConnection::handle(const Messages::WindowServer::AsyncSetWallpaper& message)
@ -304,65 +304,65 @@ void ClientConnection::handle(const Messages::WindowServer::AsyncSetWallpaper& m
}); });
} }
OwnPtr<Messages::WindowServer::SetBackgroundColorResponse> ClientConnection::handle(const Messages::WindowServer::SetBackgroundColor& message) Messages::WindowServer::SetBackgroundColorResponse ClientConnection::handle(const Messages::WindowServer::SetBackgroundColor& message)
{ {
Compositor::the().set_background_color(message.background_color()); Compositor::the().set_background_color(message.background_color());
return make<Messages::WindowServer::SetBackgroundColorResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWallpaperModeResponse> ClientConnection::handle(const Messages::WindowServer::SetWallpaperMode& message) Messages::WindowServer::SetWallpaperModeResponse ClientConnection::handle(const Messages::WindowServer::SetWallpaperMode& message)
{ {
Compositor::the().set_wallpaper_mode(message.mode()); Compositor::the().set_wallpaper_mode(message.mode());
return make<Messages::WindowServer::SetWallpaperModeResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetWallpaperResponse> ClientConnection::handle(const Messages::WindowServer::GetWallpaper&) Messages::WindowServer::GetWallpaperResponse ClientConnection::handle(const Messages::WindowServer::GetWallpaper&)
{ {
return make<Messages::WindowServer::GetWallpaperResponse>(Compositor::the().wallpaper_path()); return Compositor::the().wallpaper_path();
} }
OwnPtr<Messages::WindowServer::SetResolutionResponse> ClientConnection::handle(const Messages::WindowServer::SetResolution& message) Messages::WindowServer::SetResolutionResponse ClientConnection::handle(const Messages::WindowServer::SetResolution& message)
{ {
return make<Messages::WindowServer::SetResolutionResponse>(WindowManager::the().set_resolution(message.resolution().width(), message.resolution().height(), message.scale_factor()), WindowManager::the().resolution(), WindowManager::the().scale_factor()); return { WindowManager::the().set_resolution(message.resolution().width(), message.resolution().height(), message.scale_factor()), WindowManager::the().resolution(), WindowManager::the().scale_factor() };
} }
OwnPtr<Messages::WindowServer::SetWindowTitleResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowTitle& message) Messages::WindowServer::SetWindowTitleResponse ClientConnection::handle(const Messages::WindowServer::SetWindowTitle& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowTitle: Bad window ID"); did_misbehave("SetWindowTitle: Bad window ID");
return {}; return nullptr;
} }
it->value->set_title(message.title()); it->value->set_title(message.title());
return make<Messages::WindowServer::SetWindowTitleResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetWindowTitleResponse> ClientConnection::handle(const Messages::WindowServer::GetWindowTitle& message) Messages::WindowServer::GetWindowTitleResponse ClientConnection::handle(const Messages::WindowServer::GetWindowTitle& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("GetWindowTitle: Bad window ID"); did_misbehave("GetWindowTitle: Bad window ID");
return {}; return nullptr;
} }
return make<Messages::WindowServer::GetWindowTitleResponse>(it->value->title()); return it->value->title();
} }
OwnPtr<Messages::WindowServer::IsMaximizedResponse> ClientConnection::handle(const Messages::WindowServer::IsMaximized& message) Messages::WindowServer::IsMaximizedResponse ClientConnection::handle(const Messages::WindowServer::IsMaximized& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("IsMaximized: Bad window ID"); did_misbehave("IsMaximized: Bad window ID");
return {}; return nullptr;
} }
return make<Messages::WindowServer::IsMaximizedResponse>(it->value->is_maximized()); return it->value->is_maximized();
} }
OwnPtr<Messages::WindowServer::SetWindowIconBitmapResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowIconBitmap& message) Messages::WindowServer::SetWindowIconBitmapResponse ClientConnection::handle(const Messages::WindowServer::SetWindowIconBitmap& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowIconBitmap: Bad window ID"); did_misbehave("SetWindowIconBitmap: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
@ -374,21 +374,21 @@ OwnPtr<Messages::WindowServer::SetWindowIconBitmapResponse> ClientConnection::ha
window.frame().invalidate_titlebar(); window.frame().invalidate_titlebar();
WindowManager::the().tell_wms_window_icon_changed(window); WindowManager::the().tell_wms_window_icon_changed(window);
return make<Messages::WindowServer::SetWindowIconBitmapResponse>(); return nullptr;
} }
OwnPtr<Messages::WindowServer::SetWindowRectResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowRect& message) Messages::WindowServer::SetWindowRectResponse ClientConnection::handle(const Messages::WindowServer::SetWindowRect& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowRect: Bad window ID"); did_misbehave("SetWindowRect: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
if (window.is_fullscreen()) { if (window.is_fullscreen()) {
dbgln("ClientConnection: Ignoring SetWindowRect request for fullscreen window"); dbgln("ClientConnection: Ignoring SetWindowRect request for fullscreen window");
return {}; return nullptr;
} }
if (message.rect().location() != window.rect().location()) { if (message.rect().location() != window.rect().location()) {
@ -399,32 +399,32 @@ OwnPtr<Messages::WindowServer::SetWindowRectResponse> ClientConnection::handle(c
window.set_rect(rect); window.set_rect(rect);
window.nudge_into_desktop(); window.nudge_into_desktop();
window.request_update(window.rect()); window.request_update(window.rect());
return make<Messages::WindowServer::SetWindowRectResponse>(window.rect()); return window.rect();
} }
OwnPtr<Messages::WindowServer::GetWindowRectResponse> ClientConnection::handle(const Messages::WindowServer::GetWindowRect& message) Messages::WindowServer::GetWindowRectResponse ClientConnection::handle(const Messages::WindowServer::GetWindowRect& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("GetWindowRect: Bad window ID"); did_misbehave("GetWindowRect: Bad window ID");
return {}; return nullptr;
} }
return make<Messages::WindowServer::GetWindowRectResponse>(it->value->rect()); return it->value->rect();
} }
OwnPtr<Messages::WindowServer::SetWindowMinimumSizeResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowMinimumSize& message) Messages::WindowServer::SetWindowMinimumSizeResponse ClientConnection::handle(const Messages::WindowServer::SetWindowMinimumSize& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowMinimumSize: Bad window ID"); did_misbehave("SetWindowMinimumSize: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
if (window.is_fullscreen()) { if (window.is_fullscreen()) {
dbgln("ClientConnection: Ignoring SetWindowMinimumSize request for fullscreen window"); dbgln("ClientConnection: Ignoring SetWindowMinimumSize request for fullscreen window");
return {}; return nullptr;
} }
window.set_minimum_size(message.size()); window.set_minimum_size(message.size());
@ -441,34 +441,34 @@ OwnPtr<Messages::WindowServer::SetWindowMinimumSizeResponse> ClientConnection::h
window.refresh_client_size(); window.refresh_client_size();
} }
return make<Messages::WindowServer::SetWindowMinimumSizeResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetWindowMinimumSizeResponse> ClientConnection::handle(const Messages::WindowServer::GetWindowMinimumSize& message) Messages::WindowServer::GetWindowMinimumSizeResponse ClientConnection::handle(const Messages::WindowServer::GetWindowMinimumSize& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("GetWindowMinimumSize: Bad window ID"); did_misbehave("GetWindowMinimumSize: Bad window ID");
return {}; return nullptr;
} }
return make<Messages::WindowServer::GetWindowMinimumSizeResponse>(it->value->minimum_size()); return it->value->minimum_size();
} }
OwnPtr<Messages::WindowServer::GetAppletRectOnScreenResponse> ClientConnection::handle(const Messages::WindowServer::GetAppletRectOnScreen& message) Messages::WindowServer::GetAppletRectOnScreenResponse ClientConnection::handle(const Messages::WindowServer::GetAppletRectOnScreen& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("GetAppletRectOnScreen: Bad window ID"); did_misbehave("GetAppletRectOnScreen: Bad window ID");
return {}; return nullptr;
} }
Gfx::IntRect applet_area_rect; Gfx::IntRect applet_area_rect;
if (auto* applet_area_window = AppletManager::the().window()) if (auto* applet_area_window = AppletManager::the().window())
applet_area_rect = applet_area_window->rect(); applet_area_rect = applet_area_window->rect();
return make<Messages::WindowServer::GetAppletRectOnScreenResponse>(it->value->rect_in_applet_area().translated(applet_area_rect.location())); return it->value->rect_in_applet_area().translated(applet_area_rect.location());
} }
Window* ClientConnection::window_from_id(i32 window_id) Window* ClientConnection::window_from_id(i32 window_id)
@ -479,14 +479,14 @@ Window* ClientConnection::window_from_id(i32 window_id)
return it->value.ptr(); return it->value.ptr();
} }
OwnPtr<Messages::WindowServer::CreateWindowResponse> ClientConnection::handle(const Messages::WindowServer::CreateWindow& message) Messages::WindowServer::CreateWindowResponse ClientConnection::handle(const Messages::WindowServer::CreateWindow& message)
{ {
Window* parent_window = nullptr; Window* parent_window = nullptr;
if (message.parent_window_id()) { if (message.parent_window_id()) {
parent_window = window_from_id(message.parent_window_id()); parent_window = window_from_id(message.parent_window_id());
if (!parent_window) { if (!parent_window) {
did_misbehave("CreateWindow with bad parent_window_id"); did_misbehave("CreateWindow with bad parent_window_id");
return {}; return nullptr;
} }
} }
@ -522,7 +522,7 @@ OwnPtr<Messages::WindowServer::CreateWindowResponse> ClientConnection::handle(co
if (window->type() == WindowType::Applet) if (window->type() == WindowType::Applet)
AppletManager::the().add_applet(*window); AppletManager::the().add_applet(*window);
m_windows.set(window_id, move(window)); m_windows.set(window_id, move(window));
return make<Messages::WindowServer::CreateWindowResponse>(window_id); return window_id;
} }
void ClientConnection::destroy_window(Window& window, Vector<i32>& destroyed_window_ids) void ClientConnection::destroy_window(Window& window, Vector<i32>& destroyed_window_ids)
@ -551,17 +551,17 @@ void ClientConnection::destroy_window(Window& window, Vector<i32>& destroyed_win
m_windows.remove(window.window_id()); m_windows.remove(window.window_id());
} }
OwnPtr<Messages::WindowServer::DestroyWindowResponse> ClientConnection::handle(const Messages::WindowServer::DestroyWindow& message) Messages::WindowServer::DestroyWindowResponse ClientConnection::handle(const Messages::WindowServer::DestroyWindow& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("DestroyWindow: Bad window ID"); did_misbehave("DestroyWindow: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
Vector<i32> destroyed_window_ids; Vector<i32> destroyed_window_ids;
destroy_window(window, destroyed_window_ids); destroy_window(window, destroyed_window_ids);
return make<Messages::WindowServer::DestroyWindowResponse>(destroyed_window_ids); return destroyed_window_ids;
} }
void ClientConnection::post_paint_message(Window& window, bool ignore_occlusion) void ClientConnection::post_paint_message(Window& window, bool ignore_occlusion)
@ -602,13 +602,13 @@ void ClientConnection::handle(const Messages::WindowServer::DidFinishPainting& m
WindowSwitcher::the().refresh_if_needed(); WindowSwitcher::the().refresh_if_needed();
} }
OwnPtr<Messages::WindowServer::SetWindowBackingStoreResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowBackingStore& message) Messages::WindowServer::SetWindowBackingStoreResponse ClientConnection::handle(const Messages::WindowServer::SetWindowBackingStore& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowBackingStore: Bad window ID"); did_misbehave("SetWindowBackingStore: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
if (window.last_backing_store() && window.last_backing_store_serial() == message.serial()) { if (window.last_backing_store() && window.last_backing_store_serial() == message.serial()) {
@ -628,78 +628,78 @@ OwnPtr<Messages::WindowServer::SetWindowBackingStoreResponse> ClientConnection::
if (message.flush_immediately()) if (message.flush_immediately())
window.invalidate(false); window.invalidate(false);
return make<Messages::WindowServer::SetWindowBackingStoreResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetGlobalCursorTrackingResponse> ClientConnection::handle(const Messages::WindowServer::SetGlobalCursorTracking& message) Messages::WindowServer::SetGlobalCursorTrackingResponse ClientConnection::handle(const Messages::WindowServer::SetGlobalCursorTracking& message)
{ {
int window_id = message.window_id(); int window_id = message.window_id();
auto it = m_windows.find(window_id); auto it = m_windows.find(window_id);
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetGlobalCursorTracking: Bad window ID"); did_misbehave("SetGlobalCursorTracking: Bad window ID");
return {}; return nullptr;
} }
it->value->set_global_cursor_tracking_enabled(message.enabled()); it->value->set_global_cursor_tracking_enabled(message.enabled());
return make<Messages::WindowServer::SetGlobalCursorTrackingResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowCursorResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowCursor& message) Messages::WindowServer::SetWindowCursorResponse ClientConnection::handle(const Messages::WindowServer::SetWindowCursor& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowCursor: Bad window ID"); did_misbehave("SetWindowCursor: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
if (message.cursor_type() < 0 || message.cursor_type() >= (i32)Gfx::StandardCursor::__Count) { if (message.cursor_type() < 0 || message.cursor_type() >= (i32)Gfx::StandardCursor::__Count) {
did_misbehave("SetWindowCursor: Bad cursor type"); did_misbehave("SetWindowCursor: Bad cursor type");
return {}; return nullptr;
} }
window.set_cursor(Cursor::create((Gfx::StandardCursor)message.cursor_type())); window.set_cursor(Cursor::create((Gfx::StandardCursor)message.cursor_type()));
if (&window == WindowManager::the().hovered_window()) if (&window == WindowManager::the().hovered_window())
Compositor::the().invalidate_cursor(); Compositor::the().invalidate_cursor();
return make<Messages::WindowServer::SetWindowCursorResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowCustomCursorResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowCustomCursor& message) Messages::WindowServer::SetWindowCustomCursorResponse ClientConnection::handle(const Messages::WindowServer::SetWindowCustomCursor& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowCustomCursor: Bad window ID"); did_misbehave("SetWindowCustomCursor: Bad window ID");
return {}; return nullptr;
} }
auto& window = *(*it).value; auto& window = *(*it).value;
if (!message.cursor().is_valid()) { if (!message.cursor().is_valid()) {
did_misbehave("SetWindowCustomCursor: Bad cursor"); did_misbehave("SetWindowCustomCursor: Bad cursor");
return {}; return nullptr;
} }
window.set_cursor(Cursor::create(*message.cursor().bitmap())); window.set_cursor(Cursor::create(*message.cursor().bitmap()));
Compositor::the().invalidate_cursor(); Compositor::the().invalidate_cursor();
return make<Messages::WindowServer::SetWindowCustomCursorResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowHasAlphaChannelResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowHasAlphaChannel& message) Messages::WindowServer::SetWindowHasAlphaChannelResponse ClientConnection::handle(const Messages::WindowServer::SetWindowHasAlphaChannel& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowHasAlphaChannel: Bad window ID"); did_misbehave("SetWindowHasAlphaChannel: Bad window ID");
return {}; return nullptr;
} }
it->value->set_has_alpha_channel(message.has_alpha_channel()); it->value->set_has_alpha_channel(message.has_alpha_channel());
return make<Messages::WindowServer::SetWindowHasAlphaChannelResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowAlphaHitThresholdResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowAlphaHitThreshold& message) Messages::WindowServer::SetWindowAlphaHitThresholdResponse ClientConnection::handle(const Messages::WindowServer::SetWindowAlphaHitThreshold& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowAlphaHitThreshold: Bad window ID"); did_misbehave("SetWindowAlphaHitThreshold: Bad window ID");
return {}; return nullptr;
} }
it->value->set_alpha_hit_threshold(message.threshold()); it->value->set_alpha_hit_threshold(message.threshold());
return make<Messages::WindowServer::SetWindowAlphaHitThresholdResponse>(); return {};
} }
void ClientConnection::handle(const Messages::WindowServer::StartWindowResize& request) void ClientConnection::handle(const Messages::WindowServer::StartWindowResize& request)
@ -715,61 +715,61 @@ void ClientConnection::handle(const Messages::WindowServer::StartWindowResize& r
WindowManager::the().start_window_resize(window, Screen::the().cursor_location(), MouseButton::Left); WindowManager::the().start_window_resize(window, Screen::the().cursor_location(), MouseButton::Left);
} }
OwnPtr<Messages::WindowServer::GreetResponse> ClientConnection::handle(const Messages::WindowServer::Greet&) Messages::WindowServer::GreetResponse ClientConnection::handle(const Messages::WindowServer::Greet&)
{ {
return make<Messages::WindowServer::GreetResponse>(Screen::the().rect(), Gfx::current_system_theme_buffer()); return { Screen::the().rect(), Gfx::current_system_theme_buffer() };
} }
OwnPtr<Messages::WindowServer::StartDragResponse> ClientConnection::handle(const Messages::WindowServer::StartDrag& message) Messages::WindowServer::StartDragResponse ClientConnection::handle(const Messages::WindowServer::StartDrag& message)
{ {
auto& wm = WindowManager::the(); auto& wm = WindowManager::the();
if (wm.dnd_client()) if (wm.dnd_client())
return make<Messages::WindowServer::StartDragResponse>(false); return false;
wm.start_dnd_drag(*this, message.text(), message.drag_bitmap().bitmap(), Core::MimeData::construct(message.mime_data())); wm.start_dnd_drag(*this, message.text(), message.drag_bitmap().bitmap(), Core::MimeData::construct(message.mime_data()));
return make<Messages::WindowServer::StartDragResponse>(true); return true;
} }
OwnPtr<Messages::WindowServer::SetSystemThemeResponse> ClientConnection::handle(const Messages::WindowServer::SetSystemTheme& message) Messages::WindowServer::SetSystemThemeResponse ClientConnection::handle(const Messages::WindowServer::SetSystemTheme& message)
{ {
bool success = WindowManager::the().update_theme(message.theme_path(), message.theme_name()); bool success = WindowManager::the().update_theme(message.theme_path(), message.theme_name());
return make<Messages::WindowServer::SetSystemThemeResponse>(success); return success;
} }
OwnPtr<Messages::WindowServer::GetSystemThemeResponse> ClientConnection::handle(const Messages::WindowServer::GetSystemTheme&) Messages::WindowServer::GetSystemThemeResponse ClientConnection::handle(const Messages::WindowServer::GetSystemTheme&)
{ {
auto wm_config = Core::ConfigFile::open("/etc/WindowServer.ini"); auto wm_config = Core::ConfigFile::open("/etc/WindowServer.ini");
auto name = wm_config->read_entry("Theme", "Name"); auto name = wm_config->read_entry("Theme", "Name");
return make<Messages::WindowServer::GetSystemThemeResponse>(name); return name;
} }
OwnPtr<Messages::WindowServer::SetWindowBaseSizeAndSizeIncrementResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowBaseSizeAndSizeIncrement& message) Messages::WindowServer::SetWindowBaseSizeAndSizeIncrementResponse ClientConnection::handle(const Messages::WindowServer::SetWindowBaseSizeAndSizeIncrement& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowBaseSizeAndSizeIncrementResponse: Bad window ID"); did_misbehave("SetWindowBaseSizeAndSizeIncrementResponse: Bad window ID");
return {}; return nullptr;
} }
auto& window = *it->value; auto& window = *it->value;
window.set_base_size(message.base_size()); window.set_base_size(message.base_size());
window.set_size_increment(message.size_increment()); window.set_size_increment(message.size_increment());
return make<Messages::WindowServer::SetWindowBaseSizeAndSizeIncrementResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::SetWindowResizeAspectRatioResponse> ClientConnection::handle(const Messages::WindowServer::SetWindowResizeAspectRatio& message) Messages::WindowServer::SetWindowResizeAspectRatioResponse ClientConnection::handle(const Messages::WindowServer::SetWindowResizeAspectRatio& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("SetWindowResizeAspectRatioResponse: Bad window ID"); did_misbehave("SetWindowResizeAspectRatioResponse: Bad window ID");
return {}; return nullptr;
} }
auto& window = *it->value; auto& window = *it->value;
window.set_resize_aspect_ratio(message.resize_aspect_ratio()); window.set_resize_aspect_ratio(message.resize_aspect_ratio());
return make<Messages::WindowServer::SetWindowResizeAspectRatioResponse>(); return {};
} }
void ClientConnection::handle(const Messages::WindowServer::EnableDisplayLink&) void ClientConnection::handle(const Messages::WindowServer::EnableDisplayLink&)
@ -818,52 +818,52 @@ void ClientConnection::handle(const Messages::WindowServer::Pong&)
set_unresponsive(false); set_unresponsive(false);
} }
OwnPtr<Messages::WindowServer::GetGlobalCursorPositionResponse> ClientConnection::handle(const Messages::WindowServer::GetGlobalCursorPosition&) Messages::WindowServer::GetGlobalCursorPositionResponse ClientConnection::handle(const Messages::WindowServer::GetGlobalCursorPosition&)
{ {
return make<Messages::WindowServer::GetGlobalCursorPositionResponse>(Screen::the().cursor_location()); return Screen::the().cursor_location();
} }
OwnPtr<Messages::WindowServer::SetMouseAccelerationResponse> ClientConnection::handle(const Messages::WindowServer::SetMouseAcceleration& message) Messages::WindowServer::SetMouseAccelerationResponse ClientConnection::handle(const Messages::WindowServer::SetMouseAcceleration& message)
{ {
double factor = message.factor(); double factor = message.factor();
if (factor < mouse_accel_min || factor > mouse_accel_max) { if (factor < mouse_accel_min || factor > mouse_accel_max) {
did_misbehave("SetMouseAcceleration with bad acceleration factor"); did_misbehave("SetMouseAcceleration with bad acceleration factor");
return {}; return nullptr;
} }
WindowManager::the().set_acceleration_factor(factor); WindowManager::the().set_acceleration_factor(factor);
return make<Messages::WindowServer::SetMouseAccelerationResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetMouseAccelerationResponse> ClientConnection::handle(const Messages::WindowServer::GetMouseAcceleration&) Messages::WindowServer::GetMouseAccelerationResponse ClientConnection::handle(const Messages::WindowServer::GetMouseAcceleration&)
{ {
return make<Messages::WindowServer::GetMouseAccelerationResponse>(Screen::the().acceleration_factor()); return Screen::the().acceleration_factor();
} }
OwnPtr<Messages::WindowServer::SetScrollStepSizeResponse> ClientConnection::handle(const Messages::WindowServer::SetScrollStepSize& message) Messages::WindowServer::SetScrollStepSizeResponse ClientConnection::handle(const Messages::WindowServer::SetScrollStepSize& message)
{ {
if (message.step_size() < scroll_step_size_min) { if (message.step_size() < scroll_step_size_min) {
did_misbehave("SetScrollStepSize with bad scroll step size"); did_misbehave("SetScrollStepSize with bad scroll step size");
return {}; return nullptr;
} }
WindowManager::the().set_scroll_step_size(message.step_size()); WindowManager::the().set_scroll_step_size(message.step_size());
return make<Messages::WindowServer::SetScrollStepSizeResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetScrollStepSizeResponse> ClientConnection::handle(const Messages::WindowServer::GetScrollStepSize&) Messages::WindowServer::GetScrollStepSizeResponse ClientConnection::handle(const Messages::WindowServer::GetScrollStepSize&)
{ {
return make<Messages::WindowServer::GetScrollStepSizeResponse>(Screen::the().scroll_step_size()); return Screen::the().scroll_step_size();
} }
OwnPtr<Messages::WindowServer::SetDoubleClickSpeedResponse> ClientConnection::handle(const Messages::WindowServer::SetDoubleClickSpeed& message) Messages::WindowServer::SetDoubleClickSpeedResponse ClientConnection::handle(const Messages::WindowServer::SetDoubleClickSpeed& message)
{ {
if (message.speed() < double_click_speed_min || message.speed() > double_click_speed_max) { if (message.speed() < double_click_speed_min || message.speed() > double_click_speed_max) {
did_misbehave("SetDoubleClickSpeed with bad speed"); did_misbehave("SetDoubleClickSpeed with bad speed");
return {}; return nullptr;
} }
WindowManager::the().set_double_click_speed(message.speed()); WindowManager::the().set_double_click_speed(message.speed());
return make<Messages::WindowServer::SetDoubleClickSpeedResponse>(); return {};
} }
OwnPtr<Messages::WindowServer::GetDoubleClickSpeedResponse> ClientConnection::handle(const Messages::WindowServer::GetDoubleClickSpeed&) Messages::WindowServer::GetDoubleClickSpeedResponse ClientConnection::handle(const Messages::WindowServer::GetDoubleClickSpeed&)
{ {
return make<Messages::WindowServer::GetDoubleClickSpeedResponse>(WindowManager::the().double_click_speed()); return WindowManager::the().double_click_speed();
} }
void ClientConnection::set_unresponsive(bool unresponsive) void ClientConnection::set_unresponsive(bool unresponsive)
@ -897,21 +897,21 @@ void ClientConnection::did_become_responsive()
set_unresponsive(false); set_unresponsive(false);
} }
OwnPtr<Messages::WindowServer::GetScreenBitmapResponse> ClientConnection::handle(const Messages::WindowServer::GetScreenBitmap&) Messages::WindowServer::GetScreenBitmapResponse ClientConnection::handle(const Messages::WindowServer::GetScreenBitmap&)
{ {
auto& bitmap = Compositor::the().front_bitmap_for_screenshot({}); auto& bitmap = Compositor::the().front_bitmap_for_screenshot({});
return make<Messages::WindowServer::GetScreenBitmapResponse>(bitmap.to_shareable_bitmap()); return bitmap.to_shareable_bitmap();
} }
OwnPtr<Messages::WindowServer::IsWindowModifiedResponse> ClientConnection::handle(Messages::WindowServer::IsWindowModified const& message) Messages::WindowServer::IsWindowModifiedResponse ClientConnection::handle(Messages::WindowServer::IsWindowModified const& message)
{ {
auto it = m_windows.find(message.window_id()); auto it = m_windows.find(message.window_id());
if (it == m_windows.end()) { if (it == m_windows.end()) {
did_misbehave("IsWindowModified: Bad window ID"); did_misbehave("IsWindowModified: Bad window ID");
return {}; return nullptr;
} }
auto& window = *it->value; auto& window = *it->value;
return make<Messages::WindowServer::IsWindowModifiedResponse>(window.is_modified()); return window.is_modified();
} }
void ClientConnection::handle(Messages::WindowServer::SetWindowModified const& message) void ClientConnection::handle(Messages::WindowServer::SetWindowModified const& message)

View file

@ -87,67 +87,67 @@ private:
void set_unresponsive(bool); void set_unresponsive(bool);
void destroy_window(Window&, Vector<i32>& destroyed_window_ids); void destroy_window(Window&, Vector<i32>& destroyed_window_ids);
virtual OwnPtr<Messages::WindowServer::GreetResponse> handle(const Messages::WindowServer::Greet&) override; virtual Messages::WindowServer::GreetResponse handle(const Messages::WindowServer::Greet&) override;
virtual OwnPtr<Messages::WindowServer::CreateMenubarResponse> handle(const Messages::WindowServer::CreateMenubar&) override; virtual Messages::WindowServer::CreateMenubarResponse handle(const Messages::WindowServer::CreateMenubar&) override;
virtual OwnPtr<Messages::WindowServer::DestroyMenubarResponse> handle(const Messages::WindowServer::DestroyMenubar&) override; virtual Messages::WindowServer::DestroyMenubarResponse handle(const Messages::WindowServer::DestroyMenubar&) override;
virtual OwnPtr<Messages::WindowServer::CreateMenuResponse> handle(const Messages::WindowServer::CreateMenu&) override; virtual Messages::WindowServer::CreateMenuResponse handle(const Messages::WindowServer::CreateMenu&) override;
virtual OwnPtr<Messages::WindowServer::DestroyMenuResponse> handle(const Messages::WindowServer::DestroyMenu&) override; virtual Messages::WindowServer::DestroyMenuResponse handle(const Messages::WindowServer::DestroyMenu&) override;
virtual OwnPtr<Messages::WindowServer::AddMenuToMenubarResponse> handle(const Messages::WindowServer::AddMenuToMenubar&) override; virtual Messages::WindowServer::AddMenuToMenubarResponse handle(const Messages::WindowServer::AddMenuToMenubar&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowMenubarResponse> handle(const Messages::WindowServer::SetWindowMenubar&) override; virtual Messages::WindowServer::SetWindowMenubarResponse handle(const Messages::WindowServer::SetWindowMenubar&) override;
virtual OwnPtr<Messages::WindowServer::AddMenuItemResponse> handle(const Messages::WindowServer::AddMenuItem&) override; virtual Messages::WindowServer::AddMenuItemResponse handle(const Messages::WindowServer::AddMenuItem&) override;
virtual OwnPtr<Messages::WindowServer::AddMenuSeparatorResponse> handle(const Messages::WindowServer::AddMenuSeparator&) override; virtual Messages::WindowServer::AddMenuSeparatorResponse handle(const Messages::WindowServer::AddMenuSeparator&) override;
virtual OwnPtr<Messages::WindowServer::UpdateMenuItemResponse> handle(const Messages::WindowServer::UpdateMenuItem&) override; virtual Messages::WindowServer::UpdateMenuItemResponse handle(const Messages::WindowServer::UpdateMenuItem&) override;
virtual OwnPtr<Messages::WindowServer::CreateWindowResponse> handle(const Messages::WindowServer::CreateWindow&) override; virtual Messages::WindowServer::CreateWindowResponse handle(const Messages::WindowServer::CreateWindow&) override;
virtual OwnPtr<Messages::WindowServer::DestroyWindowResponse> handle(const Messages::WindowServer::DestroyWindow&) override; virtual Messages::WindowServer::DestroyWindowResponse handle(const Messages::WindowServer::DestroyWindow&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowTitleResponse> handle(const Messages::WindowServer::SetWindowTitle&) override; virtual Messages::WindowServer::SetWindowTitleResponse handle(const Messages::WindowServer::SetWindowTitle&) override;
virtual OwnPtr<Messages::WindowServer::GetWindowTitleResponse> handle(const Messages::WindowServer::GetWindowTitle&) override; virtual Messages::WindowServer::GetWindowTitleResponse handle(const Messages::WindowServer::GetWindowTitle&) override;
virtual OwnPtr<Messages::WindowServer::IsMaximizedResponse> handle(const Messages::WindowServer::IsMaximized&) override; virtual Messages::WindowServer::IsMaximizedResponse handle(const Messages::WindowServer::IsMaximized&) override;
virtual void handle(const Messages::WindowServer::StartWindowResize&) override; virtual void handle(const Messages::WindowServer::StartWindowResize&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowRectResponse> handle(const Messages::WindowServer::SetWindowRect&) override; virtual Messages::WindowServer::SetWindowRectResponse handle(const Messages::WindowServer::SetWindowRect&) override;
virtual OwnPtr<Messages::WindowServer::GetWindowRectResponse> handle(const Messages::WindowServer::GetWindowRect&) override; virtual Messages::WindowServer::GetWindowRectResponse handle(const Messages::WindowServer::GetWindowRect&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowMinimumSizeResponse> handle(const Messages::WindowServer::SetWindowMinimumSize&) override; virtual Messages::WindowServer::SetWindowMinimumSizeResponse handle(const Messages::WindowServer::SetWindowMinimumSize&) override;
virtual OwnPtr<Messages::WindowServer::GetWindowMinimumSizeResponse> handle(const Messages::WindowServer::GetWindowMinimumSize&) override; virtual Messages::WindowServer::GetWindowMinimumSizeResponse handle(const Messages::WindowServer::GetWindowMinimumSize&) override;
virtual OwnPtr<Messages::WindowServer::GetAppletRectOnScreenResponse> handle(const Messages::WindowServer::GetAppletRectOnScreen&) override; virtual Messages::WindowServer::GetAppletRectOnScreenResponse handle(const Messages::WindowServer::GetAppletRectOnScreen&) override;
virtual void handle(const Messages::WindowServer::InvalidateRect&) override; virtual void handle(const Messages::WindowServer::InvalidateRect&) override;
virtual void handle(const Messages::WindowServer::DidFinishPainting&) override; virtual void handle(const Messages::WindowServer::DidFinishPainting&) override;
virtual OwnPtr<Messages::WindowServer::SetGlobalCursorTrackingResponse> handle(const Messages::WindowServer::SetGlobalCursorTracking&) override; virtual Messages::WindowServer::SetGlobalCursorTrackingResponse handle(const Messages::WindowServer::SetGlobalCursorTracking&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowOpacityResponse> handle(const Messages::WindowServer::SetWindowOpacity&) override; virtual Messages::WindowServer::SetWindowOpacityResponse handle(const Messages::WindowServer::SetWindowOpacity&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowBackingStoreResponse> handle(const Messages::WindowServer::SetWindowBackingStore&) override; virtual Messages::WindowServer::SetWindowBackingStoreResponse handle(const Messages::WindowServer::SetWindowBackingStore&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowHasAlphaChannelResponse> handle(const Messages::WindowServer::SetWindowHasAlphaChannel&) override; virtual Messages::WindowServer::SetWindowHasAlphaChannelResponse handle(const Messages::WindowServer::SetWindowHasAlphaChannel&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowAlphaHitThresholdResponse> handle(const Messages::WindowServer::SetWindowAlphaHitThreshold&) override; virtual Messages::WindowServer::SetWindowAlphaHitThresholdResponse handle(const Messages::WindowServer::SetWindowAlphaHitThreshold&) override;
virtual OwnPtr<Messages::WindowServer::MoveWindowToFrontResponse> handle(const Messages::WindowServer::MoveWindowToFront&) override; virtual Messages::WindowServer::MoveWindowToFrontResponse handle(const Messages::WindowServer::MoveWindowToFront&) override;
virtual OwnPtr<Messages::WindowServer::SetFullscreenResponse> handle(const Messages::WindowServer::SetFullscreen&) override; virtual Messages::WindowServer::SetFullscreenResponse handle(const Messages::WindowServer::SetFullscreen&) override;
virtual OwnPtr<Messages::WindowServer::SetFramelessResponse> handle(const Messages::WindowServer::SetFrameless&) override; virtual Messages::WindowServer::SetFramelessResponse handle(const Messages::WindowServer::SetFrameless&) override;
virtual void handle(const Messages::WindowServer::AsyncSetWallpaper&) override; virtual void handle(const Messages::WindowServer::AsyncSetWallpaper&) override;
virtual OwnPtr<Messages::WindowServer::SetBackgroundColorResponse> handle(const Messages::WindowServer::SetBackgroundColor&) override; virtual Messages::WindowServer::SetBackgroundColorResponse handle(const Messages::WindowServer::SetBackgroundColor&) override;
virtual OwnPtr<Messages::WindowServer::SetWallpaperModeResponse> handle(const Messages::WindowServer::SetWallpaperMode&) override; virtual Messages::WindowServer::SetWallpaperModeResponse handle(const Messages::WindowServer::SetWallpaperMode&) override;
virtual OwnPtr<Messages::WindowServer::GetWallpaperResponse> handle(const Messages::WindowServer::GetWallpaper&) override; virtual Messages::WindowServer::GetWallpaperResponse handle(const Messages::WindowServer::GetWallpaper&) override;
virtual OwnPtr<Messages::WindowServer::SetResolutionResponse> handle(const Messages::WindowServer::SetResolution&) override; virtual Messages::WindowServer::SetResolutionResponse handle(const Messages::WindowServer::SetResolution&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowCursorResponse> handle(const Messages::WindowServer::SetWindowCursor&) override; virtual Messages::WindowServer::SetWindowCursorResponse handle(const Messages::WindowServer::SetWindowCursor&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowCustomCursorResponse> handle(const Messages::WindowServer::SetWindowCustomCursor&) override; virtual Messages::WindowServer::SetWindowCustomCursorResponse handle(const Messages::WindowServer::SetWindowCustomCursor&) override;
virtual OwnPtr<Messages::WindowServer::PopupMenuResponse> handle(const Messages::WindowServer::PopupMenu&) override; virtual Messages::WindowServer::PopupMenuResponse handle(const Messages::WindowServer::PopupMenu&) override;
virtual OwnPtr<Messages::WindowServer::DismissMenuResponse> handle(const Messages::WindowServer::DismissMenu&) override; virtual Messages::WindowServer::DismissMenuResponse handle(const Messages::WindowServer::DismissMenu&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowIconBitmapResponse> handle(const Messages::WindowServer::SetWindowIconBitmap&) override; virtual Messages::WindowServer::SetWindowIconBitmapResponse handle(const Messages::WindowServer::SetWindowIconBitmap&) override;
virtual OwnPtr<Messages::WindowServer::StartDragResponse> handle(const Messages::WindowServer::StartDrag&) override; virtual Messages::WindowServer::StartDragResponse handle(const Messages::WindowServer::StartDrag&) override;
virtual OwnPtr<Messages::WindowServer::SetSystemThemeResponse> handle(const Messages::WindowServer::SetSystemTheme&) override; virtual Messages::WindowServer::SetSystemThemeResponse handle(const Messages::WindowServer::SetSystemTheme&) override;
virtual OwnPtr<Messages::WindowServer::GetSystemThemeResponse> handle(const Messages::WindowServer::GetSystemTheme&) override; virtual Messages::WindowServer::GetSystemThemeResponse handle(const Messages::WindowServer::GetSystemTheme&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowBaseSizeAndSizeIncrementResponse> handle(const Messages::WindowServer::SetWindowBaseSizeAndSizeIncrement&) override; virtual Messages::WindowServer::SetWindowBaseSizeAndSizeIncrementResponse handle(const Messages::WindowServer::SetWindowBaseSizeAndSizeIncrement&) override;
virtual OwnPtr<Messages::WindowServer::SetWindowResizeAspectRatioResponse> handle(const Messages::WindowServer::SetWindowResizeAspectRatio&) override; virtual Messages::WindowServer::SetWindowResizeAspectRatioResponse handle(const Messages::WindowServer::SetWindowResizeAspectRatio&) override;
virtual void handle(const Messages::WindowServer::EnableDisplayLink&) override; virtual void handle(const Messages::WindowServer::EnableDisplayLink&) override;
virtual void handle(const Messages::WindowServer::DisableDisplayLink&) override; virtual void handle(const Messages::WindowServer::DisableDisplayLink&) override;
virtual void handle(const Messages::WindowServer::SetWindowProgress&) override; virtual void handle(const Messages::WindowServer::SetWindowProgress&) override;
virtual void handle(const Messages::WindowServer::RefreshSystemTheme&) override; virtual void handle(const Messages::WindowServer::RefreshSystemTheme&) override;
virtual void handle(const Messages::WindowServer::Pong&) override; virtual void handle(const Messages::WindowServer::Pong&) override;
virtual OwnPtr<Messages::WindowServer::GetGlobalCursorPositionResponse> handle(const Messages::WindowServer::GetGlobalCursorPosition&) override; virtual Messages::WindowServer::GetGlobalCursorPositionResponse handle(const Messages::WindowServer::GetGlobalCursorPosition&) override;
virtual OwnPtr<Messages::WindowServer::SetMouseAccelerationResponse> handle(const Messages::WindowServer::SetMouseAcceleration&) override; virtual Messages::WindowServer::SetMouseAccelerationResponse handle(const Messages::WindowServer::SetMouseAcceleration&) override;
virtual OwnPtr<Messages::WindowServer::GetMouseAccelerationResponse> handle(const Messages::WindowServer::GetMouseAcceleration&) override; virtual Messages::WindowServer::GetMouseAccelerationResponse handle(const Messages::WindowServer::GetMouseAcceleration&) override;
virtual OwnPtr<Messages::WindowServer::SetScrollStepSizeResponse> handle(const Messages::WindowServer::SetScrollStepSize&) override; virtual Messages::WindowServer::SetScrollStepSizeResponse handle(const Messages::WindowServer::SetScrollStepSize&) override;
virtual OwnPtr<Messages::WindowServer::GetScrollStepSizeResponse> handle(const Messages::WindowServer::GetScrollStepSize&) override; virtual Messages::WindowServer::GetScrollStepSizeResponse handle(const Messages::WindowServer::GetScrollStepSize&) override;
virtual OwnPtr<Messages::WindowServer::GetScreenBitmapResponse> handle(const Messages::WindowServer::GetScreenBitmap&) override; virtual Messages::WindowServer::GetScreenBitmapResponse handle(const Messages::WindowServer::GetScreenBitmap&) override;
virtual OwnPtr<Messages::WindowServer::SetDoubleClickSpeedResponse> handle(const Messages::WindowServer::SetDoubleClickSpeed&) override; virtual Messages::WindowServer::SetDoubleClickSpeedResponse handle(const Messages::WindowServer::SetDoubleClickSpeed&) override;
virtual OwnPtr<Messages::WindowServer::GetDoubleClickSpeedResponse> handle(const Messages::WindowServer::GetDoubleClickSpeed&) override; virtual Messages::WindowServer::GetDoubleClickSpeedResponse handle(const Messages::WindowServer::GetDoubleClickSpeed&) override;
virtual void handle(Messages::WindowServer::SetWindowModified const&) override; virtual void handle(Messages::WindowServer::SetWindowModified const&) override;
virtual OwnPtr<Messages::WindowServer::IsWindowModifiedResponse> handle(Messages::WindowServer::IsWindowModified const&) override; virtual Messages::WindowServer::IsWindowModifiedResponse handle(Messages::WindowServer::IsWindowModified const&) override;
Window* window_from_id(i32 window_id); Window* window_from_id(i32 window_id);

View file

@ -33,16 +33,16 @@ void WMClientConnection::die()
}); });
} }
OwnPtr<Messages::WindowManagerServer::SetAppletAreaPositionResponse> WMClientConnection::handle(const Messages::WindowManagerServer::SetAppletAreaPosition& message) Messages::WindowManagerServer::SetAppletAreaPositionResponse WMClientConnection::handle(const Messages::WindowManagerServer::SetAppletAreaPosition& message)
{ {
if (m_window_id < 0) { if (m_window_id < 0) {
did_misbehave("SetAppletAreaPosition: WM didn't assign window as manager yet"); did_misbehave("SetAppletAreaPosition: WM didn't assign window as manager yet");
// FIXME: return ok boolean? // FIXME: return ok boolean?
return make<Messages::WindowManagerServer::SetAppletAreaPositionResponse>(); return {};
} }
AppletManager::the().set_position(message.position()); AppletManager::the().set_position(message.position());
return make<Messages::WindowManagerServer::SetAppletAreaPositionResponse>(); return {};
} }
void WMClientConnection::handle(const Messages::WindowManagerServer::SetActiveWindow& message) void WMClientConnection::handle(const Messages::WindowManagerServer::SetActiveWindow& message)
@ -116,13 +116,13 @@ void WMClientConnection::handle(const Messages::WindowManagerServer::SetWindowMi
WindowManager::the().minimize_windows(window, message.minimized()); WindowManager::the().minimize_windows(window, message.minimized());
} }
OwnPtr<Messages::WindowManagerServer::SetEventMaskResponse> WMClientConnection::handle(const Messages::WindowManagerServer::SetEventMask& message) Messages::WindowManagerServer::SetEventMaskResponse WMClientConnection::handle(const Messages::WindowManagerServer::SetEventMask& message)
{ {
m_event_mask = message.event_mask(); m_event_mask = message.event_mask();
return make<Messages::WindowManagerServer::SetEventMaskResponse>(); return {};
} }
OwnPtr<Messages::WindowManagerServer::SetManagerWindowResponse> WMClientConnection::handle(const Messages::WindowManagerServer::SetManagerWindow& message) Messages::WindowManagerServer::SetManagerWindowResponse WMClientConnection::handle(const Messages::WindowManagerServer::SetManagerWindow& message)
{ {
m_window_id = message.window_id(); m_window_id = message.window_id();
@ -130,7 +130,7 @@ OwnPtr<Messages::WindowManagerServer::SetManagerWindowResponse> WMClientConnecti
// receive information about other windows. // receive information about other windows.
WindowManager::the().greet_window_manager(*this); WindowManager::the().greet_window_manager(*this);
return make<Messages::WindowManagerServer::SetManagerWindowResponse>(); return {};
} }
void WMClientConnection::handle(const Messages::WindowManagerServer::SetWindowTaskbarRect& message) void WMClientConnection::handle(const Messages::WindowManagerServer::SetWindowTaskbarRect& message)

View file

@ -27,9 +27,9 @@ public:
virtual void handle(const Messages::WindowManagerServer::StartWindowResize&) override; virtual void handle(const Messages::WindowManagerServer::StartWindowResize&) override;
virtual void handle(const Messages::WindowManagerServer::PopupWindowMenu&) override; virtual void handle(const Messages::WindowManagerServer::PopupWindowMenu&) override;
virtual void handle(const Messages::WindowManagerServer::SetWindowTaskbarRect&) override; virtual void handle(const Messages::WindowManagerServer::SetWindowTaskbarRect&) override;
virtual OwnPtr<Messages::WindowManagerServer::SetAppletAreaPositionResponse> handle(const Messages::WindowManagerServer::SetAppletAreaPosition&) override; virtual Messages::WindowManagerServer::SetAppletAreaPositionResponse handle(const Messages::WindowManagerServer::SetAppletAreaPosition&) override;
virtual OwnPtr<Messages::WindowManagerServer::SetEventMaskResponse> handle(const Messages::WindowManagerServer::SetEventMask&) override; virtual Messages::WindowManagerServer::SetEventMaskResponse handle(const Messages::WindowManagerServer::SetEventMask&) override;
virtual OwnPtr<Messages::WindowManagerServer::SetManagerWindowResponse> handle(const Messages::WindowManagerServer::SetManagerWindow&) override; virtual Messages::WindowManagerServer::SetManagerWindowResponse handle(const Messages::WindowManagerServer::SetManagerWindow&) override;
unsigned event_mask() const { return m_event_mask; } unsigned event_mask() const { return m_event_mask; }
int window_id() const { return m_window_id; } int window_id() const { return m_window_id; }