diff --git a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs index 2749caf266f0a..9ac6504950b2c 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs @@ -27,8 +27,8 @@ namespace OpenQA.Selenium.BiDi.Communication.Json; [JsonSerializable(typeof(MessageError))] [JsonSerializable(typeof(MessageEvent))] -[JsonSerializable(typeof(Modules.Script.EvaluateResult.Success))] -[JsonSerializable(typeof(Modules.Script.EvaluateResult.Exception))] +[JsonSerializable(typeof(Modules.Script.EvaluateResultSuccess))] +[JsonSerializable(typeof(Modules.Script.EvaluateResultException))] [JsonSerializable(typeof(Modules.Script.NumberRemoteValue))] [JsonSerializable(typeof(Modules.Script.BooleanRemoteValue))] diff --git a/dotnet/src/webdriver/BiDi/Communication/Json/Converters/Polymorphic/EvaluateResultConverter.cs b/dotnet/src/webdriver/BiDi/Communication/Json/Converters/Polymorphic/EvaluateResultConverter.cs index 0aa560798cf87..c6ae850e5a118 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Json/Converters/Polymorphic/EvaluateResultConverter.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Json/Converters/Polymorphic/EvaluateResultConverter.cs @@ -33,8 +33,8 @@ internal class EvaluateResultConverter : JsonConverter return jsonDocument.RootElement.GetProperty("type").ToString() switch { - "success" => jsonDocument.Deserialize(options), - "exception" => jsonDocument.Deserialize(options), + "success" => jsonDocument.Deserialize(options), + "exception" => jsonDocument.Deserialize(options), _ => null, }; } diff --git a/dotnet/src/webdriver/BiDi/Modules/BrowsingContext/BrowsingContextScriptModule.cs b/dotnet/src/webdriver/BiDi/Modules/BrowsingContext/BrowsingContextScriptModule.cs index 9506ad058d565..82ae97d28bd72 100644 --- a/dotnet/src/webdriver/BiDi/Modules/BrowsingContext/BrowsingContextScriptModule.cs +++ b/dotnet/src/webdriver/BiDi/Modules/BrowsingContext/BrowsingContextScriptModule.cs @@ -44,7 +44,7 @@ public async Task> GetRealmsAsync(GetRealmsOptions? opt return await scriptModule.GetRealmsAsync(options).ConfigureAwait(false); } - public Task EvaluateAsync(string expression, bool awaitPromise, EvaluateOptions? options = null, ContextTargetOptions? targetOptions = null) + public Task EvaluateAsync(string expression, bool awaitPromise, EvaluateOptions? options = null, ContextTargetOptions? targetOptions = null) { var contextTarget = new ContextTarget(context); @@ -63,7 +63,7 @@ public async Task> GetRealmsAsync(GetRealmsOptions? opt return result.Result.ConvertTo(); } - public Task CallFunctionAsync(string functionDeclaration, bool awaitPromise, CallFunctionOptions? options = null, ContextTargetOptions? targetOptions = null) + public Task CallFunctionAsync(string functionDeclaration, bool awaitPromise, CallFunctionOptions? options = null, ContextTargetOptions? targetOptions = null) { var contextTarget = new ContextTarget(context); diff --git a/dotnet/src/webdriver/BiDi/Modules/Script/EvaluateCommand.cs b/dotnet/src/webdriver/BiDi/Modules/Script/EvaluateCommand.cs index 94b5d93ab3348..d125b59fd706b 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Script/EvaluateCommand.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Script/EvaluateCommand.cs @@ -37,16 +37,15 @@ public record EvaluateOptions : CommandOptions // https://github.com/dotnet/runtime/issues/72604 //[JsonPolymorphic(TypeDiscriminatorPropertyName = "type")] -//[JsonDerivedType(typeof(Success), "success")] -//[JsonDerivedType(typeof(Exception), "exception")] -public abstract record EvaluateResult -{ - public record Success(RemoteValue Result, Realm Realm) : EvaluateResult - { - public static implicit operator RemoteValue(Success success) => success.Result; - } +//[JsonDerivedType(typeof(EvaluateResultSuccess), "success")] +//[JsonDerivedType(typeof(EvaluateResultException), "exception")] +public abstract record EvaluateResult; - public record Exception(ExceptionDetails ExceptionDetails, Realm Realm) : EvaluateResult; +public record EvaluateResultSuccess(RemoteValue Result, Realm Realm) : EvaluateResult +{ + public static implicit operator RemoteValue(EvaluateResultSuccess success) => success.Result; } +public record EvaluateResultException(ExceptionDetails ExceptionDetails, Realm Realm) : EvaluateResult; + public record ExceptionDetails(long ColumnNumber, long LineNumber, StackTrace StackTrace, string Text); diff --git a/dotnet/src/webdriver/BiDi/Modules/Script/ScriptEvaluateException.cs b/dotnet/src/webdriver/BiDi/Modules/Script/ScriptEvaluateException.cs index f15171b4a389a..6b8f92deedcbc 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Script/ScriptEvaluateException.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Script/ScriptEvaluateException.cs @@ -21,9 +21,9 @@ namespace OpenQA.Selenium.BiDi.Modules.Script; -public class ScriptEvaluateException(EvaluateResult.Exception evaluateResultException) : Exception +public class ScriptEvaluateException(EvaluateResultException evaluateResultException) : Exception { - private readonly EvaluateResult.Exception _evaluateResultException = evaluateResultException; + private readonly EvaluateResultException _evaluateResultException = evaluateResultException; public string Text => _evaluateResultException.ExceptionDetails.Text; diff --git a/dotnet/src/webdriver/BiDi/Modules/Script/ScriptModule.cs b/dotnet/src/webdriver/BiDi/Modules/Script/ScriptModule.cs index bb6a9f1a18021..fde575506f88e 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Script/ScriptModule.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Script/ScriptModule.cs @@ -25,18 +25,18 @@ namespace OpenQA.Selenium.BiDi.Modules.Script; public sealed class ScriptModule(Broker broker) : Module(broker) { - public async Task EvaluateAsync(string expression, bool awaitPromise, Target target, EvaluateOptions? options = null) + public async Task EvaluateAsync(string expression, bool awaitPromise, Target target, EvaluateOptions? options = null) { var @params = new EvaluateCommandParameters(expression, target, awaitPromise, options?.ResultOwnership, options?.SerializationOptions, options?.UserActivation); var result = await Broker.ExecuteCommandAsync(new EvaluateCommand(@params), options).ConfigureAwait(false); - if (result is EvaluateResult.Exception exp) + if (result is EvaluateResultException exp) { throw new ScriptEvaluateException(exp); } - return (EvaluateResult.Success)result; + return (EvaluateResultSuccess)result; } public async Task EvaluateAsync(string expression, bool awaitPromise, Target target, EvaluateOptions? options = null) @@ -46,18 +46,18 @@ public sealed class ScriptModule(Broker broker) : Module(broker) return result.Result.ConvertTo(); } - public async Task CallFunctionAsync(string functionDeclaration, bool awaitPromise, Target target, CallFunctionOptions? options = null) + public async Task CallFunctionAsync(string functionDeclaration, bool awaitPromise, Target target, CallFunctionOptions? options = null) { var @params = new CallFunctionCommandParameters(functionDeclaration, awaitPromise, target, options?.Arguments, options?.ResultOwnership, options?.SerializationOptions, options?.This, options?.UserActivation); var result = await Broker.ExecuteCommandAsync(new CallFunctionCommand(@params), options).ConfigureAwait(false); - if (result is EvaluateResult.Exception exp) + if (result is EvaluateResultException exp) { throw new ScriptEvaluateException(exp); } - return (EvaluateResult.Success)result; + return (EvaluateResultSuccess)result; } public async Task CallFunctionAsync(string functionDeclaration, bool awaitPromise, Target target, CallFunctionOptions? options = null)