/* * Copyright (c) 2022-2023, Linus Groh * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Web::WebDriver { enum class ExecuteScriptResultType { PromiseResolved, PromiseRejected, Timeout, JavaScriptError, BrowsingContextDiscarded, StaleElement, }; struct ExecuteScriptResult { ExecuteScriptResultType type; JS::Value value; }; struct ExecuteScriptResultSerialized { ExecuteScriptResultType type; JsonValue value; }; using OnScriptComplete = JS::HeapFunction; void execute_script(HTML::BrowsingContext const&, ByteString body, JS::MarkedVector arguments, Optional const& timeout_ms, JS::NonnullGCPtr on_complete); void execute_async_script(HTML::BrowsingContext const&, ByteString body, JS::MarkedVector arguments, Optional const& timeout_ms, JS::NonnullGCPtr on_complete); }