WebContent: Create a temporary execution context to parse WebDriver JSON

(cherry picked from commit 264b2827cd024752c11f0d955cfdcae4cd1674c7)
This commit is contained in:
Timothy Flynn authored and Nico Weber committed 2024-11-24 17:29:26 -05:00
1 parent 81f9abdedc
commit cc36dfb039
2 files changed
+5 -1

No files matched your search

@@ -37,6 +37,7 @@
#include <LibWeb/HTML/HTMLOptGroupElement.h>
#include <LibWeb/HTML/HTMLOptionElement.h>
#include <LibWeb/HTML/HTMLSelectElement.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/TraversableNavigable.h>
#include <LibWeb/Page/Page.h>
#include <LibWeb/Platform/EventLoopPlugin.h>
@@ -2351,6 +2352,9 @@ ErrorOr<JsonArray, Web::WebDriver::Error> WebDriverConnection::find(StartNodeGet
// https://w3c.github.io/webdriver/#dfn-extract-the-script-arguments-from-a-request
ErrorOr<WebDriverConnection::ScriptArguments, Web::WebDriver::Error> WebDriverConnection::extract_the_script_arguments_from_a_request(JS::VM& vm, JsonValue const& payload)
{
// Creating JSON objects below requires an execution context.
Web::HTML::TemporaryExecutionContext execution_context { current_browsing_context().active_document()->relevant_settings_object() };
// 1. Let script be the result of getting a property named script from the parameters.
// 2. If script is not a String, return error with error code invalid argument.
auto script = TRY(get_property(payload, "script"sv));
@@ -128,7 +128,7 @@ private:
ByteString script;
JS::MarkedVector<JS::Value> arguments;
};
static ErrorOr<ScriptArguments, Web::WebDriver::Error> extract_the_script_arguments_from_a_request(JS::VM&, JsonValue const& payload);
ErrorOr<ScriptArguments, Web::WebDriver::Error> extract_the_script_arguments_from_a_request(JS::VM&, JsonValue const& payload);
void delete_cookies(Optional<StringView> const& name = {});
// https://w3c.github.io/webdriver/#dfn-page-load-strategy