diff options
author | Tobias Christiansen <tobyase@serenityos.org> | 2022-10-20 12:06:52 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-10-20 21:26:10 +0200 |
commit | 354a845d6586f6ef6b5ab49a645d7dcdf0354860 (patch) | |
tree | f228c9cc982aaca43f283595b6cfea379d958f6e /Userland/Applications | |
parent | 202b2be1f2eda0042dd6771f339b1ab12a4ca406 (diff) | |
download | serenity-354a845d6586f6ef6b5ab49a645d7dcdf0354860.zip |
WebDriver: Implement `GET /session/{id}/element/{id}/css/{name}`
Diffstat (limited to 'Userland/Applications')
-rw-r--r-- | Userland/Applications/Browser/WebDriverConnection.cpp | 22 | ||||
-rw-r--r-- | Userland/Applications/Browser/WebDriverConnection.h | 2 | ||||
-rw-r--r-- | Userland/Applications/Browser/WebDriverSessionClient.ipc | 2 |
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) } |