From 25da9208bc6b466f10705cd71d7db725033c9de3 Mon Sep 17 00:00:00 2001 From: Nikolay Borisenko <22616990+nvborisenko@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:28:35 +0300 Subject: [PATCH 1/2] [dotnet] [biti] Remove obsolete unsubscribing by attributes --- .../webdriver/BiDi/Communication/Broker.cs | 22 +------------------ .../Json/BiDiJsonSerializerContext.cs | 1 - .../webdriver/BiDi/Session/SessionModule.cs | 7 ------ .../BiDi/Session/UnsubscribeCommand.cs | 10 --------- 4 files changed, 1 insertion(+), 39 deletions(-) diff --git a/dotnet/src/webdriver/BiDi/Communication/Broker.cs b/dotnet/src/webdriver/BiDi/Communication/Broker.cs index db2058224749b..e75a52ba0892d 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Broker.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Broker.cs @@ -275,27 +275,7 @@ public async Task UnsubscribeAsync(Session.Subscription subscription, EventHandl eventHandlers.Remove(eventHandler); - if (subscription is not null) - { - await _bidi.SessionModule.UnsubscribeAsync([subscription]).ConfigureAwait(false); - } - else - { - if (eventHandler.Contexts is not null) - { - if (!eventHandlers.Any(h => eventHandler.Contexts.Equals(h.Contexts)) && !eventHandlers.Any(h => h.Contexts is null)) - { - await _bidi.SessionModule.UnsubscribeAsync([eventHandler.EventName], new() { Contexts = eventHandler.Contexts }).ConfigureAwait(false); - } - } - else - { - if (!eventHandlers.Any(h => h.Contexts is not null) && !eventHandlers.Any(h => h.Contexts is null)) - { - await _bidi.SessionModule.UnsubscribeAsync([eventHandler.EventName]).ConfigureAwait(false); - } - } - } + await _bidi.SessionModule.UnsubscribeAsync([subscription]).ConfigureAwait(false); } public async ValueTask DisposeAsync() diff --git a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs index e467b53c4922e..7996a678af136 100644 --- a/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs +++ b/dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs @@ -78,7 +78,6 @@ namespace OpenQA.Selenium.BiDi.Communication.Json; [JsonSerializable(typeof(Session.SubscribeCommand))] [JsonSerializable(typeof(Session.SubscribeResult))] [JsonSerializable(typeof(Session.UnsubscribeByIdCommand))] -[JsonSerializable(typeof(Session.UnsubscribeByAttributesCommand))] [JsonSerializable(typeof(Browser.CloseCommand), TypeInfoPropertyName = "Browser_CloseCommand")] [JsonSerializable(typeof(Browser.CreateUserContextCommand))] diff --git a/dotnet/src/webdriver/BiDi/Session/SessionModule.cs b/dotnet/src/webdriver/BiDi/Session/SessionModule.cs index 0d07dd8cc84ad..55e541600c392 100644 --- a/dotnet/src/webdriver/BiDi/Session/SessionModule.cs +++ b/dotnet/src/webdriver/BiDi/Session/SessionModule.cs @@ -44,13 +44,6 @@ public async Task UnsubscribeAsync(IEnumerable subscr return await Broker.ExecuteCommandAsync(new UnsubscribeByIdCommand(@params), options).ConfigureAwait(false); } - public async Task UnsubscribeAsync(IEnumerable eventNames, UnsubscribeByAttributesOptions? options = null) - { - var @params = new UnsubscribeByAttributesParameters(eventNames, options?.Contexts); - - return await Broker.ExecuteCommandAsync(new UnsubscribeByAttributesCommand(@params), options).ConfigureAwait(false); - } - public async Task NewAsync(CapabilitiesRequest capabilitiesRequest, NewOptions? options = null) { var @params = new NewParameters(capabilitiesRequest); diff --git a/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs b/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs index 7ab9e722b797b..13bf85433313a 100644 --- a/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs +++ b/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs @@ -18,7 +18,6 @@ // using OpenQA.Selenium.BiDi.Communication; -using System; using System.Collections.Generic; namespace OpenQA.Selenium.BiDi.Session; @@ -26,19 +25,10 @@ namespace OpenQA.Selenium.BiDi.Session; internal sealed class UnsubscribeByIdCommand(UnsubscribeByIdParameters @params) : Command(@params, "session.unsubscribe"); -internal sealed class UnsubscribeByAttributesCommand(UnsubscribeByAttributesParameters @params) - : Command(@params, "session.unsubscribe"); - internal sealed record UnsubscribeByIdParameters(IEnumerable Subscriptions) : Parameters; public sealed class UnsubscribeByIdOptions : CommandOptions; -internal sealed record UnsubscribeByAttributesParameters( - IEnumerable Events, - [property: Obsolete("Contexts param is deprecated and will be removed in the future versions")] - // https://w3c.github.io/webdriver-bidi/#type-session-UnsubscribeByAttributesRequest - IEnumerable? Contexts) : Parameters; - public sealed class UnsubscribeByAttributesOptions : CommandOptions { public IEnumerable? Contexts { get; set; } From 077aab442c6282166c338c2ae6168daced8a90c1 Mon Sep 17 00:00:00 2001 From: Nikolay Borisenko <22616990+nvborisenko@users.noreply.github.com> Date: Mon, 18 Aug 2025 23:36:24 +0300 Subject: [PATCH 2/2] Remove UnsubscribeByAttributesOptions --- dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs b/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs index 13bf85433313a..49fe98f5077ab 100644 --- a/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs +++ b/dotnet/src/webdriver/BiDi/Session/UnsubscribeCommand.cs @@ -28,8 +28,3 @@ internal sealed class UnsubscribeByIdCommand(UnsubscribeByIdParameters @params) internal sealed record UnsubscribeByIdParameters(IEnumerable Subscriptions) : Parameters; public sealed class UnsubscribeByIdOptions : CommandOptions; - -public sealed class UnsubscribeByAttributesOptions : CommandOptions -{ - public IEnumerable? Contexts { get; set; } -}