* 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>
* For individual auth cases, when creating the template from Visual Studio there is no way to provide parameters.
* This change adds a message in the index.html to indicate the steps that need to be followed.
* 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.
* [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
* 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
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
Fixes: #16874
This is a significant simplication of our startup code model for Blazor
wasm with the goal of removing concepts that don't make much sense here.
Previously in this area we've tried to be consistent with ASP.NET Core
on the server, but it's not helping up much in WASM.
We're still leveraging some of the lessons from server-size ASP.NET
(hello CreateDefaultBuilder) but consistency is no longer a goal.
This change actually makes a bunch of scenarios better (rather than
removing features) - it's now possible to access services from the
application's DI scope and initialize them before the UI is shown
`RunAsync`.
This change also adds configuration in a central way. There's nothing in
this change that populates configuration in an automatic way, that will
come next.
* Update dependencies from dotnet/blazor
* Update version of blazor package used
* Removed obsolete WipedMethod invocation test
* react to mono.wasm to dotnet.wasm rename
* Leftover code cleanup
* [Fixes#17014] Add an auth-enabled template for Blazor WASM projects
* The template enables auth using cookies.
* Includes a UserController to return the user claims/data to the user
* Includes an IdentityAuthenticationStateProvider that fetches the
claims data from the application.
* It requires a hosted project.