LibWebView+UI: Handle worker agent requests from within LibWebView

There is no longer any UI-specific facilities needed to launch a worker
agent.
This commit is contained in:
Timothy Flynn 2024-11-13 16:08:08 -05:00 committed by Andreas Kling
parent 652dde5022
commit 44d6601dc5
Notes: github-actions[bot] 2024-11-14 10:48:29 +00:00
5 changed files with 3 additions and 19 deletions

View file

@ -230,7 +230,6 @@ public:
Function<void(size_t, Gfx::IntPoint)> on_inspector_requested_cookie_context_menu; Function<void(size_t, Gfx::IntPoint)> on_inspector_requested_cookie_context_menu;
Function<void(String const&)> on_inspector_executed_console_script; Function<void(String const&)> on_inspector_executed_console_script;
Function<void(String const&)> on_inspector_exported_inspector_html; Function<void(String const&)> on_inspector_exported_inspector_html;
Function<IPC::File()> on_request_worker_agent;
virtual Web::DevicePixelSize viewport_size() const = 0; virtual Web::DevicePixelSize viewport_size() const = 0;
virtual Gfx::IntPoint to_content_position(Gfx::IntPoint widget_position) const = 0; virtual Gfx::IntPoint to_content_position(Gfx::IntPoint widget_position) const = 0;

View file

@ -9,6 +9,7 @@
#include "ViewImplementation.h" #include "ViewImplementation.h"
#include <LibWeb/Cookie/ParsedCookie.h> #include <LibWeb/Cookie/ParsedCookie.h>
#include <LibWebView/CookieJar.h> #include <LibWebView/CookieJar.h>
#include <LibWebView/HelperProcess.h>
namespace WebView { namespace WebView {
@ -667,8 +668,8 @@ void WebContentClient::inspector_did_export_inspector_html(u64 page_id, String c
Messages::WebContentClient::RequestWorkerAgentResponse WebContentClient::request_worker_agent(u64 page_id) Messages::WebContentClient::RequestWorkerAgentResponse WebContentClient::request_worker_agent(u64 page_id)
{ {
if (auto view = view_for_page_id(page_id); view.has_value()) { if (auto view = view_for_page_id(page_id); view.has_value()) {
if (view->on_request_worker_agent) auto worker_client = MUST(WebView::launch_web_worker_process());
return view->on_request_worker_agent(); return worker_client->clone_transport();
} }
return IPC::File {}; return IPC::File {};

View file

@ -12,7 +12,6 @@
#include <LibURL/URL.h> #include <LibURL/URL.h>
#include <LibWeb/HTML/SelectedFile.h> #include <LibWeb/HTML/SelectedFile.h>
#include <LibWebView/Application.h> #include <LibWebView/Application.h>
#include <LibWebView/HelperProcess.h>
#include <LibWebView/SearchEngine.h> #include <LibWebView/SearchEngine.h>
#include <LibWebView/SourceHighlighter.h> #include <LibWebView/SourceHighlighter.h>
#include <LibWebView/URL.h> #include <LibWebView/URL.h>
@ -345,11 +344,6 @@ static void copy_data_to_clipboard(StringView data, NSPasteboardType pasteboard_
return [self.observer onCreateNewTab:{} activateTab:activate_tab]; return [self.observer onCreateNewTab:{} activateTab:activate_tab];
}; };
m_web_view_bridge->on_request_worker_agent = []() {
auto worker_client = MUST(WebView::launch_web_worker_process());
return worker_client->clone_transport();
};
m_web_view_bridge->on_activate_tab = [weak_self]() { m_web_view_bridge->on_activate_tab = [weak_self]() {
LadybirdWebView* self = weak_self; LadybirdWebView* self = weak_self;
if (self == nil) { if (self == nil) {

View file

@ -30,11 +30,6 @@ HeadlessWebView::HeadlessWebView(Core::AnonymousBuffer theme, Web::DevicePixelSi
return web_view.handle(); return web_view.handle();
}; };
on_request_worker_agent = []() {
auto worker_client = MUST(WebView::launch_web_worker_process());
return worker_client->clone_transport();
};
on_reposition_window = [this](auto position) { on_reposition_window = [this](auto position) {
client().async_set_window_position(m_client_state.page_index, position.template to_type<Web::DevicePixels>()); client().async_set_window_position(m_client_state.page_index, position.template to_type<Web::DevicePixels>());

View file

@ -126,11 +126,6 @@ WebContentView::WebContentView(QWidget* window, RefPtr<WebView::WebContentClient
finish_handling_drag_event(event); finish_handling_drag_event(event);
}; };
on_request_worker_agent = [&]() {
auto worker_client = MUST(WebView::launch_web_worker_process());
return worker_client->clone_transport();
};
m_select_dropdown = new QMenu("Select Dropdown", this); m_select_dropdown = new QMenu("Select Dropdown", this);
QObject::connect(m_select_dropdown, &QMenu::aboutToHide, this, [this]() { QObject::connect(m_select_dropdown, &QMenu::aboutToHide, this, [this]() {
if (!m_select_dropdown->activeAction()) if (!m_select_dropdown->activeAction())