diff --git a/Userland/Applications/Browser/Tab.cpp b/Userland/Applications/Browser/Tab.cpp index 960e3b371b..8f28ad04c7 100644 --- a/Userland/Applications/Browser/Tab.cpp +++ b/Userland/Applications/Browser/Tab.cpp @@ -281,6 +281,10 @@ Tab::Tab(BrowserWindow& window) m_dom_inspector_widget->set_dom_json(dom_tree); }; + hooks().on_get_dom_node_properties = [this](auto node_id, auto& specified, auto& computed) { + m_dom_inspector_widget->set_dom_node_properties_json(node_id, specified, computed); + }; + hooks().on_js_console_output = [this](auto& method, auto& line) { if (m_console_window) { auto* console_widget = static_cast(m_console_window->main_widget()); diff --git a/Userland/Libraries/LibWeb/OutOfProcessWebView.cpp b/Userland/Libraries/LibWeb/OutOfProcessWebView.cpp index 05755945a8..c76f004aa5 100644 --- a/Userland/Libraries/LibWeb/OutOfProcessWebView.cpp +++ b/Userland/Libraries/LibWeb/OutOfProcessWebView.cpp @@ -341,6 +341,12 @@ void OutOfProcessWebView::notify_server_did_get_dom_tree(const String& dom_tree) on_get_dom_tree(dom_tree); } +void OutOfProcessWebView::notify_server_did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style) +{ + if (on_get_dom_node_properties) + on_get_dom_node_properties(node_id, specified_style, computed_style); +} + void OutOfProcessWebView::notify_server_did_js_console_output(const String& method, const String& line) { if (on_js_console_output) diff --git a/Userland/Libraries/LibWeb/OutOfProcessWebView.h b/Userland/Libraries/LibWeb/OutOfProcessWebView.h index 1eb360cdec..5a34d52478 100644 --- a/Userland/Libraries/LibWeb/OutOfProcessWebView.h +++ b/Userland/Libraries/LibWeb/OutOfProcessWebView.h @@ -72,6 +72,7 @@ public: String notify_server_did_request_prompt(Badge, const String& message, const String& default_); void notify_server_did_get_source(const URL& url, const String& source); void notify_server_did_get_dom_tree(const String& dom_tree); + void notify_server_did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style); void notify_server_did_js_console_output(const String& method, const String& line); void notify_server_did_change_favicon(const Gfx::Bitmap& favicon); String notify_server_did_request_cookie(Badge, const URL& url, Cookie::Source source); diff --git a/Userland/Libraries/LibWeb/WebContentClient.cpp b/Userland/Libraries/LibWeb/WebContentClient.cpp index 86d9acd0ea..90a43e9dbe 100644 --- a/Userland/Libraries/LibWeb/WebContentClient.cpp +++ b/Userland/Libraries/LibWeb/WebContentClient.cpp @@ -136,11 +136,16 @@ void WebContentClient::did_get_source(URL const& url, String const& source) m_view.notify_server_did_get_source(url, source); } -void WebContentClient::did_get_dom_tree(const String& dom_tree) +void WebContentClient::did_get_dom_tree(String const& dom_tree) { m_view.notify_server_did_get_dom_tree(dom_tree); } +void WebContentClient::did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style) +{ + m_view.notify_server_did_get_dom_node_properties(node_id, specified_style, computed_style); +} + void WebContentClient::did_js_console_output(String const& method, String const& line) { m_view.notify_server_did_js_console_output(method, line); diff --git a/Userland/Libraries/LibWeb/WebContentClient.h b/Userland/Libraries/LibWeb/WebContentClient.h index 60e89d1127..309f3f43d5 100644 --- a/Userland/Libraries/LibWeb/WebContentClient.h +++ b/Userland/Libraries/LibWeb/WebContentClient.h @@ -50,6 +50,7 @@ private: virtual void did_request_image_context_menu(Gfx::IntPoint const&, URL const&, String const&, unsigned, Gfx::ShareableBitmap const&) override; virtual void did_get_source(URL const&, String const&) override; virtual void did_get_dom_tree(String const&) override; + virtual void did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style) override; virtual void did_js_console_output(String const&, String const&) override; virtual void did_change_favicon(Gfx::ShareableBitmap const&) override; virtual void did_request_alert(String const&) override; diff --git a/Userland/Libraries/LibWeb/WebViewHooks.h b/Userland/Libraries/LibWeb/WebViewHooks.h index e33ef529f0..24cc012b1f 100644 --- a/Userland/Libraries/LibWeb/WebViewHooks.h +++ b/Userland/Libraries/LibWeb/WebViewHooks.h @@ -28,6 +28,7 @@ public: Function on_set_document; Function on_get_source; Function on_get_dom_tree; + Function on_get_dom_node_properties; Function on_js_console_output; Function on_get_cookie; Function on_set_cookie; diff --git a/Userland/Services/WebContent/WebContentClient.ipc b/Userland/Services/WebContent/WebContentClient.ipc index 6369199dba..d5ea58a09d 100644 --- a/Userland/Services/WebContent/WebContentClient.ipc +++ b/Userland/Services/WebContent/WebContentClient.ipc @@ -28,6 +28,7 @@ endpoint WebContentClient did_request_prompt(String message, String default_) => (String response) did_get_source(URL url, String source) =| did_get_dom_tree(String dom_tree) =| + did_get_dom_node_properties(i32 node_id, String specified_style, String computed_style) =| did_js_console_output(String method, String line) =| did_change_favicon(Gfx::ShareableBitmap favicon) =| did_request_cookie(URL url, u8 source) => (String cookie)