mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-23 17:33:12 +00:00
Instead of maintaining a list of script execution result types, which we then map to WebDriver error types, just return the WebDriver error that is specified by the spec. Then perform the JSON clone algorithm from the caller in WebDriverConnection, again as specified by the spec. To do so, this moves the JSON clone algorithm to its own file. This will also be the future home of the JSON deserialize algorithm, which will need some of the internal AOs implemented there.
32 lines
1.3 KiB
C++
32 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2022-2023, Linus Groh <linusg@serenityos.org>
|
|
* Copyright (c) 2024, Tim Flynn <trflynn89@ladybird.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/Forward.h>
|
|
#include <LibJS/Forward.h>
|
|
#include <LibJS/Heap/HeapFunction.h>
|
|
#include <LibJS/Runtime/Promise.h>
|
|
#include <LibJS/Runtime/Value.h>
|
|
#include <LibWeb/Forward.h>
|
|
|
|
namespace Web::WebDriver {
|
|
|
|
struct ExecutionResult {
|
|
JS::Promise::State state { JS::Promise::State::Pending };
|
|
JS::Value value {};
|
|
};
|
|
|
|
using OnScriptComplete = JS::HeapFunction<void(ExecutionResult)>;
|
|
|
|
JS::ThrowCompletionOr<JS::Value> execute_a_function_body(HTML::BrowsingContext const&, ByteString const& body, ReadonlySpan<JS::Value> parameters);
|
|
JS::ThrowCompletionOr<JS::Value> execute_a_function_body(HTML::Window const&, ByteString const& body, ReadonlySpan<JS::Value> parameters, JS::GCPtr<JS::Object> environment_override_object = {});
|
|
|
|
void execute_script(HTML::BrowsingContext const&, ByteString body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout_ms, JS::NonnullGCPtr<OnScriptComplete> on_complete);
|
|
void execute_async_script(HTML::BrowsingContext const&, ByteString body, JS::MarkedVector<JS::Value> arguments, Optional<u64> const& timeout_ms, JS::NonnullGCPtr<OnScriptComplete> on_complete);
|
|
|
|
}
|