1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:07:35 +00:00

LibWeb+WebContent: Virtualize methods needed for WebDriver in PageClient

WebDriver currently uses the WebContent::ConnectionFromClient IPC class
directly for these features. To support headless-browser, WebDriver will
instead need to rely on PageClient to provide these.
This commit is contained in:
Timothy Flynn 2022-11-21 16:10:57 -05:00 committed by Linus Groh
parent be80d43161
commit 46b2cb308d
4 changed files with 111 additions and 16 deletions

View file

@ -92,7 +92,7 @@ void PageHost::set_window_size(Gfx::IntSize const& size)
ErrorOr<void> PageHost::connect_to_webdriver(String const& webdriver_ipc_path)
{
VERIFY(!m_webdriver);
m_webdriver = TRY(WebDriverConnection::connect(m_client, *this, webdriver_ipc_path));
m_webdriver = TRY(WebDriverConnection::connect(*this, webdriver_ipc_path));
return {};
}
@ -163,6 +163,51 @@ void PageHost::page_did_change_title(String const& title)
m_client.async_did_change_title(title);
}
void PageHost::page_did_request_navigate_back()
{
m_client.async_did_request_navigate_back();
}
void PageHost::page_did_request_navigate_forward()
{
m_client.async_did_request_navigate_forward();
}
void PageHost::page_did_request_refresh()
{
m_client.async_did_request_refresh();
}
Gfx::IntSize PageHost::page_did_request_resize_window(Gfx::IntSize const& size)
{
return m_client.did_request_resize_window(size);
}
Gfx::IntPoint PageHost::page_did_request_reposition_window(Gfx::IntPoint const& position)
{
return m_client.did_request_reposition_window(position);
}
void PageHost::page_did_request_restore_window()
{
m_client.async_did_request_restore_window();
}
Gfx::IntRect PageHost::page_did_request_maximize_window()
{
return m_client.did_request_maximize_window();
}
Gfx::IntRect PageHost::page_did_request_minimize_window()
{
return m_client.did_request_minimize_window();
}
Gfx::IntRect PageHost::page_did_request_fullscreen_window()
{
return m_client.did_request_fullscreen_window();
}
void PageHost::page_did_request_scroll(i32 x_delta, i32 y_delta)
{
m_client.async_did_request_scroll(x_delta, y_delta);
@ -258,6 +303,11 @@ void PageHost::page_did_request_prompt(String const& message, String const& defa
m_client.async_did_request_prompt(message, default_);
}
void PageHost::page_did_request_set_prompt_text(String const& text)
{
m_client.async_did_request_set_prompt_text(text);
}
void PageHost::prompt_closed(String response)
{
page().prompt_closed(move(response));
@ -284,6 +334,16 @@ void PageHost::page_did_request_image_context_menu(Gfx::IntPoint const& content_
m_client.async_did_request_image_context_menu(content_position, url, target, modifiers, bitmap);
}
Vector<Web::Cookie::Cookie> PageHost::page_did_request_all_cookies(URL const& url)
{
return m_client.did_request_all_cookies(url);
}
Optional<Web::Cookie::Cookie> PageHost::page_did_request_named_cookie(URL const& url, String const& name)
{
return m_client.did_request_named_cookie(url, name);
}
String PageHost::page_did_request_cookie(const URL& url, Web::Cookie::Source source)
{
auto response = m_client.send_sync_but_allow_failure<Messages::WebContentClient::DidRequestCookie>(move(url), static_cast<u8>(source));
@ -299,6 +359,11 @@ void PageHost::page_did_set_cookie(const URL& url, Web::Cookie::ParsedCookie con
m_client.async_did_set_cookie(url, cookie, static_cast<u8>(source));
}
void PageHost::page_did_update_cookie(URL const& url, Web::Cookie::Cookie cookie)
{
m_client.async_did_update_cookie(url, move(cookie));
}
void PageHost::page_did_update_resource_count(i32 count_waiting)
{
m_client.async_did_update_resource_count(count_waiting);