mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-27 18:17:22 +02:00
LibWeb+WebContent: Add WebDriver infrastructure for executing scripts
This cannot be done on the Browser or WebDriver ends, or via the existing run_javascript() IPC endpoint, as we cannot transfer JS objects through the IPC boundary (yet), only serialized JSON, so the individual WebDriver steps around script execution need to run in the WebContent process.
This commit is contained in:
Notes:
sideshowbarker
2024-07-17 06:39:26 +09:00
Author: https://github.com/linusg Commit: https://github.com/SerenityOS/serenity/commit/b572a91a6f Pull-request: https://github.com/SerenityOS/serenity/pull/15892 Reviewed-by: https://github.com/FireFox317 Reviewed-by: https://github.com/trflynn89 ✅
37
Userland/Libraries/LibWeb/WebDriver/ExecuteScript.h
Normal file
37
Userland/Libraries/LibWeb/WebDriver/ExecuteScript.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 2022, 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,
|
||||
};
|
||||
|
||||
struct ExecuteScriptResult {
|
||||
ExecuteScriptResultType type;
|
||||
JS::Value value;
|
||||
};
|
||||
|
||||
struct ExecuteScriptResultSerialized {
|
||||
ExecuteScriptResultType type;
|
||||
JsonValue value;
|
||||
};
|
||||
|
||||
ExecuteScriptResultSerialized execute_script(Page& page, String const& body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout);
|
||||
ExecuteScriptResultSerialized execute_async_script(Page& page, String const& body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user