mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 09:30:24 +00:00
WebContent+WebDriver: Inform WebDriver when a window is closed from JS
This hooks into the same PageClient method that closes the UI tab after an invocation to window.close().
This commit is contained in:
parent
84df1bf585
commit
556a0936dd
Notes:
github-actions[bot]
2024-10-06 00:43:38 +00:00
Author: https://github.com/trflynn89 Commit: https://github.com/LadybirdBrowser/ladybird/commit/556a0936dd3 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1644 Reviewed-by: https://github.com/shannonbooth ✅
4 changed files with 10 additions and 0 deletions
|
@ -538,6 +538,9 @@ void PageClient::page_did_close_top_level_traversable()
|
|||
// FIXME: Rename this IPC call
|
||||
client().async_did_close_browsing_context(m_id);
|
||||
|
||||
if (m_webdriver)
|
||||
m_webdriver->async_window_closed();
|
||||
|
||||
// NOTE: This only removes the strong reference the PageHost has for this PageClient.
|
||||
// It will be GC'd 'later'.
|
||||
m_owner.remove_page({}, m_id);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include <LibWeb/WebDriver/Response.h>
|
||||
|
||||
endpoint WebDriverServer {
|
||||
window_closed() =|
|
||||
script_executed(Web::WebDriver::Response response) =|
|
||||
actions_performed(Web::WebDriver::Response response) =|
|
||||
}
|
||||
|
|
|
@ -20,6 +20,11 @@ void WebContentConnection::die()
|
|||
on_close();
|
||||
}
|
||||
|
||||
void WebContentConnection::window_closed()
|
||||
{
|
||||
shutdown();
|
||||
}
|
||||
|
||||
void WebContentConnection::script_executed(Web::WebDriver::Response const& response)
|
||||
{
|
||||
if (on_script_executed)
|
||||
|
|
|
@ -27,6 +27,7 @@ public:
|
|||
private:
|
||||
virtual void die() override;
|
||||
|
||||
virtual void window_closed() override;
|
||||
virtual void script_executed(Web::WebDriver::Response const&) override;
|
||||
virtual void actions_performed(Web::WebDriver::Response const&) override;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue