From 7dc979029be004bf5986e2202b69d16cc40c037c Mon Sep 17 00:00:00 2001 From: Nikolay Borisenko <22616990+nvborisenko@users.noreply.github.com> Date: Tue, 1 Apr 2025 21:55:52 +0300 Subject: [PATCH 1/2] Rework --- .../Json/BiDiJsonSerializerContext.cs | 1 - .../Network/ContinueWithAuthCommand.cs | 27 +++++++++++-------- .../BiDi/Modules/Network/NetworkModule.cs | 12 ++++----- .../webdriver/BiDi/Modules/Network/Request.cs | 6 ++--- .../test/common/BiDi/Network/NetworkTest.cs | 5 ++-- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs index 9ac6504950b2c..240e30330655a 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs @@ -120,7 +120,6 @@ namespace OpenQA.Selenium.BiDi.Communication.Json; [JsonSerializable(typeof(Modules.BrowsingContext.UserPromptOpenedEventArgs))] [JsonSerializable(typeof(Modules.BrowsingContext.UserPromptClosedEventArgs))] -[JsonSerializable(typeof(Modules.Network.ContinueWithAuthParameters.Default), TypeInfoPropertyName = "Network_ContinueWithAuthParameters_Default")] [JsonSerializable(typeof(Modules.Network.AddInterceptCommand))] [JsonSerializable(typeof(Modules.Network.AddInterceptResult))] [JsonSerializable(typeof(Modules.Network.ContinueRequestCommand))] diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs index 510d8512d0ce1..75c898c34ee7c 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs @@ -26,20 +26,25 @@ internal class ContinueWithAuthCommand(ContinueWithAuthParameters @params) : Command(@params, "network.continueWithAuth"); [JsonPolymorphic(TypeDiscriminatorPropertyName = "action")] -[JsonDerivedType(typeof(Credentials), "provideCredentials")] -[JsonDerivedType(typeof(Default), "default")] -[JsonDerivedType(typeof(Cancel), "cancel")] -internal abstract record ContinueWithAuthParameters(Request Request) : CommandParameters -{ - internal record Credentials(Request Request, [property: JsonPropertyName("credentials")] AuthCredentials AuthCredentials) : ContinueWithAuthParameters(Request); +[JsonDerivedType(typeof(ContinueWithAuthCredentials), "provideCredentials")] +[JsonDerivedType(typeof(ContinueWithAuthDefaultCredentials), "default")] +[JsonDerivedType(typeof(ContinueWithAuthCancelCredentials), "cancel")] +internal abstract record ContinueWithAuthParameters(Request Request) : CommandParameters; - internal record Default(Request Request) : ContinueWithAuthParameters(Request); +internal record ContinueWithAuthCredentials(Request Request, AuthCredentials Credentials) : ContinueWithAuthParameters(Request); - internal record Cancel(Request Request) : ContinueWithAuthParameters(Request); -} +internal abstract record ContinueWithAuthNoCredentials(Request Request) : ContinueWithAuthParameters(Request); + +internal record ContinueWithAuthDefaultCredentials(Request Request) : ContinueWithAuthNoCredentials(Request); + +internal record ContinueWithAuthCancelCredentials(Request Request) : ContinueWithAuthNoCredentials(Request); public record ContinueWithAuthOptions : CommandOptions; -public record ContinueWithDefaultAuthOptions : CommandOptions; +public record ContinueWithAuthCredentialsOptions : ContinueWithAuthOptions; + +public record ContinueWithAuthNoCredentialsOptions : ContinueWithAuthOptions; + +public record ContinueWithAuthDefaultCredentialsOptions : ContinueWithAuthNoCredentialsOptions; -public record ContinueWithCancelledAuthOptions : CommandOptions; +public record ContinueWithAuthCancelCredentialsOptions : ContinueWithAuthNoCredentialsOptions; diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs b/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs index fb279ef947b9e..86940f38722d6 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/NetworkModule.cs @@ -104,19 +104,19 @@ internal async Task ProvideResponseAsync(Request request, ProvideResponseOptions await Broker.ExecuteCommandAsync(new ProvideResponseCommand(@params), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Credentials(request, credentials)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthCredentials(request, credentials)), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, ContinueWithDefaultAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, ContinueWithAuthDefaultCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Default(request)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthDefaultCredentials(request)), options).ConfigureAwait(false); } - internal async Task ContinueWithAuthAsync(Request request, ContinueWithCancelledAuthOptions? options = null) + internal async Task ContinueWithAuthAsync(Request request, ContinueWithAuthCancelCredentialsOptions? options = null) { - await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthParameters.Cancel(request)), options).ConfigureAwait(false); + await Broker.ExecuteCommandAsync(new ContinueWithAuthCommand(new ContinueWithAuthCancelCredentials(request)), options).ConfigureAwait(false); } public async Task OnBeforeRequestSentAsync(Func handler, SubscriptionOptions? options = null) diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs b/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs index 6bec25944a91f..402a59fb1c3a2 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/Request.cs @@ -53,17 +53,17 @@ public Task ContinueResponseAsync(ContinueResponseOptions? options = null) return _bidi.Network.ContinueResponseAsync(this, options); } - public Task ContinueWithAuthAsync(AuthCredentials credentials, ContinueWithAuthOptions? options = null) + public Task ContinueWithAuthAsync(AuthCredentials credentials, ContinueWithAuthCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, credentials, options); } - public Task ContinueWithAuthAsync(ContinueWithDefaultAuthOptions? options = null) + public Task ContinueWithAuthAsync(ContinueWithAuthDefaultCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, options); } - public Task ContinueWithAuthAsync(ContinueWithCancelledAuthOptions? options = null) + public Task ContinueWithAuthAsync(ContinueWithAuthCancelCredentialsOptions? options = null) { return _bidi.Network.ContinueWithAuthAsync(this, options); } diff --git a/dotnet/test/common/BiDi/Network/NetworkTest.cs b/dotnet/test/common/BiDi/Network/NetworkTest.cs index 2773d539dbb37..9fedb7bd8e5c8 100644 --- a/dotnet/test/common/BiDi/Network/NetworkTest.cs +++ b/dotnet/test/common/BiDi/Network/NetworkTest.cs @@ -162,7 +162,6 @@ public async Task CanContinueWithAuthCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - //TODO Seems it would be better to have method which takes abstract options await e.Request.Request.ContinueWithAuthAsync(new AuthCredentials("test", "test")); }); @@ -177,7 +176,7 @@ public async Task CanContinueWithDefaultCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - await e.Request.Request.ContinueWithAuthAsync(new ContinueWithDefaultAuthOptions()); + await e.Request.Request.ContinueWithAuthAsync(new ContinueWithAuthDefaultCredentialsOptions()); }); var action = async () => await context.NavigateAsync(UrlBuilder.WhereIs("basicAuth"), new() { Wait = ReadinessState.Complete }); @@ -191,7 +190,7 @@ public async Task CanContinueWithCanceledCredentials() { await using var intercept = await bidi.Network.InterceptAuthAsync(async e => { - await e.Request.Request.ContinueWithAuthAsync(new ContinueWithCancelledAuthOptions()); + await e.Request.Request.ContinueWithAuthAsync(new ContinueWithAuthCancelCredentialsOptions()); }); var action = async () => await context.NavigateAsync(UrlBuilder.WhereIs("basicAuth"), new() { Wait = ReadinessState.Complete }); From 35456bd95df178b74885e26a0f4145a3ff36de28 Mon Sep 17 00:00:00 2001 From: Nikolay Borisenko <22616990+nvborisenko@users.noreply.github.com> Date: Thu, 3 Apr 2025 12:50:44 +0300 Subject: [PATCH 2/2] New ending line Co-authored-by: Michael Render --- .../webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs index 75c898c34ee7c..ccc938205b216 100644 --- a/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs +++ b/dotnet/src/webdriver/BiDi/Modules/Network/ContinueWithAuthCommand.cs @@ -48,3 +48,4 @@ public record ContinueWithAuthNoCredentialsOptions : ContinueWithAuthOptions; public record ContinueWithAuthDefaultCredentialsOptions : ContinueWithAuthNoCredentialsOptions; public record ContinueWithAuthCancelCredentialsOptions : ContinueWithAuthNoCredentialsOptions; +