mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 19:59:17 +00:00
LibWeb+WebContent: Simplify hand-rolled script execution result struct
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.
This commit is contained in:
parent
a5ca036d36
commit
6fb8500a7a
Notes:
github-actions[bot]
2024-11-03 17:08:45 +00:00
Author: https://github.com/trflynn89
Commit: 6fb8500a7a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2137
7 changed files with 317 additions and 363 deletions
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
* Copyright (c) 2022-2023, Linus Groh <linusg@serenityos.org>
|
||||
* Copyright (c) 2024, Tim Flynn <trflynn89@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
@ -7,35 +8,20 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/Forward.h>
|
||||
#include <AK/JsonValue.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 {
|
||||
|
||||
enum class ExecuteScriptResultType {
|
||||
PromiseResolved,
|
||||
PromiseRejected,
|
||||
Timeout,
|
||||
JavaScriptError,
|
||||
BrowsingContextDiscarded,
|
||||
StaleElement,
|
||||
DetachedShadowRoot,
|
||||
struct ExecutionResult {
|
||||
JS::Promise::State state { JS::Promise::State::Pending };
|
||||
JS::Value value {};
|
||||
};
|
||||
|
||||
struct ExecuteScriptResult {
|
||||
ExecuteScriptResultType type;
|
||||
JS::Value value;
|
||||
};
|
||||
|
||||
struct ExecuteScriptResultSerialized {
|
||||
ExecuteScriptResultType type;
|
||||
JsonValue value;
|
||||
};
|
||||
|
||||
using OnScriptComplete = JS::HeapFunction<void(ExecuteScriptResultSerialized)>;
|
||||
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 = {});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue