From f05b0bfd5f8a30b6618b6916d877e8d89f992c37 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Mon, 24 Mar 2025 10:22:38 -0400 Subject: [PATCH] LibWeb+LibWebView+WebContent: Convert about:settings to a WebUI --- Base/res/ladybird/about-pages/settings.html | 54 +++++++------ Libraries/LibWeb/CMakeLists.txt | 1 - .../WindowEnvironmentSettingsObject.cpp | 2 +- Libraries/LibWeb/HTML/Window.cpp | 10 +-- Libraries/LibWeb/HTML/Window.h | 2 +- Libraries/LibWeb/Internals/Settings.cpp | 57 -------------- Libraries/LibWeb/Internals/Settings.h | 34 --------- Libraries/LibWeb/Internals/Settings.idl | 10 --- Libraries/LibWeb/Page/Page.h | 6 -- Libraries/LibWeb/idl_files.cmake | 1 - Libraries/LibWebView/Application.cpp | 30 -------- Libraries/LibWebView/Application.h | 3 - Libraries/LibWebView/CMakeLists.txt | 1 + Libraries/LibWebView/Settings.cpp | 23 +++--- Libraries/LibWebView/Settings.h | 3 +- Libraries/LibWebView/WebContentClient.cpp | 33 -------- Libraries/LibWebView/WebContentClient.h | 5 -- Libraries/LibWebView/WebUI.cpp | 3 + Libraries/LibWebView/WebUI/SettingsUI.cpp | 75 +++++++++++++++++++ Libraries/LibWebView/WebUI/SettingsUI.h | 26 +++++++ Services/WebContent/PageClient.cpp | 25 ------- Services/WebContent/PageClient.h | 5 -- Services/WebContent/WebContentClient.ipc | 6 -- 23 files changed, 151 insertions(+), 264 deletions(-) delete mode 100644 Libraries/LibWeb/Internals/Settings.cpp delete mode 100644 Libraries/LibWeb/Internals/Settings.h delete mode 100644 Libraries/LibWeb/Internals/Settings.idl create mode 100644 Libraries/LibWebView/WebUI/SettingsUI.cpp create mode 100644 Libraries/LibWebView/WebUI/SettingsUI.h diff --git a/Base/res/ladybird/about-pages/settings.html b/Base/res/ladybird/about-pages/settings.html index b482f266160..5e981d14a4e 100644 --- a/Base/res/ladybird/about-pages/settings.html +++ b/Base/res/ladybird/about-pages/settings.html @@ -167,13 +167,18 @@ const searchEngine = document.querySelector("#search-engine"); const restoreDefaults = document.querySelector("#restore-defaults"); - settings.settings = {}; + window.settings = {}; + + const loadSettings = settings => { + window.settings = settings; + renderSettings(); + }; const renderSettings = () => { newTabPageURL.classList.remove("error"); - newTabPageURL.value = settings.settings.newTabPageURL; + newTabPageURL.value = window.settings.newTabPageURL; - const searchEngineName = settings.settings.searchEngine?.name; + const searchEngineName = window.settings.searchEngine?.name; if (searchEngineName) { searchEnabled.checked = true; @@ -185,6 +190,16 @@ renderSearchEngine(); }; + const loadSearchEngines = engines => { + for (const engine of engines) { + const option = document.createElement("option"); + option.text = engine; + option.value = engine; + + searchEngine.add(option); + } + }; + const renderSearchEngine = () => { searchEngineList.style.display = searchEnabled.checked ? "block" : "none"; @@ -198,9 +213,9 @@ const saveSearchEngine = () => { if (searchEnabled.checked && searchEngine.selectedIndex !== 0) { - settings.setSearchEngine(searchEngine.value); + ladybird.sendMessage("setSearchEngine", searchEngine.value); } else if (!searchEnabled.checked) { - settings.setSearchEngine(null); + ladybird.sendMessage("setSearchEngine", null); } renderSearchEngine(); @@ -215,7 +230,7 @@ return; } - settings.setNewTabPageURL(newTabPageURL.value); + ladybird.sendMessage("setNewTabPageURL", newTabPageURL.value); newTabPageURL.classList.add("success"); setTimeout(() => { @@ -227,27 +242,20 @@ searchEngine.addEventListener("change", saveSearchEngine); restoreDefaults.addEventListener("click", () => { - settings.restoreDefaultSettings(); + ladybird.sendMessage("restoreDefaultSettings"); }); - settings.loadSettings = settings => { - window.settings.settings = JSON.parse(settings); - renderSettings(); - }; + document.addEventListener("WebUILoaded", () => { + ladybird.sendMessage("loadAvailableSearchEngines"); + ladybird.sendMessage("loadCurrentSettings"); + }); - settings.loadSearchEngines = engines => { - for (const engine of JSON.parse(engines)) { - const option = document.createElement("option"); - option.text = engine; - option.value = engine; - - searchEngine.add(option); + document.addEventListener("WebUIMessage", event => { + if (event.detail.name === "loadSettings") { + loadSettings(event.detail.data); + } else if (event.detail.name === "loadSearchEngines") { + loadSearchEngines(event.detail.data); } - }; - - document.addEventListener("DOMContentLoaded", () => { - settings.loadAvailableSearchEngines(); - settings.loadCurrentSettings(); }); diff --git a/Libraries/LibWeb/CMakeLists.txt b/Libraries/LibWeb/CMakeLists.txt index c1a1ad92a9b..64b0e557c48 100644 --- a/Libraries/LibWeb/CMakeLists.txt +++ b/Libraries/LibWeb/CMakeLists.txt @@ -566,7 +566,6 @@ set(SOURCES Internals/InternalAnimationTimeline.cpp Internals/Internals.cpp Internals/InternalsBase.cpp - Internals/Settings.cpp Internals/WebUI.cpp IntersectionObserver/IntersectionObserver.cpp IntersectionObserver/IntersectionObserverEntry.cpp diff --git a/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp b/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp index d17003e13b4..be50aff2f83 100644 --- a/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp +++ b/Libraries/LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.cpp @@ -79,7 +79,7 @@ void WindowEnvironmentSettingsObject::setup(Page& page, URL::URL const& creation // Non-Standard: We cannot fully initialize window object until *after* the we set up // the realm's [[HostDefined]] internal slot as the internal slot contains the web platform intrinsics - MUST(window.initialize_web_interfaces({}, creation_url)); + MUST(window.initialize_web_interfaces({})); } // https://html.spec.whatwg.org/multipage/window-object.html#script-settings-for-window-objects:responsible-document diff --git a/Libraries/LibWeb/HTML/Window.cpp b/Libraries/LibWeb/HTML/Window.cpp index 2309faba792..646f5d6981a 100644 --- a/Libraries/LibWeb/HTML/Window.cpp +++ b/Libraries/LibWeb/HTML/Window.cpp @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include @@ -722,7 +721,7 @@ void Window::set_internals_object_exposed(bool exposed) s_internals_object_exposed = exposed; } -WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge, URL::URL const& url) +WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge) { auto& realm = this->realm(); add_window_exposed_interfaces(*this); @@ -736,13 +735,6 @@ WebIDL::ExceptionOr Window::initialize_web_interfaces(Badge(realm), JS::default_attributes); - if (url.scheme() == "about"sv && url.paths().size() == 1) { - auto const& path = url.paths().first(); - - if (path == "settings"sv) - define_direct_property("settings"_fly_string, realm.create(realm), JS::default_attributes); - } - return {}; } diff --git a/Libraries/LibWeb/HTML/Window.h b/Libraries/LibWeb/HTML/Window.h index 899d07011ee..4a8645973c0 100644 --- a/Libraries/LibWeb/HTML/Window.h +++ b/Libraries/LibWeb/HTML/Window.h @@ -148,7 +148,7 @@ public: // https://html.spec.whatwg.org/multipage/interaction.html#history-action-activation bool has_history_action_activation() const; - WebIDL::ExceptionOr initialize_web_interfaces(Badge, URL::URL const&); + WebIDL::ExceptionOr initialize_web_interfaces(Badge); Vector> pdf_viewer_plugin_objects(); Vector> pdf_viewer_mime_type_objects(); diff --git a/Libraries/LibWeb/Internals/Settings.cpp b/Libraries/LibWeb/Internals/Settings.cpp deleted file mode 100644 index d3237f55d13..00000000000 --- a/Libraries/LibWeb/Internals/Settings.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2025, Tim Flynn - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include -#include -#include -#include -#include -#include - -namespace Web::Internals { - -GC_DEFINE_ALLOCATOR(Settings); - -Settings::Settings(JS::Realm& realm) - : InternalsBase(realm) -{ -} - -Settings::~Settings() = default; - -void Settings::initialize(JS::Realm& realm) -{ - Base::initialize(realm); - WEB_SET_PROTOTYPE_FOR_INTERFACE(Settings); -} - -void Settings::load_current_settings() -{ - page().client().request_current_settings(); -} - -void Settings::restore_default_settings() -{ - page().client().restore_default_settings(); -} - -void Settings::set_new_tab_page_url(String const& new_tab_page_url) -{ - if (auto parsed_new_tab_page_url = URL::Parser::basic_parse(new_tab_page_url); parsed_new_tab_page_url.has_value()) - page().client().set_new_tab_page_url(*parsed_new_tab_page_url); -} - -void Settings::load_available_search_engines() -{ - page().client().request_available_search_engines(); -} - -void Settings::set_search_engine(Optional const& search_engine) -{ - page().client().set_search_engine(search_engine); -} - -} diff --git a/Libraries/LibWeb/Internals/Settings.h b/Libraries/LibWeb/Internals/Settings.h deleted file mode 100644 index 169d940dccf..00000000000 --- a/Libraries/LibWeb/Internals/Settings.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2025, Tim Flynn - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include - -namespace Web::Internals { - -class Settings final : public InternalsBase { - WEB_PLATFORM_OBJECT(Settings, InternalsBase); - GC_DECLARE_ALLOCATOR(Settings); - -public: - virtual ~Settings() override; - - void load_current_settings(); - void restore_default_settings(); - - void set_new_tab_page_url(String const& new_tab_page_url); - - void load_available_search_engines(); - void set_search_engine(Optional const& search_engine); - -private: - explicit Settings(JS::Realm&); - - virtual void initialize(JS::Realm&) override; -}; - -} diff --git a/Libraries/LibWeb/Internals/Settings.idl b/Libraries/LibWeb/Internals/Settings.idl deleted file mode 100644 index da584c72fd1..00000000000 --- a/Libraries/LibWeb/Internals/Settings.idl +++ /dev/null @@ -1,10 +0,0 @@ -[Exposed=Nobody] -interface Settings { - undefined loadCurrentSettings(); - undefined restoreDefaultSettings(); - - undefined setNewTabPageURL(USVString newTabPageURL); - - undefined loadAvailableSearchEngines(); - undefined setSearchEngine(DOMString? search_engine); -}; diff --git a/Libraries/LibWeb/Page/Page.h b/Libraries/LibWeb/Page/Page.h index 63505702742..7c3944a687e 100644 --- a/Libraries/LibWeb/Page/Page.h +++ b/Libraries/LibWeb/Page/Page.h @@ -402,12 +402,6 @@ public: virtual void received_message_from_web_ui([[maybe_unused]] String const& name, [[maybe_unused]] JS::Value data) { } - virtual void request_current_settings() { } - virtual void restore_default_settings() { } - virtual void set_new_tab_page_url(URL::URL const&) { } - virtual void request_available_search_engines() { } - virtual void set_search_engine(Optional const&) { } - virtual bool is_ready_to_paint() const = 0; virtual DisplayListPlayerType display_list_player_type() const = 0; diff --git a/Libraries/LibWeb/idl_files.cmake b/Libraries/LibWeb/idl_files.cmake index d7e62d1f788..54d1da8b7fb 100644 --- a/Libraries/LibWeb/idl_files.cmake +++ b/Libraries/LibWeb/idl_files.cmake @@ -266,7 +266,6 @@ libweb_js_bindings(IndexedDB/IDBTransaction) libweb_js_bindings(IndexedDB/IDBVersionChangeEvent) libweb_js_bindings(Internals/InternalAnimationTimeline) libweb_js_bindings(Internals/Internals) -libweb_js_bindings(Internals/Settings) libweb_js_bindings(Internals/WebUI) libweb_js_bindings(IntersectionObserver/IntersectionObserver) libweb_js_bindings(IntersectionObserver/IntersectionObserverEntry) diff --git a/Libraries/LibWebView/Application.cpp b/Libraries/LibWebView/Application.cpp index 29d1a1c1160..8faee7a4ce3 100644 --- a/Libraries/LibWebView/Application.cpp +++ b/Libraries/LibWebView/Application.cpp @@ -5,7 +5,6 @@ */ #include -#include #include #include #include @@ -324,35 +323,6 @@ Optional Application::find_process(pid_t pid) return m_process_manager.find_process(pid); } -void Application::send_current_settings_to_view(ViewImplementation& view) -{ - auto settings = m_settings.serialize_json(); - - StringBuilder builder; - builder.append("settings.loadSettings(\""sv); - builder.append_escaped_for_json(settings); - builder.append("\");"sv); - - view.run_javascript(MUST(builder.to_string())); -} - -void Application::send_available_search_engines_to_view(ViewImplementation& view) -{ - StringBuilder engines; - - auto serializer = MUST(JsonArraySerializer<>::try_create(engines)); - for (auto const& engine : search_engines()) - MUST(serializer.add(engine.name)); - MUST(serializer.finish()); - - StringBuilder builder; - builder.append("settings.loadSearchEngines(\""sv); - builder.append_escaped_for_json(engines.string_view()); - builder.append("\");"sv); - - view.run_javascript(MUST(builder.to_string())); -} - void Application::process_did_exit(Process&& process) { if (m_in_shutdown) diff --git a/Libraries/LibWebView/Application.h b/Libraries/LibWebView/Application.h index b3a77f7c94a..fcda9dcdec0 100644 --- a/Libraries/LibWebView/Application.h +++ b/Libraries/LibWebView/Application.h @@ -61,9 +61,6 @@ public: #endif Optional find_process(pid_t); - void send_current_settings_to_view(ViewImplementation&); - void send_available_search_engines_to_view(ViewImplementation&); - ErrorOr path_for_downloaded_file(StringView file) const; enum class DevtoolsState { diff --git a/Libraries/LibWebView/CMakeLists.txt b/Libraries/LibWebView/CMakeLists.txt index 9a90e8a6d7f..aad3d53f6c5 100644 --- a/Libraries/LibWebView/CMakeLists.txt +++ b/Libraries/LibWebView/CMakeLists.txt @@ -26,6 +26,7 @@ set(SOURCES WebContentClient.cpp WebUI.cpp WebUI/ProcessesUI.cpp + WebUI/SettingsUI.cpp ) if (APPLE) diff --git a/Libraries/LibWebView/Settings.cpp b/Libraries/LibWebView/Settings.cpp index ac10ee02b50..ce43406f2a7 100644 --- a/Libraries/LibWebView/Settings.cpp +++ b/Libraries/LibWebView/Settings.cpp @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -40,13 +39,13 @@ static ErrorOr read_settings_file(StringView settings_path) return move(settings_json.as_object()); } -static ErrorOr write_settings_file(StringView settings_path, StringView contents) +static ErrorOr write_settings_file(StringView settings_path, JsonValue const& contents) { auto settings_directory = LexicalPath { settings_path }.parent(); TRY(Core::Directory::create(settings_directory, Core::Directory::CreateDirectories::Yes)); auto settings_file = TRY(Core::File::open(settings_path, Core::File::OpenMode::Write)); - TRY(settings_file->write_until_depleted(contents)); + TRY(settings_file->write_until_depleted(contents.serialized())); return {}; } @@ -84,21 +83,19 @@ Settings::Settings(ByteString settings_path) { } -String Settings::serialize_json() const +JsonValue Settings::serialize_json() const { - StringBuilder builder; - auto serializer = MUST(JsonObjectSerializer<>::try_create(builder)); - - MUST(serializer.add(new_tab_page_url_key, m_new_tab_page_url.serialize())); + JsonObject settings; + settings.set(new_tab_page_url_key, m_new_tab_page_url.serialize()); if (m_search_engine.has_value()) { - auto search_engine = MUST(serializer.add_object(search_engine_key)); - MUST(search_engine.add(search_engine_name_key, m_search_engine->name)); - MUST(search_engine.finish()); + JsonObject search_engine; + search_engine.set(search_engine_name_key, m_search_engine->name); + + settings.set(search_engine_key, move(search_engine)); } - MUST(serializer.finish()); - return MUST(builder.to_string()); + return settings; } void Settings::restore_defaults() diff --git a/Libraries/LibWebView/Settings.h b/Libraries/LibWebView/Settings.h index 717dadc69b1..c05b1dcb689 100644 --- a/Libraries/LibWebView/Settings.h +++ b/Libraries/LibWebView/Settings.h @@ -7,6 +7,7 @@ #pragma once #include +#include #include #include #include @@ -27,7 +28,7 @@ class Settings { public: static Settings create(Badge); - String serialize_json() const; + JsonValue serialize_json() const; void restore_defaults(); diff --git a/Libraries/LibWebView/WebContentClient.cpp b/Libraries/LibWebView/WebContentClient.cpp index 93e006ce54e..65881322f40 100644 --- a/Libraries/LibWebView/WebContentClient.cpp +++ b/Libraries/LibWebView/WebContentClient.cpp @@ -669,39 +669,6 @@ Messages::WebContentClient::RequestWorkerAgentResponse WebContentClient::request return IPC::File {}; } -void WebContentClient::request_current_settings(u64 page_id) -{ - if (auto view = view_for_page_id(page_id); view.has_value()) - WebView::Application::the().send_current_settings_to_view(*view); -} - -void WebContentClient::restore_default_settings(u64 page_id) -{ - WebView::Application::settings().restore_defaults(); - request_current_settings(page_id); -} - -void WebContentClient::set_new_tab_page_url(u64 page_id, URL::URL new_tab_page_url) -{ - WebView::Application::settings().set_new_tab_page_url(move(new_tab_page_url)); - request_current_settings(page_id); -} - -void WebContentClient::request_available_search_engines(u64 page_id) -{ - if (auto view = view_for_page_id(page_id); view.has_value()) - WebView::Application::the().send_available_search_engines_to_view(*view); -} - -void WebContentClient::set_search_engine(u64 page_id, Optional search_engine) -{ - WebView::Application::settings().set_search_engine(search_engine.map([](auto const& search_engine) { - return search_engine.bytes_as_string_view(); - })); - - request_current_settings(page_id); -} - Optional WebContentClient::view_for_page_id(u64 page_id, SourceLocation location) { // Don't bother logging anything for the spare WebContent process. It will only receive a load notification for about:blank. diff --git a/Libraries/LibWebView/WebContentClient.h b/Libraries/LibWebView/WebContentClient.h index 38fa2504d19..dac091f87de 100644 --- a/Libraries/LibWebView/WebContentClient.h +++ b/Libraries/LibWebView/WebContentClient.h @@ -130,11 +130,6 @@ private: virtual void did_update_navigation_buttons_state(u64 page_id, bool back_enabled, bool forward_enabled) override; virtual void did_allocate_backing_stores(u64 page_id, i32 front_bitmap_id, Gfx::ShareableBitmap, i32 back_bitmap_id, Gfx::ShareableBitmap) override; virtual Messages::WebContentClient::RequestWorkerAgentResponse request_worker_agent(u64 page_id) override; - virtual void request_current_settings(u64 page_id) override; - virtual void restore_default_settings(u64 page_id) override; - virtual void set_new_tab_page_url(u64 page_id, URL::URL new_tab_page_url) override; - virtual void request_available_search_engines(u64 page_id) override; - virtual void set_search_engine(u64 page_id, Optional search_engine) override; Optional view_for_page_id(u64, SourceLocation = SourceLocation::current()); diff --git a/Libraries/LibWebView/WebUI.cpp b/Libraries/LibWebView/WebUI.cpp index 4d2bf33ffe4..50d5b14a21b 100644 --- a/Libraries/LibWebView/WebUI.cpp +++ b/Libraries/LibWebView/WebUI.cpp @@ -9,6 +9,7 @@ #include #include #include +#include namespace WebView { @@ -38,6 +39,8 @@ ErrorOr> WebUI::create(WebContentClient& client, String host) if (host == "processes"sv) web_ui = TRY(create_web_ui(client, move(host))); + else if (host == "settings"sv) + web_ui = TRY(create_web_ui(client, move(host))); if (web_ui) web_ui->register_interfaces(); diff --git a/Libraries/LibWebView/WebUI/SettingsUI.cpp b/Libraries/LibWebView/WebUI/SettingsUI.cpp new file mode 100644 index 00000000000..c49cf717b08 --- /dev/null +++ b/Libraries/LibWebView/WebUI/SettingsUI.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2025, Tim Flynn + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include +#include +#include + +namespace WebView { + +void SettingsUI::register_interfaces() +{ + register_interface("loadCurrentSettings"sv, [this](auto const&) { + load_current_settings(); + }); + register_interface("restoreDefaultSettings"sv, [this](auto const&) { + restore_default_settings(); + }); + register_interface("setNewTabPageURL"sv, [this](auto const& data) { + set_new_tab_page_url(data); + }); + register_interface("loadAvailableSearchEngines"sv, [this](auto const&) { + load_available_search_engines(); + }); + register_interface("setSearchEngine"sv, [this](auto const& data) { + set_search_engine(data); + }); +} + +void SettingsUI::load_current_settings() +{ + auto settings = WebView::Application::settings().serialize_json(); + async_send_message("loadSettings"sv, settings); +} + +void SettingsUI::restore_default_settings() +{ + WebView::Application::settings().restore_defaults(); + load_current_settings(); +} + +void SettingsUI::set_new_tab_page_url(JsonValue const& new_tab_page_url) +{ + if (!new_tab_page_url.is_string()) + return; + + auto parsed_new_tab_page_url = URL::Parser::basic_parse(new_tab_page_url.as_string()); + if (!parsed_new_tab_page_url.has_value()) + return; + + WebView::Application::settings().set_new_tab_page_url(parsed_new_tab_page_url.release_value()); +} + +void SettingsUI::load_available_search_engines() +{ + JsonArray engines; + for (auto const& engine : search_engines()) + engines.must_append(engine.name); + + async_send_message("loadSearchEngines"sv, move(engines)); +} + +void SettingsUI::set_search_engine(JsonValue const& search_engine) +{ + if (search_engine.is_null()) + WebView::Application::settings().set_search_engine({}); + else if (search_engine.is_string()) + WebView::Application::settings().set_search_engine(search_engine.as_string()); +} + +} diff --git a/Libraries/LibWebView/WebUI/SettingsUI.h b/Libraries/LibWebView/WebUI/SettingsUI.h new file mode 100644 index 00000000000..262d600ce8a --- /dev/null +++ b/Libraries/LibWebView/WebUI/SettingsUI.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025, Tim Flynn + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +namespace WebView { + +class SettingsUI : public WebUI { + WEB_UI(SettingsUI); + +private: + virtual void register_interfaces() override; + + void load_current_settings(); + void restore_default_settings(); + void set_new_tab_page_url(JsonValue const&); + void load_available_search_engines(); + void set_search_engine(JsonValue const&); +}; + +} diff --git a/Services/WebContent/PageClient.cpp b/Services/WebContent/PageClient.cpp index ce2f2c445cb..a981a27b1a4 100644 --- a/Services/WebContent/PageClient.cpp +++ b/Services/WebContent/PageClient.cpp @@ -704,31 +704,6 @@ void PageClient::page_did_mutate_dom(FlyString const& type, Web::DOM::Node const client().async_did_mutate_dom(m_id, { type.to_string(), target.unique_id(), move(serialized_target), mutation.release_value() }); } -void PageClient::request_current_settings() -{ - client().async_request_current_settings(m_id); -} - -void PageClient::restore_default_settings() -{ - client().async_restore_default_settings(m_id); -} - -void PageClient::set_new_tab_page_url(URL::URL const& new_tab_page_url) -{ - client().async_set_new_tab_page_url(m_id, new_tab_page_url); -} - -void PageClient::request_available_search_engines() -{ - client().async_request_available_search_engines(m_id); -} - -void PageClient::set_search_engine(Optional const& search_engine) -{ - client().async_set_search_engine(m_id, search_engine); -} - ErrorOr PageClient::connect_to_webdriver(ByteString const& webdriver_ipc_path) { VERIFY(!m_webdriver); diff --git a/Services/WebContent/PageClient.h b/Services/WebContent/PageClient.h index 9f26a2ffb7b..f971cfc1fd7 100644 --- a/Services/WebContent/PageClient.h +++ b/Services/WebContent/PageClient.h @@ -175,11 +175,6 @@ private: virtual IPC::File request_worker_agent() override; virtual void page_did_mutate_dom(FlyString const& type, Web::DOM::Node const& target, Web::DOM::NodeList& added_nodes, Web::DOM::NodeList& removed_nodes, GC::Ptr previous_sibling, GC::Ptr next_sibling, Optional const& attribute_name) override; virtual void received_message_from_web_ui(String const& name, JS::Value data) override; - virtual void request_current_settings() override; - virtual void restore_default_settings() override; - virtual void set_new_tab_page_url(URL::URL const&) override; - virtual void request_available_search_engines() override; - virtual void set_search_engine(Optional const&) override; Web::Layout::Viewport* layout_root(); void setup_palette(); diff --git a/Services/WebContent/WebContentClient.ipc b/Services/WebContent/WebContentClient.ipc index 436240210e2..bf563c56791 100644 --- a/Services/WebContent/WebContentClient.ipc +++ b/Services/WebContent/WebContentClient.ipc @@ -108,10 +108,4 @@ endpoint WebContentClient did_find_in_page(u64 page_id, size_t current_match_index, Optional total_match_count) =| request_worker_agent(u64 page_id) => (IPC::File socket) // FIXME: Add required attributes to select a SharedWorker Agent - - request_current_settings(u64 page_id) =| - restore_default_settings(u64 page_id) =| - set_new_tab_page_url(u64 page_id, URL::URL new_tab_page_url) =| - request_available_search_engines(u64 page_id) =| - set_search_engine(u64 page_id, Optional search_engine) =| }