mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 14:22:43 +00:00 
			
		
		
		
	 e6be5c37c0
			
		
	
	
		e6be5c37c0
		
	
	
	
	
		
			
			To test: ```console curl http://0.0.0.0:8000/session \ -H 'Content-Type: application/json' \ -d '{"capabilities": {}}' curl http://0.0.0.0:8000/session/0/execute/sync \ -H 'Content-Type: application/json' \ -d '{"script": "return window;", "args": []}' ``` Which should result in: ```json { "value": { "window-fcc6-11e5-b4f8-330a88ab9d7f": "86307df6-e2f1-4175-85cb-77295ff90898" } } ```
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			952 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			952 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2022-2023, Linus Groh <linusg@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include <AK/Forward.h>
 | |
| #include <AK/JsonValue.h>
 | |
| #include <LibJS/Forward.h>
 | |
| #include <LibJS/Runtime/Value.h>
 | |
| #include <LibWeb/Forward.h>
 | |
| 
 | |
| namespace Web::WebDriver {
 | |
| 
 | |
| enum class ExecuteScriptResultType {
 | |
|     PromiseResolved,
 | |
|     PromiseRejected,
 | |
|     Timeout,
 | |
|     JavaScriptError,
 | |
|     BrowsingContextDiscarded,
 | |
| };
 | |
| 
 | |
| struct ExecuteScriptResult {
 | |
|     ExecuteScriptResultType type;
 | |
|     JS::Value value;
 | |
| };
 | |
| 
 | |
| struct ExecuteScriptResultSerialized {
 | |
|     ExecuteScriptResultType type;
 | |
|     JsonValue value;
 | |
| };
 | |
| 
 | |
| ExecuteScriptResultSerialized execute_script(Page& page, DeprecatedString const& body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout);
 | |
| ExecuteScriptResultSerialized execute_async_script(Page& page, DeprecatedString const& body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout);
 | |
| 
 | |
| }
 |