1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 20:17:44 +00:00

WebContent+WebDriver: Send the parsed capabilities over to WebContent

This commit is contained in:
Timothy Flynn 2022-11-17 16:27:32 -05:00 committed by Linus Groh
parent e0c7b5747d
commit adc7977ec7
4 changed files with 84 additions and 3 deletions

View file

@ -1,7 +1,11 @@
#include <LibWeb/WebDriver/Capabilities.h>
#include <LibWeb/WebDriver/Response.h>
endpoint WebDriverClient {
close_session() => ()
set_page_load_strategy(Web::WebDriver::PageLoadStrategy page_load_strategy) =|
set_unhandled_prompt_behavior(Web::WebDriver::UnhandledPromptBehavior unhandled_prompt_behavior) =|
set_strict_file_interactability(bool strict_file_interactability) =|
set_is_webdriver_active(bool active) =|
get_timeouts() => (Web::WebDriver::Response response)
set_timeouts(JsonValue payload) => (Web::WebDriver::Response response)

View file

@ -280,6 +280,21 @@ void WebDriverConnection::close_session()
m_page_host.page().top_level_browsing_context().close();
}
void WebDriverConnection::set_page_load_strategy(Web::WebDriver::PageLoadStrategy const& page_load_strategy)
{
m_page_load_strategy = page_load_strategy;
}
void WebDriverConnection::set_unhandled_prompt_behavior(Web::WebDriver::UnhandledPromptBehavior const& unhandled_prompt_behavior)
{
m_unhandled_prompt_behavior = unhandled_prompt_behavior;
}
void WebDriverConnection::set_strict_file_interactability(bool strict_file_interactability)
{
m_strict_file_interactability = strict_file_interactability;
}
void WebDriverConnection::set_is_webdriver_active(bool is_webdriver_active)
{
m_page_host.set_is_webdriver_active(is_webdriver_active);

View file

@ -37,6 +37,9 @@ private:
virtual void die() override { }
virtual void close_session() override;
virtual void set_page_load_strategy(Web::WebDriver::PageLoadStrategy const& page_load_strategy) override;
virtual void set_unhandled_prompt_behavior(Web::WebDriver::UnhandledPromptBehavior const& unhandled_prompt_behavior) override;
virtual void set_strict_file_interactability(bool strict_file_interactability) override;
virtual void set_is_webdriver_active(bool) override;
virtual Messages::WebDriverClient::GetTimeoutsResponse get_timeouts() override;
virtual Messages::WebDriverClient::SetTimeoutsResponse set_timeouts(JsonValue const& payload) override;
@ -102,6 +105,15 @@ private:
ConnectionFromClient& m_web_content_client;
PageHost& m_page_host;
// https://w3c.github.io/webdriver/#dfn-page-load-strategy
Web::WebDriver::PageLoadStrategy m_page_load_strategy { Web::WebDriver::PageLoadStrategy::Normal };
// https://w3c.github.io/webdriver/#dfn-unhandled-prompt-behavior
Web::WebDriver::UnhandledPromptBehavior m_unhandled_prompt_behavior { Web::WebDriver::UnhandledPromptBehavior::DismissAndNotify };
// https://w3c.github.io/webdriver/#dfn-strict-file-interactability
bool m_strict_file_interactability { false };
// https://w3c.github.io/webdriver/#dfn-session-script-timeout
Web::WebDriver::TimeoutsConfiguration m_timeouts_configuration;