mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
WebDriver: Implement stub for /session/{id}/print
This commit is contained in:
parent
a1c1ab5f8d
commit
02a2018ec4
Notes:
sideshowbarker
2024-07-17 04:00:53 +09:00
Author: https://github.com/Baitinq Commit: https://github.com/SerenityOS/serenity/commit/02a2018ec4 Pull-request: https://github.com/SerenityOS/serenity/pull/16216 Reviewed-by: https://github.com/linusg
|
@ -99,6 +99,7 @@ static constexpr auto s_webdriver_endpoints = Array {
|
|||
ROUTE(POST, "/session/:session_id/alert/text"sv, send_alert_text),
|
||||
ROUTE(GET, "/session/:session_id/screenshot"sv, take_screenshot),
|
||||
ROUTE(GET, "/session/:session_id/element/:element_id/screenshot"sv, take_element_screenshot),
|
||||
ROUTE(POST, "/session/:session_id/print"sv, print_page),
|
||||
};
|
||||
|
||||
// https://w3c.github.io/webdriver/#dfn-match-a-request
|
||||
|
|
|
@ -96,6 +96,9 @@ public:
|
|||
virtual Response take_screenshot(Parameters parameters, JsonValue payload) = 0;
|
||||
virtual Response take_element_screenshot(Parameters parameters, JsonValue payload) = 0;
|
||||
|
||||
// 18. Print, https://w3c.github.io/webdriver/#print
|
||||
virtual Response print_page(Parameters parameters, JsonValue payload) = 0;
|
||||
|
||||
protected:
|
||||
Client(NonnullOwnPtr<Core::Stream::BufferedTCPSocket>, Core::Object* parent);
|
||||
|
||||
|
|
|
@ -53,4 +53,5 @@ endpoint WebDriverClient {
|
|||
send_alert_text(JsonValue payload) => (Web::WebDriver::Response response)
|
||||
take_screenshot() => (Web::WebDriver::Response response)
|
||||
take_element_screenshot(String element_id) => (Web::WebDriver::Response response)
|
||||
print_page() => (Web::WebDriver::Response response)
|
||||
}
|
||||
|
|
|
@ -1533,6 +1533,13 @@ Messages::WebDriverClient::TakeElementScreenshotResponse WebDriverConnection::ta
|
|||
return encoded_string;
|
||||
}
|
||||
|
||||
// 18.1 Print Page, https://w3c.github.io/webdriver/#dfn-print-page
|
||||
Messages::WebDriverClient::PrintPageResponse WebDriverConnection::print_page()
|
||||
{
|
||||
// FIXME: Actually implement this :^)
|
||||
return Web::WebDriver::Error::from_code(Web::WebDriver::ErrorCode::UnsupportedOperation, "Print not implemented"sv);
|
||||
}
|
||||
|
||||
// https://w3c.github.io/webdriver/#dfn-no-longer-open
|
||||
ErrorOr<void, Web::WebDriver::Error> WebDriverConnection::ensure_open_top_level_browsing_context()
|
||||
{
|
||||
|
|
|
@ -88,6 +88,7 @@ private:
|
|||
virtual Messages::WebDriverClient::SendAlertTextResponse send_alert_text(JsonValue const& payload) override;
|
||||
virtual Messages::WebDriverClient::TakeScreenshotResponse take_screenshot() override;
|
||||
virtual Messages::WebDriverClient::TakeElementScreenshotResponse take_element_screenshot(String const& element_id) override;
|
||||
virtual Messages::WebDriverClient::PrintPageResponse print_page() override;
|
||||
|
||||
ErrorOr<void, Web::WebDriver::Error> ensure_open_top_level_browsing_context();
|
||||
ErrorOr<void, Web::WebDriver::Error> handle_any_user_prompts();
|
||||
|
|
|
@ -646,4 +646,13 @@ Web::WebDriver::Response Client::take_element_screenshot(Web::WebDriver::Paramet
|
|||
return session->web_content_connection().take_element_screenshot(parameters[1]);
|
||||
}
|
||||
|
||||
// 18.1 Print Page, https://w3c.github.io/webdriver/#dfn-print-page
|
||||
// POST /session/{session id}/print
|
||||
Web::WebDriver::Response Client::print_page(Web::WebDriver::Parameters parameters, JsonValue)
|
||||
{
|
||||
dbgln_if(WEBDRIVER_DEBUG, "Handling POST /session/<session id>/print");
|
||||
auto* session = TRY(find_session_with_id(parameters[0]));
|
||||
return session->web_content_connection().print_page();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -82,6 +82,7 @@ private:
|
|||
virtual Web::WebDriver::Response send_alert_text(Web::WebDriver::Parameters parameters, JsonValue payload) override;
|
||||
virtual Web::WebDriver::Response take_screenshot(Web::WebDriver::Parameters parameters, JsonValue payload) override;
|
||||
virtual Web::WebDriver::Response take_element_screenshot(Web::WebDriver::Parameters parameters, JsonValue payload) override;
|
||||
virtual Web::WebDriver::Response print_page(Web::WebDriver::Parameters parameters, JsonValue payload) override;
|
||||
|
||||
static NonnullOwnPtrVector<Session> s_sessions;
|
||||
static Atomic<unsigned> s_next_session_id;
|
||||
|
|
Loading…
Reference in a new issue