Forráskód Böngészése

WebContent: Create a temporary execution context to parse WebDriver JSON

Timothy Flynn 9 hónapja
szülő
commit
264b2827cd

+ 4 - 0
Userland/Services/WebContent/WebDriverConnection.cpp

@@ -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>
@@ -2350,6 +2351,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));

+ 1 - 1
Userland/Services/WebContent/WebDriverConnection.h

@@ -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