diff --git a/Userland/Libraries/LibWeb/Internals/Inspector.cpp b/Userland/Libraries/LibWeb/Internals/Inspector.cpp index c84b9b740c..40974ba043 100644 --- a/Userland/Libraries/LibWeb/Internals/Inspector.cpp +++ b/Userland/Libraries/LibWeb/Internals/Inspector.cpp @@ -47,4 +47,10 @@ void Inspector::inspect_dom_node(i32 node_id, Optional const& pseudo_elemen } } +void Inspector::execute_console_script(String const& script) +{ + if (auto* page = global_object().browsing_context()->page()) + page->client().inspector_did_execute_console_script(script); +} + } diff --git a/Userland/Libraries/LibWeb/Internals/Inspector.h b/Userland/Libraries/LibWeb/Internals/Inspector.h index 86d053c7ed..f793a9abd0 100644 --- a/Userland/Libraries/LibWeb/Internals/Inspector.h +++ b/Userland/Libraries/LibWeb/Internals/Inspector.h @@ -21,6 +21,8 @@ public: void inspector_loaded(); void inspect_dom_node(i32 node_id, Optional const& pseudo_element); + void execute_console_script(String const& script); + private: explicit Inspector(JS::Realm&); diff --git a/Userland/Libraries/LibWeb/Internals/Inspector.idl b/Userland/Libraries/LibWeb/Internals/Inspector.idl index e514987456..763f413a2b 100644 --- a/Userland/Libraries/LibWeb/Internals/Inspector.idl +++ b/Userland/Libraries/LibWeb/Internals/Inspector.idl @@ -3,4 +3,6 @@ undefined inspectorLoaded(); undefined inspectDOMNode(long nodeID, optional long pseudoElement); + undefined executeConsoleScript(DOMString script); + }; diff --git a/Userland/Libraries/LibWeb/Page/Page.h b/Userland/Libraries/LibWeb/Page/Page.h index cce3a1911d..69abcb6549 100644 --- a/Userland/Libraries/LibWeb/Page/Page.h +++ b/Userland/Libraries/LibWeb/Page/Page.h @@ -265,6 +265,7 @@ public: virtual void inspector_did_load() { } virtual void inspector_did_select_dom_node([[maybe_unused]] i32 node_id, [[maybe_unused]] Optional const& pseudo_element) { } + virtual void inspector_did_execute_console_script([[maybe_unused]] String const& script) { } protected: virtual ~PageClient() = default; diff --git a/Userland/Libraries/LibWebView/ViewImplementation.h b/Userland/Libraries/LibWebView/ViewImplementation.h index 98a20e490d..6d7a1e0506 100644 --- a/Userland/Libraries/LibWebView/ViewImplementation.h +++ b/Userland/Libraries/LibWebView/ViewImplementation.h @@ -149,6 +149,7 @@ public: Function on_insert_clipboard_entry; Function on_inspector_loaded; Function const&)> on_inspector_selected_dom_node; + Function on_inspector_executed_console_script; virtual Gfx::IntRect viewport_rect() const = 0; virtual Gfx::IntPoint to_content_position(Gfx::IntPoint widget_position) const = 0; diff --git a/Userland/Libraries/LibWebView/WebContentClient.cpp b/Userland/Libraries/LibWebView/WebContentClient.cpp index 5a1ece2f39..8f3b8164e2 100644 --- a/Userland/Libraries/LibWebView/WebContentClient.cpp +++ b/Userland/Libraries/LibWebView/WebContentClient.cpp @@ -414,4 +414,10 @@ void WebContentClient::inspector_did_select_dom_node(i32 node_id, Optional const& pseudo_element) override; + virtual void inspector_did_execute_console_script(String const& script) override; ViewImplementation& m_view; }; diff --git a/Userland/Services/WebContent/PageClient.cpp b/Userland/Services/WebContent/PageClient.cpp index 681adaadd4..6a2075768a 100644 --- a/Userland/Services/WebContent/PageClient.cpp +++ b/Userland/Services/WebContent/PageClient.cpp @@ -508,6 +508,11 @@ void PageClient::inspector_did_select_dom_node(i32 node_id, Optional PageClient::connect_to_webdriver(DeprecatedString const& webdriver_ipc_path) { VERIFY(!m_webdriver); diff --git a/Userland/Services/WebContent/PageClient.h b/Userland/Services/WebContent/PageClient.h index 132a214ff5..1ff91f3f47 100644 --- a/Userland/Services/WebContent/PageClient.h +++ b/Userland/Services/WebContent/PageClient.h @@ -120,6 +120,7 @@ private: virtual void page_did_insert_clipboard_entry(String data, String presentation_style, String mime_type) override; virtual void inspector_did_load() override; virtual void inspector_did_select_dom_node(i32 node_id, Optional const& pseudo_element) override; + virtual void inspector_did_execute_console_script(String const& script) override; Web::Layout::Viewport* layout_root(); void setup_palette(); diff --git a/Userland/Services/WebContent/WebContentClient.ipc b/Userland/Services/WebContent/WebContentClient.ipc index c35fc5ef06..785815f2ac 100644 --- a/Userland/Services/WebContent/WebContentClient.ipc +++ b/Userland/Services/WebContent/WebContentClient.ipc @@ -72,5 +72,6 @@ endpoint WebContentClient inspector_did_load() =| inspector_did_select_dom_node(i32 node_id, Optional pseudo_element) =| + inspector_did_execute_console_script(String script) =| }