1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:47:44 +00:00

Ladybird: Move Qt-specific classes and functions to a Qt subdirectory

This will help a lot with developing chromes for different UI frameworks
where we can see which helper classes and processes are really using Qt
vs just using it to get at helper data.

As a bonus, remove Qt dependency from WebDriver.
This commit is contained in:
Andrew Kaster 2023-08-05 10:42:26 -06:00 committed by Andrew Kaster
parent ccaa423372
commit 391beef707
53 changed files with 160 additions and 157 deletions

View file

@ -1,97 +0,0 @@
/*
* Copyright (c) 2022, Dex <dexes.ttp@gmail.com>
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "WebSocketQt.h"
namespace Ladybird {
NonnullRefPtr<WebSocketQt> WebSocketQt::create(NonnullRefPtr<WebSocket::WebSocket> underlying_socket)
{
return adopt_ref(*new WebSocketQt(move(underlying_socket)));
}
WebSocketQt::WebSocketQt(NonnullRefPtr<WebSocket::WebSocket> underlying_socket)
: m_websocket(move(underlying_socket))
{
m_websocket->on_open = [weak_this = make_weak_ptr()] {
if (auto strong_this = weak_this.strong_ref())
if (strong_this->on_open)
strong_this->on_open();
};
m_websocket->on_message = [weak_this = make_weak_ptr()](auto message) {
if (auto strong_this = weak_this.strong_ref()) {
if (strong_this->on_message) {
strong_this->on_message(Web::WebSockets::WebSocketClientSocket::Message {
.data = move(message.data()),
.is_text = message.is_text(),
});
}
}
};
m_websocket->on_error = [weak_this = make_weak_ptr()](auto error) {
if (auto strong_this = weak_this.strong_ref()) {
if (strong_this->on_error) {
switch (error) {
case WebSocket::WebSocket::Error::CouldNotEstablishConnection:
strong_this->on_error(Web::WebSockets::WebSocketClientSocket::Error::CouldNotEstablishConnection);
return;
case WebSocket::WebSocket::Error::ConnectionUpgradeFailed:
strong_this->on_error(Web::WebSockets::WebSocketClientSocket::Error::ConnectionUpgradeFailed);
return;
case WebSocket::WebSocket::Error::ServerClosedSocket:
strong_this->on_error(Web::WebSockets::WebSocketClientSocket::Error::ServerClosedSocket);
return;
}
VERIFY_NOT_REACHED();
}
}
};
m_websocket->on_close = [weak_this = make_weak_ptr()](u16 code, DeprecatedString reason, bool was_clean) {
if (auto strong_this = weak_this.strong_ref())
if (strong_this->on_close)
strong_this->on_close(code, move(reason), was_clean);
};
}
WebSocketQt::~WebSocketQt() = default;
Web::WebSockets::WebSocket::ReadyState WebSocketQt::ready_state()
{
switch (m_websocket->ready_state()) {
case WebSocket::ReadyState::Connecting:
return Web::WebSockets::WebSocket::ReadyState::Connecting;
case WebSocket::ReadyState::Open:
return Web::WebSockets::WebSocket::ReadyState::Open;
case WebSocket::ReadyState::Closing:
return Web::WebSockets::WebSocket::ReadyState::Closing;
case WebSocket::ReadyState::Closed:
return Web::WebSockets::WebSocket::ReadyState::Closed;
}
VERIFY_NOT_REACHED();
}
DeprecatedString WebSocketQt::subprotocol_in_use()
{
return m_websocket->subprotocol_in_use();
}
void WebSocketQt::send(ByteBuffer binary_or_text_message, bool is_text)
{
m_websocket->send(WebSocket::Message(binary_or_text_message, is_text));
}
void WebSocketQt::send(StringView message)
{
m_websocket->send(WebSocket::Message(message));
}
void WebSocketQt::close(u16 code, DeprecatedString reason)
{
m_websocket->close(code, reason);
}
}