* Adds an authorization handler for integration with HttpClient in different scnearios.
* Adds a message handler to streamline calling protected resources on the same base address.
* Print disk usage
* Try again
* Disk util part3
* dont look at /tmp
* Remove max-depth
* Add disk usage stats to all non-windows platforms
* Disable Ubuntu quarantined test step
* Apply suggestions from code review
- Make thingies worky on macOS
* Update .azure/pipelines/jobs/default-build.yml
* Undo skip of qurantined test run
* Update .azure/pipelines/jobs/default-build.yml
- do not reference directory that doesn't exist
* Update .azure/pipelines/jobs/default-build.yml
- reduce noise in Mac disk utilization output
Co-authored-by: Doug Bunting <6431421+dougbu@users.noreply.github.com>
* UserFactory->AccountClaimsPrincipalFactory
* Change constants to static readonly
* Make applicationpaths provider and RemoteAuthenticatorViewCore dependencies internal
* Change collection types, make properties get only where possible
* Change state constraint to extend RemoteAuthenticationState
* Avoid using query parameter when passing messages to the error UI.
* Adds an additional parameter to automatically perform the redirect.
* Fix provisioning additional tokens in MACWA.
* Fix create solution with spaces
* Cleanup Msal startup APIs.
* Rename UserFactory -> AccountClaimsPrincipalFactory
* [Blazor] Support brotli compression for framework files
* Adds a new tool to the Blazor.Build package to perform brotli compression.
* Performs brotli compression at publish time
* Centralizes hashing computation in one place and creates hash files for
performing incremental compilations
* Introduces customization options for mapping user claims principals.
* Supports login/logout flows extensibility.
* Improves E2E test reliability
* Improves reliability on the AuthenticationService
* Improves the experience by trying to silently log-in users on startup.
* Avoids loading the Blazor application when within a hidden iframe.
**Changes in this PR**
- Replaces `WebAssemblyLoggerFactory` with `LoggerFactory` from logging extensions package
- Moves WebAssemblyConsoleLogger and PrependMessageLogger to provider model
Now that we are using the standard `LoggerFactory` support for config options like `SetMinimumLevel` and `AddProvider` is available.
Compared to what is currently in the `blazor-wasm` branch, the changes in this PR add an additional 12 kb to the total compressed size.
Addresses #19737
* Adds MetadataAddress property to OidcProviderOptions.
* Sets defaults for the Msal cache location on the provider initialization.
* Updates the template to avoid redirecting to the login page if the user is already authenticated.
* Fixes startup APIs for AddRemoteAuthentication.
* Fixes TryGetToken for the Blazor MSAL library when the token can't be acquired silently.
* Write SWAM version into service worker output
* Update project template
* Add publishing test
* Update src/Components/WebAssembly/Build/src/targets/ServiceWorkerAssetsManifest.targets
Co-Authored-By: Pranav K <prkrishn@hotmail.com>
* Add E2E test for hosted PWA too
* Avoid test clashes
* E2E test fix
* E2E test fix
* E2E test fix
Co-authored-by: Pranav K <prkrishn@hotmail.com>
The linker's changed since the issue report and correctly resolves paths.
However the dev-server was doing weird things to calculate the path to the output.
Fixes https://github.com/dotnet/aspnetcore/issues/18288
* Initialize the runtime state correctly for debugging
On startup the DebugProxy needs to know when the runtime
has initialized enough to be able to begin interaction
this is accomplished by breaking in mono_wasm_runtime_ready()
which the Proxy sees does initialization and then resumes from.
Simply setting mono_wasm_runtime_is_ready breaks that logic,
but even worse it appears that the variable is linked out
in the release version
* Regen webassembly.js
Co-authored-by: Larry Ewing <lewing@microsoft.com>
* In debug mode, don't enable the linker by default
* Fixup
* Update Blazor.MonoRuntime.targets
* Ensure we have a true/false value. Stop inferring from BlazorLinkOnBuild.
* Avoid doing work for ServiceWorkerAssetsManifest when it's not being used
* React to BlazorLinkOnBuild->BlazorWebAssemblyEnableLinking rename
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* Update to match Mono sources at a8d34b2
* Update to match Mono sources at fafa41f
* Update to match Mono sources at ed012b6
* Change class/struct/enum types to internal
* Use ILogger in proxy code
* Update to match https://github.com/mono/mono/pull/19026
Fixes: #18814
This adds back support on the Blazor WASM Host for using
ISerivceProviderFactory<>.
We previously had this support when the Blazor WASM host was a clone of
generic host, but I accidentally lost it when simplifying the host
(sorry :( ).
* Support logging errors that happen really early
* Tolerate all the ways caching might be unavailable
* Include dotnet.js in blazor.boot.json
* Reorganize boot manifest to categorize files by role, not just by filename extension
* Enable cache-busting and SRI check on dotnet.js
* Change cache-busting to vary filename, not using querystring. Needed to make PWA manifest still work.
- Multi-target ObjectPool
- Move Embedded.Manifest.Task.Internal.Entry to the public namespace
- Remove ref assemblies from AspNetCore.Testing
- Skip TestPathUtilitiesTest since it's a pattern we want to migrate away from
- Fix FileProviders.Abstractions version in Embedded.*.nuspec
- Add workarounds for project references to FileProviders.Embedded
- change ref/ projects to build only the default TFM during source builds
- avoid errors restoring packages like Microsoft.BCL.AsyncInterfaces
- may also speed up source builds slightly
* [Blazor] Move Blazor to use Static Web Assets
* Plugs-in Blazor wasm through the static web assets infrastructure.
* Avoids the need for a custom Blazor.config file.
* Removes broken auto-rebuild and debug support.
* Removes unnecessary server-side Blazor helpers.
* [Blazor] Adds a project template option for individual auth
* Handles hosted scenarios with Identity Server.
* Handles non-hosted scenarios with oidc-client.js.
* Handles AAD and B2C scenarios with an MSAL library (disabled for now).
* Adds a Microsoft.AspNetCore.Components.WebAssembly.Authentication
library for performing authentication in Blazor webassembly.
* Includes a default implementation that supports OIDC capable IdPs
using oidc-client.js
* Includes multiple primitives to deal with authentication flows and
supports acquiring access tokens to call APIs.
* RemoteAuthenticatorView is responsible for handling authentication
operations at the user interface level.
* RemoteAuthenticatorService is responsible for handling the lower
level authentication details by using JavaScript interop to interact
with the underlying javascript library implementing the auth protocol.
* SignOutSessionStateManager handles CSRF protection for the logout
path.
* IAccessTokenProvider handles provisioning access tokens to call APIs.
when attempting to enable client debugging on blazor-wasm an attempt to
provide a helpful message casues an ¨Unknown OS platform¨ exception
relates to #16366#12970
* Use the analyzer from the SDK when available
This prevents a build warning when building a project that contains a reference to
Microsoft.AspNetCore.Components and a netcoreapp3.0 or newer targeting Web project.
The Web SDK implicitly adds the Components.Analyzer for netcoreapp3.0 or newer targeting projects.
If the project additionally referenced this package (directly or transitively), the package would
set up a property that prevented the implicit analyzer reference. This prevented the analyzer from
being referenced twice.
There were two issues with the current approach:
a) The props file wasn't propogated via buildTransitive. Consequently transitive project references
would reference two copies of the analyzer. When these were different versions, it resulted in a compiler
warning.
b) Forward looking, this prevents newer versions of the analyzer shipped from the SDK from ever being used.
This is particularly problematic since apps are likely to reference component libraries that were previously
compiled against 3.x.
This change attempts to mitigate both of these issues:
a) We add a buildTransitive so our build targets flow
b) We knock out the analyzer added by the package if the SDK's already added it.
Fixes https://github.com/dotnet/aspnetcore/issues/18563
* Update Microsoft.AspNetCore.Components.Analyzers.targets
* Update Microsoft.AspNetCore.Components.Analyzers.targets
* Add a description
* Update Microsoft.AspNetCore.Components.Analyzers.targets
* Add service worker
* Add manifest
* Bring back BaselineTest.cs
* Add baselines for blazorwasm templates
* Add publishing test for PWA template
* Baseline fixes
* Fix baseline test logic to allow for multi-project outputs
* Remove non-blazorwasm baselines, since this branch now only covers blazorwasm
* Add test for PWA publish output
* Beginning generation of assets manifest
* Generate assets manifest including blazor outputs
* Tweaks
* Write assets manifest in JSON form
* Publish service worker
* Better API
* More resilience
* Better API again
* Make ComputeBlazorAssetsManifestItems public as people will need to customize the list
* Exclude service worker files from assets manifest
* Use web standard format for hash
* Update project template
* In assets manifest, only include items being published
* Renames
* Compute default assets manifest version by combining hashes
* Emit sw manifest in .js form
* Update service worker in project
* Actually isolate browser instances when requested during E2E tests
* E2E test for published PWA operating offline
* Fix SWAM path in template
* Clarify targets
* Mark AspNetCore projects that aren't packaged explicitly
- avoid NU5104 warnings due to confusing versioning
- `$(IsShippingPackage)` was semantically incorrect in any case
* Remove redundant `$(IsShippingPackage)` settings in `$(IsAspNetCoreApp)` projects
- default is `true` for all implementation projects
* Use `$(IsPackable)` when deciding how `$(IsAspNetCoreApp)` projects are handled
- remove all use of `$(IsShippingPackage)` for shared framework composition
- update documentation to match these changes
nits:
- remove odd default for `$(IsPackable)` in Directory.Build.targets
- no longer relevant since all `$(IsAspNetCoreApp)` projects are `$(IsShippingPackage)` too
- include more information in docs/ProjectProperties.md
* Add direct System.Text.Json references
- avoid MSB3277 warnings
The version of the runtime that projects compile against
is stamped in to the runtimeconfig.json. In an earlier change, the AspNetCoreRef version
was bumped up to 3.1.2 which causes running dotnet dev-serve to fail
if you do not have the runtime installed.
In addition, the template json allows roll-forwards to major version (5.0 versions) if that's the only version
available. We do this with the razor compiler:
https://github.com/dotnet/aspnetcore-tooling/blob/master/src/Razor/src/Microsoft.AspNetCore.Razor.Tools/runtimeconfig.template.json
* Use stable versioning in blazor-wasm
* This branch never builds the targeting pack
* Update eng/Versions.props
* Undo changes to patchconfig.props
Co-authored-by: Pranav K <prkrishn@hotmail.com>
* Update to latest ws-proxy sources
* Changes needed inside ws-proxy sources for inclusion in Microsoft.AspNetCore.Blazor.Server
* Use ILogger in ws-proxy
* Fix for /json endpoint when on HTTPS