From 81d19f607aaf85f63f367f5932aa1ebc5873e067 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:00:46 +0000 Subject: [PATCH 01/19] Initial plan From 57a002d7ada786769b6c7309a3c1d758e38d4a14 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:11:15 +0000 Subject: [PATCH 02/19] Remove obsolete APIs from Blazor components Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../Components/src/PublicAPI.Shipped.txt | 2 -- .../Components/src/Routing/Router.cs | 8 ------- .../EditContextDataAnnotationsExtensions.cs | 21 ------------------- .../Forms/src/PublicAPI.Shipped.txt | 2 -- ...ditContextDataAnnotationsExtensionsTest.cs | 10 --------- 5 files changed, 43 deletions(-) diff --git a/src/Components/Components/src/PublicAPI.Shipped.txt b/src/Components/Components/src/PublicAPI.Shipped.txt index c417cab5be3a..8a9a72437720 100644 --- a/src/Components/Components/src/PublicAPI.Shipped.txt +++ b/src/Components/Components/src/PublicAPI.Shipped.txt @@ -486,8 +486,6 @@ Microsoft.AspNetCore.Components.Routing.Router.NotFound.get -> Microsoft.AspNetC Microsoft.AspNetCore.Components.Routing.Router.NotFound.set -> void Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.get -> Microsoft.AspNetCore.Components.EventCallback Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.set -> void -Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.get -> bool -Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.set -> void Microsoft.AspNetCore.Components.Routing.Router.Router() -> void Microsoft.AspNetCore.Components.Routing.Router.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! Microsoft.AspNetCore.Components.Sections.SectionContent diff --git a/src/Components/Components/src/Routing/Router.cs b/src/Components/Components/src/Routing/Router.cs index eedff373f656..d5a3c6ef30b4 100644 --- a/src/Components/Components/src/Routing/Router.cs +++ b/src/Components/Components/src/Routing/Router.cs @@ -96,14 +96,6 @@ static readonly IReadOnlyDictionary _emptyParametersDictionary /// [Parameter] public EventCallback OnNavigateAsync { get; set; } - /// - /// Gets or sets a flag to indicate whether route matching should prefer exact matches - /// over wildcards. - /// This property is obsolete and configuring it does nothing. - /// - [Obsolete("This property is obsolete and configuring it has no effect.")] - [Parameter] public bool PreferExactMatches { get; set; } - private RouteTable Routes { get; set; } /// diff --git a/src/Components/Forms/src/EditContextDataAnnotationsExtensions.cs b/src/Components/Forms/src/EditContextDataAnnotationsExtensions.cs index 559c2881127d..955e74b84d38 100644 --- a/src/Components/Forms/src/EditContextDataAnnotationsExtensions.cs +++ b/src/Components/Forms/src/EditContextDataAnnotationsExtensions.cs @@ -20,27 +20,6 @@ namespace Microsoft.AspNetCore.Components.Forms; /// public static partial class EditContextDataAnnotationsExtensions { - /// - /// Adds DataAnnotations validation support to the . - /// - /// The . - [Obsolete("Use " + nameof(EnableDataAnnotationsValidation) + " instead.")] - public static EditContext AddDataAnnotationsValidation(this EditContext editContext) - { - EnableDataAnnotationsValidation(editContext); - return editContext; - } - - /// - /// Enables DataAnnotations validation support for the . - /// - /// The . - /// A disposable object whose disposal will remove DataAnnotations validation support from the . - [Obsolete("This API is obsolete and may be removed in future versions. Use the overload that accepts an IServiceProvider instead.")] - public static IDisposable EnableDataAnnotationsValidation(this EditContext editContext) - { - return new DataAnnotationsEventSubscriptions(editContext, null!); - } /// /// Enables DataAnnotations validation support for the . /// diff --git a/src/Components/Forms/src/PublicAPI.Shipped.txt b/src/Components/Forms/src/PublicAPI.Shipped.txt index 3489bd13cb78..76d8da5a4024 100644 --- a/src/Components/Forms/src/PublicAPI.Shipped.txt +++ b/src/Components/Forms/src/PublicAPI.Shipped.txt @@ -59,8 +59,6 @@ override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnInitia override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnParametersSet() -> void override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(object? obj) -> bool override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.GetHashCode() -> int -static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! -static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, System.IServiceProvider! serviceProvider) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create(System.Linq.Expressions.Expression!>! accessor) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs! diff --git a/src/Components/Forms/test/EditContextDataAnnotationsExtensionsTest.cs b/src/Components/Forms/test/EditContextDataAnnotationsExtensionsTest.cs index 3ebd566d4f65..e58b5a736d6c 100644 --- a/src/Components/Forms/test/EditContextDataAnnotationsExtensionsTest.cs +++ b/src/Components/Forms/test/EditContextDataAnnotationsExtensionsTest.cs @@ -18,16 +18,6 @@ public void CannotUseNullEditContext() Assert.Equal("editContext", ex.ParamName); } - [Fact] - public void ObsoleteApiReturnsEditContextForChaining() - { - var editContext = new EditContext(new object()); -#pragma warning disable 0618 - var returnValue = editContext.AddDataAnnotationsValidation(); -#pragma warning restore 0618 - Assert.Same(editContext, returnValue); - } - [Fact] public void GetsValidationMessagesFromDataAnnotations() { From 6d839b30f9982292530f34210a4923a9c5dabf21 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:19:54 +0000 Subject: [PATCH 03/19] Fix PublicAPI changes: Move removed APIs to Unshipped.txt with *REMOVED* prefix Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/Components/src/PublicAPI.Shipped.txt | 2 ++ src/Components/Components/src/PublicAPI.Unshipped.txt | 2 ++ src/Components/Forms/src/PublicAPI.Shipped.txt | 2 ++ src/Components/Forms/src/PublicAPI.Unshipped.txt | 2 ++ 4 files changed, 8 insertions(+) diff --git a/src/Components/Components/src/PublicAPI.Shipped.txt b/src/Components/Components/src/PublicAPI.Shipped.txt index 8a9a72437720..c417cab5be3a 100644 --- a/src/Components/Components/src/PublicAPI.Shipped.txt +++ b/src/Components/Components/src/PublicAPI.Shipped.txt @@ -486,6 +486,8 @@ Microsoft.AspNetCore.Components.Routing.Router.NotFound.get -> Microsoft.AspNetC Microsoft.AspNetCore.Components.Routing.Router.NotFound.set -> void Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.get -> Microsoft.AspNetCore.Components.EventCallback Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.set -> void +Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.get -> bool +Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.set -> void Microsoft.AspNetCore.Components.Routing.Router.Router() -> void Microsoft.AspNetCore.Components.Routing.Router.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! Microsoft.AspNetCore.Components.Sections.SectionContent diff --git a/src/Components/Components/src/PublicAPI.Unshipped.txt b/src/Components/Components/src/PublicAPI.Unshipped.txt index dc07b8afddac..26c94aae2ed9 100644 --- a/src/Components/Components/src/PublicAPI.Unshipped.txt +++ b/src/Components/Components/src/PublicAPI.Unshipped.txt @@ -1,5 +1,7 @@ #nullable enable *REMOVED*Microsoft.AspNetCore.Components.ResourceAsset.ResourceAsset(string! url, System.Collections.Generic.IReadOnlyList? properties) -> void +*REMOVED*Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.get -> bool +*REMOVED*Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.set -> void Microsoft.AspNetCore.Components.ResourceAsset.ResourceAsset(string! url, System.Collections.Generic.IReadOnlyList? properties = null) -> void Microsoft.AspNetCore.Components.Routing.Router.NotFoundPage.get -> System.Type! Microsoft.AspNetCore.Components.Routing.Router.NotFoundPage.set -> void diff --git a/src/Components/Forms/src/PublicAPI.Shipped.txt b/src/Components/Forms/src/PublicAPI.Shipped.txt index 76d8da5a4024..3489bd13cb78 100644 --- a/src/Components/Forms/src/PublicAPI.Shipped.txt +++ b/src/Components/Forms/src/PublicAPI.Shipped.txt @@ -59,6 +59,8 @@ override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnInitia override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnParametersSet() -> void override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(object? obj) -> bool override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.GetHashCode() -> int +static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! +static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, System.IServiceProvider! serviceProvider) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create(System.Linq.Expressions.Expression!>! accessor) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs! diff --git a/src/Components/Forms/src/PublicAPI.Unshipped.txt b/src/Components/Forms/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..8e50b300e33d 100644 --- a/src/Components/Forms/src/PublicAPI.Unshipped.txt +++ b/src/Components/Forms/src/PublicAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +*REMOVED*static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! +*REMOVED*static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> System.IDisposable! From a1d12ed2d7c4a99c2c1ebb4a659635fcbd8fe5dd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:32:17 +0000 Subject: [PATCH 04/19] Remove additional obsolete APIs from Components.Web Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../RemoteBrowserFileStreamOptions.cs | 39 --- .../Web/src/PublicAPI.Unshipped.txt | 30 ++ ...EventCallbackFactoryEventArgsExtensions.cs | 329 ------------------ src/Components/Web/src/WebRenderer.cs | 3 - 4 files changed, 30 insertions(+), 371 deletions(-) delete mode 100644 src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStreamOptions.cs delete mode 100644 src/Components/Web/src/Web/WebEventCallbackFactoryEventArgsExtensions.cs diff --git a/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStreamOptions.cs b/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStreamOptions.cs deleted file mode 100644 index 4de7bab18c17..000000000000 --- a/src/Components/Web/src/Forms/InputFile/RemoteBrowserFileStreamOptions.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.Versioning; - -namespace Microsoft.AspNetCore.Components.Forms; - -/// -/// Repesents configurable options for with Blazor Server. -/// -[UnsupportedOSPlatform("browser")] -[Obsolete("RemoteJSDataStream defaults are utilized instead of the options here.")] -public class RemoteBrowserFileStreamOptions -{ - /// - /// Gets or sets the maximum segment size for file data sent over a SignalR circuit. - /// The default value is 20K. - /// - /// This only has an effect when using Blazor Server. - /// - /// - public int MaxSegmentSize { get; set; } = 20 * 1024; // SignalR limit is 32K. - - /// - /// Gets or sets the maximum internal buffer size for unread data sent over a SignalR circuit. - /// - /// This only has an effect when using Blazor Server. - /// - /// - public int MaxBufferSize { get; set; } = 1024 * 1024; - - /// - /// Gets or sets the time limit for fetching a segment of file data. - /// - /// This only has an effect when using Blazor Server. - /// - /// - public TimeSpan SegmentFetchTimeout { get; set; } = TimeSpan.FromMinutes(1); -} diff --git a/src/Components/Web/src/PublicAPI.Unshipped.txt b/src/Components/Web/src/PublicAPI.Unshipped.txt index 5b85eaf45fdc..5d049aae99a3 100644 --- a/src/Components/Web/src/PublicAPI.Unshipped.txt +++ b/src/Components/Web/src/PublicAPI.Unshipped.txt @@ -1,4 +1,34 @@ #nullable enable +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxBufferSize.get -> int +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxBufferSize.set -> void +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxSegmentSize.get -> int +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxSegmentSize.set -> void +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.RemoteBrowserFileStreamOptions() -> void +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.SegmentFetchTimeout.get -> System.TimeSpan +*REMOVED*Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.SegmentFetchTimeout.set -> void +*REMOVED*Microsoft.AspNetCore.Components.RenderTree.WebRenderer.RendererId.init -> void +*REMOVED*Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +*REMOVED*static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback Microsoft.AspNetCore.Components.Forms.InputHidden Microsoft.AspNetCore.Components.Forms.InputHidden.Element.get -> Microsoft.AspNetCore.Components.ElementReference? Microsoft.AspNetCore.Components.Forms.InputHidden.Element.set -> void diff --git a/src/Components/Web/src/Web/WebEventCallbackFactoryEventArgsExtensions.cs b/src/Components/Web/src/Web/WebEventCallbackFactoryEventArgsExtensions.cs deleted file mode 100644 index 4c34865354ea..000000000000 --- a/src/Components/Web/src/Web/WebEventCallbackFactoryEventArgsExtensions.cs +++ /dev/null @@ -1,329 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace Microsoft.AspNetCore.Components.Web; - -/// -/// Provides extension methods for and types. -/// -public static class WebEventCallbackFactoryEventArgsExtensions -{ - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Action callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } - - /// - /// Creates an for the provided and - /// . - /// - /// The . - /// The event receiver. - /// The event callback. - /// The . - [Obsolete("This extension method is obsolete and will be removed in a future version. Use the generic overload instead.")] - public static EventCallback Create(this EventCallbackFactory factory, object receiver, Func callback) - { - ArgumentNullException.ThrowIfNull(factory); - - return factory.Create(receiver, callback); - } -} diff --git a/src/Components/Web/src/WebRenderer.cs b/src/Components/Web/src/WebRenderer.cs index becd887453d0..fc83c3c360f6 100644 --- a/src/Components/Web/src/WebRenderer.cs +++ b/src/Components/Web/src/WebRenderer.cs @@ -52,9 +52,6 @@ public WebRenderer( protected int RendererId { get => _rendererId; - - [Obsolete($"The renderer ID can be assigned by overriding '{nameof(GetWebRendererId)}'.")] - init { /* No-op */ } } /// From 6d7ae8c7d34d9ff8f533d5c88ebd8de0774f7af0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:59:50 +0000 Subject: [PATCH 05/19] Remove additional obsolete APIs from Components.WebAssembly Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../JSInterop/src/InternalCalls.cs | 10 --- .../src/PublicAPI.Unshipped.txt | 7 ++ .../src/RemoteAuthenticatorViewCore.cs | 8 +- .../AccessTokenNotAvailableException.cs | 4 +- .../src/Services/AccessTokenResult.cs | 20 ----- .../Services/RemoteAuthenticationService.cs | 17 ---- .../Services/SignOutSessionStateManager.cs | 88 ------------------- ...thenticationServiceCollectionExtensions.cs | 3 - .../src/HotReload/WebAssemblyHotReload.cs | 11 --- .../src/Infrastructure/JSInteropMethods.cs | 7 -- .../WebAssembly/src/PublicAPI.Shipped.txt | 1 - .../WebAssembly/src/PublicAPI.Unshipped.txt | 2 + 12 files changed, 11 insertions(+), 167 deletions(-) delete mode 100644 src/Components/WebAssembly/WebAssembly.Authentication/src/Services/SignOutSessionStateManager.cs diff --git a/src/Components/WebAssembly/JSInterop/src/InternalCalls.cs b/src/Components/WebAssembly/JSInterop/src/InternalCalls.cs index 4ad543a146ce..680a1c67b087 100644 --- a/src/Components/WebAssembly/JSInterop/src/InternalCalls.cs +++ b/src/Components/WebAssembly/JSInterop/src/InternalCalls.cs @@ -1,22 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics.CodeAnalysis; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices.JavaScript; namespace WebAssembly.JSInterop; internal static partial class InternalCalls { - // This method only exists for backwards compatibility and will be removed in the future. - // The exact namespace, type, and method name must match the corresponding entries - // in driver.c in the Mono distribution. - // See: https://github.com/mono/mono/blob/90574987940959fe386008a850982ea18236a533/sdks/wasm/src/driver.c#L318-L319 - [MethodImpl(MethodImplOptions.InternalCall)] - [Obsolete] - public static extern TRes InvokeJS(out string exception, ref JSCallInfo callInfo, [AllowNull] T0 arg0, [AllowNull] T1 arg1, [AllowNull] T2 arg2); - [JSImport("Blazor._internal.invokeJSJson", "blazor-internal")] public static partial string InvokeJSJson( string identifier, diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..dbe9cee9e3c9 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt @@ -1 +1,8 @@ #nullable enable +*REMOVED*Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken! token, string! redirectUrl) -> void +*REMOVED*Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.RedirectUrl.get -> string? +*REMOVED*Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.Extensions.Options.IOptionsSnapshot!>! options, Microsoft.AspNetCore.Components.NavigationManager! navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory! accountClaimsPrincipalFactory) -> void +*REMOVED*Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager +*REMOVED*Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SignOutSessionStateManager(Microsoft.JSInterop.IJSRuntime! jsRuntime) -> void +*REMOVED*virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SetSignOutState() -> System.Threading.Tasks.ValueTask +*REMOVED*virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.ValidateSignOutState() -> System.Threading.Tasks.Task! diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs index 69c9b1e70c86..37f6c0ad3b70 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs @@ -106,10 +106,6 @@ public RemoteAuthenticationApplicationPathsOptions ApplicationPaths [Inject] internal AuthenticationStateProvider AuthenticationProvider { get; set; } = default!; -#pragma warning disable CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility - [Inject] internal SignOutSessionStateManager SignOutManager { get; set; } = default!; -#pragma warning restore CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility - [Inject] internal ILogger> Logger { get; set; } = default!; /// @@ -282,9 +278,7 @@ private async Task ProcessLogInCallback() private async Task ProcessLogOut(string returnUrl) { - if ((Navigation.HistoryEntryState != null && !ValidateSignOutRequestState()) || - // For backcompat purposes, keep SignOutManager working, even though we now use the history.state for this. - (Navigation.HistoryEntryState == null && !await SignOutManager.ValidateSignOutState())) + if (Navigation.HistoryEntryState != null && !ValidateSignOutRequestState()) { Log.LogoutOperationInitiatedExternally(Logger); Navigation.NavigateTo(ApplicationPaths.LogOutFailedPath, AuthenticationNavigationOptions with { HistoryEntryState = "The logout was not initiated from within the page." }); diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenNotAvailableException.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenNotAvailableException.cs index d1ce1b61e484..1c42d3d79423 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenNotAvailableException.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenNotAvailableException.cs @@ -41,9 +41,7 @@ public void Redirect() } else { -#pragma warning disable CS0618 // Type or member is obsolete - _navigation.NavigateTo(_tokenResult.RedirectUrl!); -#pragma warning restore CS0618 // Type or member is obsolete + _navigation.NavigateTo(_tokenResult.InteractiveRequestUrl!); } } diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenResult.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenResult.cs index 576b323509d9..3971b66eda16 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenResult.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/AccessTokenResult.cs @@ -12,20 +12,6 @@ public class AccessTokenResult { private readonly AccessToken _token; - /// - /// Initializes a new instance of . - /// - /// The status of the result. - /// The in case it was successful. - /// The redirect uri to go to for provisioning the token. - [Obsolete("Use the AccessTokenResult(AccessTokenResultStatus, AccessToken, string, InteractiveRequestOptions)")] - public AccessTokenResult(AccessTokenResultStatus status, AccessToken token, [StringSyntax(StringSyntaxAttribute.Uri)] string redirectUrl) - { - Status = status; - _token = token; - RedirectUrl = redirectUrl; - } - /// /// Initializes a new instance of . /// @@ -46,12 +32,6 @@ public AccessTokenResult(AccessTokenResultStatus status, AccessToken token, [Str /// public AccessTokenResultStatus Status { get; } - /// - /// Gets the URL to redirect to if is . - /// - [Obsolete("Use 'InteractiveRequestUrl' and 'InteractiveRequest' instead.")] - public string? RedirectUrl { get; } - /// /// Gets the URL to call if is /// . diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/RemoteAuthenticationService.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/RemoteAuthenticationService.cs index 12d315bdaf60..61e5d080e492 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/RemoteAuthenticationService.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/RemoteAuthenticationService.cs @@ -57,23 +57,6 @@ public class RemoteAuthenticationService< /// protected RemoteAuthenticationOptions Options { get; } - /// - /// Initializes a new instance. - /// - /// The to use for performing JavaScript interop operations. - /// The options to be passed down to the underlying JavaScript library handling the authentication operations. - /// The used to generate URLs. - /// The used to generate the for the user. - [Obsolete("Use the constructor RemoteAuthenticationService(IJSRuntime,IOptionsSnapshot>,NavigationManager,AccountClaimsPrincipalFactory,ILogger>) instead.")] - public RemoteAuthenticationService( - IJSRuntime jsRuntime, - IOptionsSnapshot> options, - NavigationManager navigation, - AccountClaimsPrincipalFactory accountClaimsPrincipalFactory) - : this(jsRuntime, options, navigation, accountClaimsPrincipalFactory, null) - { - } - /// /// Initializes a new instance. /// diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/SignOutSessionStateManager.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/SignOutSessionStateManager.cs deleted file mode 100644 index 74b61cb7aca2..000000000000 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/Services/SignOutSessionStateManager.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Diagnostics.CodeAnalysis; -using System.Text.Json; -using Microsoft.JSInterop; -using static Microsoft.AspNetCore.Internal.LinkerFlags; - -namespace Microsoft.AspNetCore.Components.WebAssembly.Authentication; - -/// -/// Handles CSRF protection for the logout endpoint. -/// -[Obsolete("Use 'Microsoft.AspNetCore.Components.Webassembly.Authentication.NavigationManagerExtensions.NavigateToLogout' instead.")] -public class SignOutSessionStateManager -{ - private readonly IJSRuntime _jsRuntime; - - /// - /// Initialize a new instance of . - /// - /// The . - public SignOutSessionStateManager(IJSRuntime jsRuntime) => _jsRuntime = jsRuntime; - - /// - /// Sets up some state in session storage to allow for logouts from within the page. - /// - /// A that completes when the state has been saved to session storage. - [DynamicDependency(JsonSerialized, typeof(SignOutState))] - [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "The correct members will be preserved by the above DynamicDependency.")] - // This should use JSON source generation - public virtual ValueTask SetSignOutState() - { - return _jsRuntime.InvokeVoidAsync( - "sessionStorage.setItem", - "Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutState", - JsonSerializer.Serialize(SignOutState.Instance, JsonSerializerOptions.Web)); - } - - /// - /// Validates the existence of some state previously setup by in session storage to allow - /// logouts from within the page. - /// - /// A that completes when the state has been validated and indicates the validity of the state. - public virtual async Task ValidateSignOutState() - { - var state = await GetSignOutState(); - if (state.Local) - { - await ClearSignOutState(); - return true; - } - - return false; - } - - private async ValueTask GetSignOutState() - { - var result = await _jsRuntime.InvokeAsync( - "sessionStorage.getItem", - "Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutState"); - if (result == null) - { - return default; - } - - return DeserializeSignOutState(result); - } - - [DynamicDependency(JsonSerialized, typeof(SignOutState))] - [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "The correct members will be preserved by the above DynamicDependency.")] - // This should use JSON source generation - private static SignOutState DeserializeSignOutState(string result) => JsonSerializer.Deserialize(result, JsonSerializerOptions.Web); - - private ValueTask ClearSignOutState() - { - return _jsRuntime.InvokeVoidAsync( - "sessionStorage.removeItem", - "Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutState"); - } - - private struct SignOutState - { - public static readonly SignOutState Instance = new SignOutState { Local = true }; - - public bool Local { get; set; } - } -} diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/WebAssemblyAuthenticationServiceCollectionExtensions.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/WebAssemblyAuthenticationServiceCollectionExtensions.cs index 20cf1e0867f7..ee43cde4379f 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/WebAssemblyAuthenticationServiceCollectionExtensions.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/WebAssemblyAuthenticationServiceCollectionExtensions.cs @@ -71,9 +71,6 @@ public static IRemoteAuthenticationBuilder services.TryAddScoped>(); services.TryAddScoped(); -#pragma warning disable CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility - services.TryAddScoped(); -#pragma warning restore CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility services.TryAddScoped>(); diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index 907e3042aa7f..f79a826b74a0 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -130,17 +130,6 @@ private static async ValueTask ApplyPreviousDeltasAsync(HotReloadAgent agent) private static HotReloadAgent? GetAgent() => s_hotReloadAgent ?? (s_initialized ? throw new InvalidOperationException("Hot Reload agent not initialized") : null); - /// - /// For framework use only. - /// - [Obsolete("Use ApplyHotReloadDeltas instead")] - [JSInvokable(nameof(ApplyHotReloadDelta))] - public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDelta, byte[] ilDelta, byte[] pdbBytes, int[]? updatedTypes) - { - GetAgent()?.ApplyDeltas( - [new UpdateDelta(Guid.Parse(moduleIdString, CultureInfo.InvariantCulture), metadataDelta, ilDelta, pdbBytes, updatedTypes ?? [])]); - } - /// /// For framework use only. /// diff --git a/src/Components/WebAssembly/WebAssembly/src/Infrastructure/JSInteropMethods.cs b/src/Components/WebAssembly/WebAssembly/src/Infrastructure/JSInteropMethods.cs index 12849698a874..fffc8dd15a18 100644 --- a/src/Components/WebAssembly/WebAssembly/src/Infrastructure/JSInteropMethods.cs +++ b/src/Components/WebAssembly/WebAssembly/src/Infrastructure/JSInteropMethods.cs @@ -14,13 +14,6 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Infrastructure; [EditorBrowsable(EditorBrowsableState.Never)] public static class JSInteropMethods { - /// - /// For framework use only. - /// - [Obsolete("This API is for framework use only and is no longer used in the current version")] - public static void NotifyLocationChanged(string uri, bool isInterceptedLink) - => WebAssemblyNavigationManager.Instance.SetLocation(uri, null, isInterceptedLink); - /// /// For framework use only. /// diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 61755ac3eb86..2199b8eb628b 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,7 +38,6 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage -~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index fc7b59f8f640..ba8413fd7ca1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -22,3 +22,5 @@ Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEn static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! +*REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void +*REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void From ae835278a0e133a685a84cfc358e45669bfd61cc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 12:12:02 +0000 Subject: [PATCH 06/19] Fix PublicAPI and test compilation issues with obsolete APIs Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../test/RemoteAuthenticatorCoreTests.cs | 51 ------------------- .../WebAssembly/src/PublicAPI.Shipped.txt | 2 +- 2 files changed, 1 insertion(+), 52 deletions(-) diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/test/RemoteAuthenticatorCoreTests.cs b/src/Components/WebAssembly/WebAssembly.Authentication/test/RemoteAuthenticatorCoreTests.cs index 694e3aea29f4..2f138f61a0d5 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/test/RemoteAuthenticatorCoreTests.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/test/RemoteAuthenticatorCoreTests.cs @@ -370,37 +370,6 @@ public async Task AuthenticationManager_Logout_DoesNothingOnRedirect() } - [Fact] - public async Task AuthenticationManager_Logout_RedirectsToFailureOnInvalidSignOutState() - { - // Arrange - var (remoteAuthenticator, renderer, authServiceMock) = CreateAuthenticationManager( - "https://www.example.com/base/authentication/logout", - new InteractiveRequestOptions { Interaction = InteractionType.SignIn, ReturnUrl = "https://www.example.com/base/fetchData" }.ToState()); - - if (remoteAuthenticator.SignOutManager is TestSignOutSessionStateManager testManager) - { - testManager.SignOutState = false; - } - - var parameters = ParameterView.FromDictionary(new Dictionary - { - [_action] = RemoteAuthenticationActions.LogOut - }); - - // Act - await renderer.Dispatcher.InvokeAsync(() => remoteAuthenticator.SetParametersAsync(parameters)); - - // Assert - Assert.Equal( - "https://www.example.com/base/authentication/logout-failed", - remoteAuthenticator.Navigation.Uri); - - Assert.Equal( - "The logout was not initiated from within the page.", - ((TestNavigationManager)remoteAuthenticator.Navigation).HistoryEntryState); - } - [Fact] public async Task AuthenticationManager_Logout_NavigatesToLogoutFailureOnError() { @@ -731,8 +700,6 @@ private static Mock.Of>>(), navigationManager); - remoteAuthenticator.SignOutManager = new TestSignOutSessionStateManager(); - remoteAuthenticator.AuthenticationService = authenticationServiceMock; remoteAuthenticator.AuthenticationProvider = authenticationServiceMock; return (remoteAuthenticator, renderer, authenticationServiceMock); @@ -756,24 +723,6 @@ protected override void NavigateToCore(string uri, NavigationOptions options) } } -#pragma warning disable CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility - private class TestSignOutSessionStateManager : SignOutSessionStateManager -#pragma warning restore CS0618 // Type or member is obsolete, we keep it for now for backwards compatibility - { - public TestSignOutSessionStateManager() : base(null) - { - } - public bool SignOutState { get; set; } = true; - - public override ValueTask SetSignOutState() - { - SignOutState = true; - return default; - } - - public override Task ValidateSignOutState() => Task.FromResult(SignOutState); - } - private class TestJsRuntime : IJSRuntime { public (string identifier, object[] args) LastInvocation { get; set; } diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 2199b8eb628b..c226976223c1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -115,6 +115,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMe static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage! requestMessage, string! name, object! value) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! -static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void + static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, string? state, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChangingAsync(string! uri, string? state, bool isInterceptedLink) -> System.Threading.Tasks.ValueTask From 5542a4d361135c35923a97caf698f9c3c5f261d0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 12:22:46 +0000 Subject: [PATCH 07/19] Fix logout validation logic to handle null HistoryEntryState properly Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../src/RemoteAuthenticatorViewCore.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs b/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs index 37f6c0ad3b70..4f8a25cab707 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/RemoteAuthenticatorViewCore.cs @@ -278,7 +278,7 @@ private async Task ProcessLogInCallback() private async Task ProcessLogOut(string returnUrl) { - if (Navigation.HistoryEntryState != null && !ValidateSignOutRequestState()) + if (Navigation.HistoryEntryState == null || !ValidateSignOutRequestState()) { Log.LogoutOperationInitiatedExternally(Logger); Navigation.NavigateTo(ApplicationPaths.LogOutFailedPath, AuthenticationNavigationOptions with { HistoryEntryState = "The logout was not initiated from within the page." }); From 7a9270e256d09a72866c9c3b99f73532525eaf68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 12:49:28 +0000 Subject: [PATCH 08/19] Restore NotifyLocationChanged to PublicAPI.Shipped.txt per review feedback Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index c226976223c1..2199b8eb628b 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -115,6 +115,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMe static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage! requestMessage, string! name, object! value) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! - +static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, string? state, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChangingAsync(string! uri, string? state, bool isInterceptedLink) -> System.Threading.Tasks.ValueTask From b773e74a021216c6cd8e301758e241b310a722a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 12:57:03 +0000 Subject: [PATCH 09/19] Remove NotifyLocationChanged(string, bool) from PublicAPI.Shipped.txt per review feedback Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 2199b8eb628b..c226976223c1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -115,6 +115,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMe static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage! requestMessage, string! name, object! value) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! -static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void + static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, string? state, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChangingAsync(string! uri, string? state, bool isInterceptedLink) -> System.Threading.Tasks.ValueTask From e0a3d4df120b14d130c7dbf535fd43045a6b4eb7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:31:41 +0000 Subject: [PATCH 10/19] Fix PublicAPI.Shipped.txt files by removing obsolete API entries Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/Components/src/PublicAPI.Shipped.txt | 2 -- src/Components/Forms/src/PublicAPI.Shipped.txt | 2 -- .../WebAssembly.Authentication/src/PublicAPI.Shipped.txt | 7 ------- .../WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 2 -- 4 files changed, 13 deletions(-) diff --git a/src/Components/Components/src/PublicAPI.Shipped.txt b/src/Components/Components/src/PublicAPI.Shipped.txt index c417cab5be3a..8a9a72437720 100644 --- a/src/Components/Components/src/PublicAPI.Shipped.txt +++ b/src/Components/Components/src/PublicAPI.Shipped.txt @@ -486,8 +486,6 @@ Microsoft.AspNetCore.Components.Routing.Router.NotFound.get -> Microsoft.AspNetC Microsoft.AspNetCore.Components.Routing.Router.NotFound.set -> void Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.get -> Microsoft.AspNetCore.Components.EventCallback Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.set -> void -Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.get -> bool -Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.set -> void Microsoft.AspNetCore.Components.Routing.Router.Router() -> void Microsoft.AspNetCore.Components.Routing.Router.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! Microsoft.AspNetCore.Components.Sections.SectionContent diff --git a/src/Components/Forms/src/PublicAPI.Shipped.txt b/src/Components/Forms/src/PublicAPI.Shipped.txt index 3489bd13cb78..76d8da5a4024 100644 --- a/src/Components/Forms/src/PublicAPI.Shipped.txt +++ b/src/Components/Forms/src/PublicAPI.Shipped.txt @@ -59,8 +59,6 @@ override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnInitia override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnParametersSet() -> void override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(object? obj) -> bool override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.GetHashCode() -> int -static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! -static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, System.IServiceProvider! serviceProvider) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create(System.Linq.Expressions.Expression!>! accessor) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs! diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt index 30d69b11b605..49405423feab 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt @@ -27,11 +27,9 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOpt Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.get -> System.Collections.Generic.IEnumerable? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.set -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult -Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken! token, string! redirectUrl) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken! token, string? interactiveRequestUrl, Microsoft.AspNetCore.Components.WebAssembly.Authentication.InteractiveRequestOptions? interactiveRequest) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.InteractionOptions.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.InteractiveRequestOptions? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.InteractiveRequestUrl.get -> string? -Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.RedirectUrl.get -> string? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.Status.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.TryGetToken(out Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken? accessToken) -> bool Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus @@ -151,7 +149,6 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationS Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.JsRuntime.get -> Microsoft.JSInterop.IJSRuntime! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Navigation.get -> Microsoft.AspNetCore.Components.NavigationManager! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Options.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions! -Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.Extensions.Options.IOptionsSnapshot!>! options, Microsoft.AspNetCore.Components.NavigationManager! navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory! accountClaimsPrincipalFactory) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.Extensions.Options.IOptionsSnapshot!>! options, Microsoft.AspNetCore.Components.NavigationManager! navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory! accountClaimsPrincipalFactory, Microsoft.Extensions.Logging.ILogger!>? logger) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState.RemoteAuthenticationState() -> void @@ -208,8 +205,6 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.get -> System.Collections.Generic.IDictionary! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.set -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.RemoteUserAccount() -> void -Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager -Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SignOutSessionStateManager(Microsoft.JSInterop.IJSRuntime! jsRuntime) -> void Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions @@ -255,5 +250,3 @@ virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthent virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RequestAccessToken(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions! options) -> System.Threading.Tasks.ValueTask virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext! context) -> System.Threading.Tasks.Task!>! virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext! context) -> System.Threading.Tasks.Task!>! -virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SetSignOutState() -> System.Threading.Tasks.ValueTask -virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.ValidateSignOutState() -> System.Threading.Tasks.Task! diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index c226976223c1..840a7e301be3 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -106,7 +106,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnviro static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsEnvironment(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment, string! environmentName) -> bool static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsProduction(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment) -> bool static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsStaging(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment) -> bool -static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.GetApplyUpdateCapabilities() -> string! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCache(this System.Net.Http.HttpRequestMessage! requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache requestCache) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCredentials(this System.Net.Http.HttpRequestMessage! requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials requestCredentials) -> System.Net.Http.HttpRequestMessage! @@ -115,6 +114,5 @@ static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMe static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage! requestMessage, string! name, object! value) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! - static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, string? state, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChangingAsync(string! uri, string? state, bool isInterceptedLink) -> System.Threading.Tasks.ValueTask From 388e4c36af23aa28bc35e58255a995cf4c3dab67 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:49:46 +0000 Subject: [PATCH 11/19] Restore all PublicAPI.Shipped.txt files to original state and fix nullability annotations Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/Components/src/PublicAPI.Shipped.txt | 2 ++ src/Components/Forms/src/PublicAPI.Shipped.txt | 2 ++ .../WebAssembly.Authentication/src/PublicAPI.Shipped.txt | 7 +++++++ .../WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 3 +++ .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 1 + 5 files changed, 15 insertions(+) diff --git a/src/Components/Components/src/PublicAPI.Shipped.txt b/src/Components/Components/src/PublicAPI.Shipped.txt index 8a9a72437720..c417cab5be3a 100644 --- a/src/Components/Components/src/PublicAPI.Shipped.txt +++ b/src/Components/Components/src/PublicAPI.Shipped.txt @@ -486,6 +486,8 @@ Microsoft.AspNetCore.Components.Routing.Router.NotFound.get -> Microsoft.AspNetC Microsoft.AspNetCore.Components.Routing.Router.NotFound.set -> void Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.get -> Microsoft.AspNetCore.Components.EventCallback Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.set -> void +Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.get -> bool +Microsoft.AspNetCore.Components.Routing.Router.PreferExactMatches.set -> void Microsoft.AspNetCore.Components.Routing.Router.Router() -> void Microsoft.AspNetCore.Components.Routing.Router.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! Microsoft.AspNetCore.Components.Sections.SectionContent diff --git a/src/Components/Forms/src/PublicAPI.Shipped.txt b/src/Components/Forms/src/PublicAPI.Shipped.txt index 76d8da5a4024..3489bd13cb78 100644 --- a/src/Components/Forms/src/PublicAPI.Shipped.txt +++ b/src/Components/Forms/src/PublicAPI.Shipped.txt @@ -59,6 +59,8 @@ override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnInitia override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnParametersSet() -> void override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(object? obj) -> bool override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.GetHashCode() -> int +static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! +static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.EnableDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, System.IServiceProvider! serviceProvider) -> System.IDisposable! static Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create(System.Linq.Expressions.Expression!>! accessor) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs! diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt index 49405423feab..30d69b11b605 100644 --- a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt @@ -27,9 +27,11 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOpt Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.get -> System.Collections.Generic.IEnumerable? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.set -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken! token, string! redirectUrl) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken! token, string? interactiveRequestUrl, Microsoft.AspNetCore.Components.WebAssembly.Authentication.InteractiveRequestOptions? interactiveRequest) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.InteractionOptions.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.InteractiveRequestOptions? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.InteractiveRequestUrl.get -> string? +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.RedirectUrl.get -> string? Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.Status.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.TryGetToken(out Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken? accessToken) -> bool Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus @@ -149,6 +151,7 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationS Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.JsRuntime.get -> Microsoft.JSInterop.IJSRuntime! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Navigation.get -> Microsoft.AspNetCore.Components.NavigationManager! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Options.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions! +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.Extensions.Options.IOptionsSnapshot!>! options, Microsoft.AspNetCore.Components.NavigationManager! navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory! accountClaimsPrincipalFactory) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.Extensions.Options.IOptionsSnapshot!>! options, Microsoft.AspNetCore.Components.NavigationManager! navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory! accountClaimsPrincipalFactory, Microsoft.Extensions.Logging.ILogger!>? logger) -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState.RemoteAuthenticationState() -> void @@ -205,6 +208,8 @@ Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.get -> System.Collections.Generic.IDictionary! Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.set -> void Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.RemoteUserAccount() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager +Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SignOutSessionStateManager(Microsoft.JSInterop.IJSRuntime! jsRuntime) -> void Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions @@ -250,3 +255,5 @@ virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthent virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RequestAccessToken(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions! options) -> System.Threading.Tasks.ValueTask virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext! context) -> System.Threading.Tasks.Task!>! virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext! context) -> System.Threading.Tasks.Task!>! +virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SetSignOutState() -> System.Threading.Tasks.ValueTask +virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.ValidateSignOutState() -> System.Threading.Tasks.Task! diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 840a7e301be3..61755ac3eb86 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,6 +38,7 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! @@ -106,6 +107,7 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnviro static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsEnvironment(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment, string! environmentName) -> bool static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsProduction(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment) -> bool static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsStaging(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment! hostingEnvironment) -> bool +static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.GetApplyUpdateCapabilities() -> string! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCache(this System.Net.Http.HttpRequestMessage! requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache requestCache) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCredentials(this System.Net.Http.HttpRequestMessage! requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials requestCredentials) -> System.Net.Http.HttpRequestMessage! @@ -114,5 +116,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMe static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage! requestMessage, string! name, object! value) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage! requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage! +static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, string? state, bool isInterceptedLink) -> void static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChangingAsync(string! uri, string? state, bool isInterceptedLink) -> System.Threading.Tasks.ValueTask diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index ba8413fd7ca1..10d012202ef6 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -23,4 +23,5 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilde static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void +*REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void From b1f3a4dc2a2149ea987096bafdf6df2a29b0a3ee Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:54:48 +0000 Subject: [PATCH 12/19] Fix API analyzer error by removing obsolete JSInteropMethods entry from Shipped.txt Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 61755ac3eb86..2199b8eb628b 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,7 +38,6 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage -~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! From b86f4e4e218b0e57ab79e0412e0f6042231c6592 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 17 Jul 2025 16:16:04 +0000 Subject: [PATCH 13/19] Undo changes to PublicAPI.Shipped.txt and fix obsolete API entries in Unshipped.txt Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index 10d012202ef6..8b094e6929ae 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -23,5 +23,5 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilde static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void -*REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void +*REMOVED*~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void From 72de4941284deada9dca762b8960abbf0189bc32 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 09:41:50 +0000 Subject: [PATCH 14/19] Restore PublicAPI.Shipped.txt to original state per review feedback Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 1 + .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 2199b8eb628b..61755ac3eb86 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,6 +38,7 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index 8b094e6929ae..a1835cefa38e 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -23,5 +23,5 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilde static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void -*REMOVED*~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void + *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void From 5df2b0bc452f3f53856b6e32dd687deca8263345 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 10:00:23 +0000 Subject: [PATCH 15/19] Fix PublicAPI baseline policy violations by adding proper *REMOVED* entries Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index a1835cefa38e..4b91fc4c21e1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -24,4 +24,6 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilde static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void +*REMOVED*~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void + *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void From ca2cc12af1acbcce8cb299e43d6d36ce595d7869 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:03:00 +0000 Subject: [PATCH 16/19] Fix RS0017 error by removing non-existent ApplyHotReloadDeltas from PublicAPI.Unshipped.txt Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index ab73f02c3964..eac69f327ccf 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -3,7 +3,6 @@ Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.UseSe Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilderExtensions.UseDefaultServiceProvider(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder! -static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDeltas(Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.Delta[]! deltas, int loggingLevel) -> Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.LogEntry[]! *REMOVED*Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.GetApplyUpdateCapabilities() -> string! From 7a915e5b91f21d5135b659538f7f0ae86c012f71 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:32:11 +0000 Subject: [PATCH 17/19] Fix RS0017 error by removing obsolete NotifyLocationChanged method from PublicAPI.Shipped.txt Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 61755ac3eb86..2199b8eb628b 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,7 +38,6 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage -~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! From 7f6edda48873da4c1827057145e544dbe77598e7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 15:54:46 +0000 Subject: [PATCH 18/19] Undo changes to PublicAPI.Shipped.txt per review feedback Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt index 2199b8eb628b..61755ac3eb86 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -38,6 +38,7 @@ ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage ~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string! Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string! From c587cd63df0ac1797a1632f3714c55d57daee2e5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 18 Jul 2025 16:05:48 +0000 Subject: [PATCH 19/19] Fix RS0017 error by adding *REMOVED* entries for both NotifyLocationChanged overloads to PublicAPI.Unshipped.txt Co-authored-by: javiercn <6995051+javiercn@users.noreply.github.com> --- .../WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt index eac69f327ccf..0df7c51bc9b7 100644 --- a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -6,4 +6,5 @@ static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilde *REMOVED*Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.ApplyHotReloadDelta(string! moduleIdString, byte[]! metadataDelta, byte[]! ilDelta, byte[]! pdbBytes, int[]? updatedTypes) -> void *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.HotReload.WebAssemblyHotReload.GetApplyUpdateCapabilities() -> string! +*REMOVED*~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void *REMOVED*static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string! uri, bool isInterceptedLink) -> void