summaryrefslogtreecommitdiff
path: root/Userland/Applications
diff options
context:
space:
mode:
authorTobias Christiansen <tobyase@serenityos.org>2022-10-20 12:06:52 +0200
committerLinus Groh <mail@linusgroh.de>2022-10-20 21:26:10 +0200
commit354a845d6586f6ef6b5ab49a645d7dcdf0354860 (patch)
treef228c9cc982aaca43f283595b6cfea379d958f6e /Userland/Applications
parent202b2be1f2eda0042dd6771f339b1ab12a4ca406 (diff)
downloadserenity-354a845d6586f6ef6b5ab49a645d7dcdf0354860.zip
WebDriver: Implement `GET /session/{id}/element/{id}/css/{name}`
Diffstat (limited to 'Userland/Applications')
-rw-r--r--Userland/Applications/Browser/WebDriverConnection.cpp22
-rw-r--r--Userland/Applications/Browser/WebDriverConnection.h2
-rw-r--r--Userland/Applications/Browser/WebDriverSessionClient.ipc2
3 files changed, 26 insertions, 0 deletions
diff --git a/Userland/Applications/Browser/WebDriverConnection.cpp b/Userland/Applications/Browser/WebDriverConnection.cpp
index 0fc82d4e7c..c7bf1aa65f 100644
--- a/Userland/Applications/Browser/WebDriverConnection.cpp
+++ b/Userland/Applications/Browser/WebDriverConnection.cpp
@@ -166,4 +166,26 @@ Messages::WebDriverSessionClient::GetElementPropertyResponse WebDriverConnection
return { {} };
}
+Messages::WebDriverSessionClient::GetActiveDocumentsTypeResponse WebDriverConnection::get_active_documents_type()
+{
+ dbgln("WebDriverConnection: get_active_documents_type");
+ if (auto browser_window = m_browser_window.strong_ref()) {
+ auto& tab = browser_window->active_tab();
+ if (tab.on_get_active_documents_type)
+ return { tab.on_get_active_documents_type() };
+ }
+ return { "" };
+}
+
+Messages::WebDriverSessionClient::GetComputedValueForElementResponse WebDriverConnection::get_computed_value_for_element(i32 element_id, String const& property_name)
+{
+ dbgln("WebDriverConnection: get_computed_value_for_element");
+ if (auto browser_window = m_browser_window.strong_ref()) {
+ auto& tab = browser_window->active_tab();
+ if (tab.on_get_computed_value_for_element)
+ return { tab.on_get_computed_value_for_element(element_id, property_name) };
+ }
+ return { "" };
+}
+
}
diff --git a/Userland/Applications/Browser/WebDriverConnection.h b/Userland/Applications/Browser/WebDriverConnection.h
index f4e1f62859..9c32bf43c7 100644
--- a/Userland/Applications/Browser/WebDriverConnection.h
+++ b/Userland/Applications/Browser/WebDriverConnection.h
@@ -51,6 +51,8 @@ public:
virtual Messages::WebDriverSessionClient::QuerySelectorAllResponse query_selector_all(i32 start_node_id, String const& selector) override;
virtual Messages::WebDriverSessionClient::GetElementAttributeResponse get_element_attribute(i32 element_id, String const& name) override;
virtual Messages::WebDriverSessionClient::GetElementPropertyResponse get_element_property(i32 element_id, String const& name) override;
+ virtual Messages::WebDriverSessionClient::GetActiveDocumentsTypeResponse get_active_documents_type() override;
+ virtual Messages::WebDriverSessionClient::GetComputedValueForElementResponse get_computed_value_for_element(i32 element_id, String const& property_name) override;
private:
WebDriverConnection(NonnullOwnPtr<Core::Stream::LocalSocket> socket, NonnullRefPtr<BrowserWindow> browser_window);
diff --git a/Userland/Applications/Browser/WebDriverSessionClient.ipc b/Userland/Applications/Browser/WebDriverSessionClient.ipc
index ef237d9b66..4896650c76 100644
--- a/Userland/Applications/Browser/WebDriverSessionClient.ipc
+++ b/Userland/Applications/Browser/WebDriverSessionClient.ipc
@@ -20,5 +20,7 @@ endpoint WebDriverSessionClient {
query_selector_all(i32 start_node_id, String selector) => (Optional<Vector<i32>> elements_ids)
get_element_attribute(i32 element_id, String name) => (Optional<String> atttibute)
get_element_property(i32 element_id, String name) => (Optional<String> property)
+ get_active_documents_type() => (String type)
+ get_computed_value_for_element(i32 element_id, String property_name) => (String computed_value)
}