mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 12:32:43 +00:00 
			
		
		
		
	WebDriver: Implement stub for /session/{id}/print
This commit is contained in:
		
							parent
							
								
									a1c1ab5f8d
								
							
						
					
					
						commit
						02a2018ec4
					
				
					 7 changed files with 23 additions and 0 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Baitinq
						Baitinq