* !!! Correct condition controlling `public` API analysis !!!
- #26785 demonstrated analyzers were inoperable
* Remove unused `public` API files
* Update `public` API files
- three Components files were missing `#nullable enable`
- `nullable` annotations missing or out-of-date elsewhere
* Ignore `public` API files completely during source build
- do not warn about unused files
* Update more `public` API files
Using Browser.Exists is equivalent to Browser.FindElement except it provides better logs
and diagnostics when the assertion fails. The additional waits will also rule out
failures due to the browser taking time to update possibly improving stability.
I looked at the implementation of WebDriverWait to verify that using it will not
introduce additional delays to our tests.
* Attempt to read the logs from the browser
Seleniunm currently does not return log messages (See https://github.com/SeleniumHQ/selenium/issues/8229).
This making figuring out blazor WASM test failures a lot harder.
This change adds some JS to the test apps to read the console output.
* WIP
The package was marked as non-shipping but we continued to build and test it. This change
removes it. A copy of this code exists in asplabs so all is not lost.
* Add tests for failing disconnect scenarios
* Remove beforeunload call and add public API
* Add additional test case
* Update src/Components/test/testassets/BasicTestApp/GracefulTermination.razor
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
* Detect culture change in .NET
With ICU sharding enabled, blazor wasm attempts to detect if the application culture was changed by the
application code as part of Program.MainAsync and tell them they need to opt out of sharding.
Prior to this change, Blazor compared the .NET culture string with a JS representation for language. With iOS 14,
the two culture strings differ in casing which prevents the use of any Blazor WASM app the latest version installed.
As part of this change, the comparison is performed entirely in .NET which avoids relying on the JS representation.
* Fixups
* E2E test cases for Virtualize data refresh
* Expose public RefreshDataAsync API
* Optimize: don't instantiate CancellationTokenSource when it won't be used
* For in-memory data, refresh automatically on each render cycle
* Fix typo
This change is prep for post build signing. When PostBuildSign=true, signing is not performed during the build. Instead, pass the top-level artifacts that are signable to PushToAzureDevOpsArtifacts (via Publish.proj).
Also fix up ArtifactsDir. As far as I can tell, it's been fixed up in Arcade to always include the trailing \, and Publish.proj should no longer be messed up.
* Fix chrome/selenium tests (#25330)
* Revert "Disable failing/hanging tests due to Chrome/Selenium issue (#25323)"
This reverts commit 332f1504128a63431cb67830703922cdeefee525.
* Update Selenium to latest
* Update API
* Try specifying a version
* Update Selenium to 4.0.0-beta5
* Disable browser log tests
* Fix components e2e tests and disable blazor standalone template test
* Disable tests using browser log
* Disable template test
* Avoid using .NET formatted strings in tests
* Annotate BasicTestApp suggesting that it needs the all globalization data
* Culture specific formatting relies on the ICU data carried by the OS. This
causes issues in our tests if WebAssembly carries a different set than the OS. Instead
updating these tests to use hardcoded strings.
* Additionally fixing an issue where some projects in the solution were using tasks from
the .dotnet SDK rather than the local copy of the SDK. This was causing issues building locally.
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* Fix caching of WASM resources on localhost
* Fix test server startup
* Add missing server variant of VirtualizationTest
* Make test namespaces consistent
* Fix VirtualizationTest cases
* Update BootResourceCachingTest
[release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime dotnet/efcore
- Updates:
- System.ComponentModel.Annotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Diagnostics.DiagnosticSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Diagnostics.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.DirectoryServices.Protocols: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Console: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Primitives: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Logging: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Http: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.DependencyModel: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Hosting: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.Platforms: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Win32.Registry: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.Win32.SystemEvents: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Internal: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Microsoft.NETCore.App.Ref: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Drawing.Common: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Threading.Channels: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Windows.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Text.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Text.Encodings.Web: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.ServiceProcess.ServiceController: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.IO.Pipelines: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.Http.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.Http.WinHttpHandler: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Reflection.Metadata: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.AccessControl: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Cng: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Pkcs: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Cryptography.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Permissions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Security.Principal.Windows: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- System.Resources.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
- Updates:
- Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- dotnet-ef: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
- Updates:
- Microsoft.DotNet.Build.Tasks.Installers: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- Microsoft.DotNet.Helix.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- Microsoft.DotNet.Arcade.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
- System.IO.Pipelines Fix
(cherry picked from commit 520b9e23f027d7cca49d33f1dc6b2a0e57c893b3)
- Skip reference check of System.IO.Pipelines ref/ assembly
- add Framework projects to solution
- add Framework.slnf and startvs.cmd in src/Framework
- Merge branch 'release/5.0-rc2' into darc-release/5.0-rc2-d6b9c1c0-be36-4d12-b860-e7e54a75cb6d
- part of #24347
- unable to do src/Components/Authorization due to contained `*.razor` file
- ignored src/Components/Analyzers and src/Components/WebAssembly/Sdk
This change includes several improvements to CSS isolation that we have gathered from validation and usage feedback.
We have switched from producing a single scoped CSS bundle file for the entire application with all the scoped css files from the current project, referenced projects and package projects to producing one bundle per referenced project/package and to include those bundles into an "application" bundle throught CSS @import statements.
We have cleaned up the bundle names to make them more unique by including the project name on them and we have also cleaned up the bundle extensions.
We have decided to put the individual bundles generated for the project scoped css assets into the static web assets base path of the project, so that when developers reference assets from their scoped css files (like using the CSS url function) the path they use matches what they have inside their library wwwroot folder.
We have decided to put the application bundle on the root path of the application provided that the developer has not overriden the default StaticWebAssetsBasePath.
This is so that the bundle location is consistent across templates, and can be found at ProjectName.styles.css independent of whether the app is a blazor webassembly app or a server side blazor app.
For cases where the default StaticWebAssetBasePath has been overriden, the value is respected and the bundle is placed at $(StaticWebAssetBasePath)/ProjectName.styles.css.
Packaged razor class libraries with scoped css files now package a "project" bundle instead of the individual files.
* Added IJSUnmarshalledObjectReference
* Working support for IJSUnmarshalledObjectReference
* CR feedback
* Removed IVT and made JSObjectReference public
* Updated JSON converter.
* Update JSObjectReferenceJsonConverterTest.cs
* Removed whitespace 😓
* Use ItemSize if it's close to the calculated item size.
* Update WeatherForecastService.cs
* Improved item size calculation.
* Always use calculated item size
* Disable overflow anchoring on scroll containers (except the document itself)
* Update JS files following rebase
* Apply overflow anchor fix to document element too
* Add OverscanCount parameter
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
* Changes from API review
* Feedback from security review
* Update IBrowserFile.cs
* Updated documentation.
* Moved InputFile to M.A.Components.Forms
* More changes
* Move ProtectedBrowserStorage to it's own package
* Mark Components.Web.Extensions as non-shipping until we can move it over
* Allow InputFile.OpenReadStreamAsync to specify an expected file size.
* Fix E2E tests
* CR: Throw if user supplies too many files.
* Another build fix
* CR: Zero files is not a scenario
* Update E2E tests
* Update JS binaries after rebase
* Update test
Co-authored-by: Pranav K <prkrishn@hotmail.com>
Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
* Use MonoProxy package for debugging
* Initial working end-to-end
* Update package version and polish up dbging issues
* Throw exception if DebugProxy received no output
- mostly duplicates #25217
- update `BaselineGenerator` to produce baselines useful in 6.0 (too)
- update Baseline.Designer.props using new generator (matching 3.1.7 release)
- always suppress references expressed only in `*.nuspec` files
- needed even in servicing builds
- restore warning and errors about removed references (new for 5.0)
- adjust exclusions to handle `@(_ProjectReferenceByAssemblyName)` removal
nit: do not generate empty `<ItemGroup />` elements
* Correct `@(SuppressBaselineReference)` items
- remove out-of-date `@(SuppressBaselineReference)` items
- either 3.1.7 baselines we're using don't include reference or still using package
- fix some comments and `Condition` attributes to make remainder easy to find
- add missing `@(SuppressBaselineReference)` items