Commit Graph

44 Commits

Author SHA1 Message Date
Javier Calvarro Nelson b7abe1ed90
[Blazor] Fix publish with different combinations of SWA base paths (#28539)
Description
#28017

In 5.0.1 we fixed a publish scenario where Blazor webassembly wasn't respecting the StaticWebAssetBasePath defined for the project. Unfortunately the logic for handling the path composition was not robust enough and while it fixed the publish output layout, it introduced an integration issue later on at runtime.

The current fix makes the handling of the path more tolerant to initial and final slashes and includes a new end to end test that validates this scenario.

Customer Impact
Customers can't host blazor applications outside the root path (/)

Regression?
Yes. Worked in 3.2

Risk
Low.

We've included additional tests and E2E automation to verify this case.

Validation
 Automated
 Manual
2020-12-10 13:49:49 -08:00
Javier Calvarro Nelson 6bb4a3f370
[Blazor] Fixes issues with route precedence (#27907)
Description
In 5.0 we introduced two features on Blazor routing that enable users to write routing templates that match paths with variable length segments. These two features are optional parameters {parameter?} and catch all parameters {*catchall}.

Our routing system ordered the routes based on precedence and the (now false) assumption that route templates would only match paths with an equal number of segments.

The implementation that we have worked for naïve scenarios but breaks on more real world scenarios. The change here includes fixes to the way we order the routes in the route table to match the expectations as well as fixes on the route matching algorithm to ensure we match routes with variable number of segments correctly.

Customer Impact
This was reported by customers on #27250

The impact is that a route with {*catchall} will prevent more specific routes like /page/{parameter} from being accessible.

There are no workarounds since precedence is a fundamental behavior of the routing system.

Regression?
No, these Blazor features were initially added in 5.0.

Risk
Low. These two features were just introduced in 5.0 and their usage is not as prevalent as in asp.net core routing. That said, it's important to fix them as otherwise we run the risk of diverting in behavior from asp.net core routing and Blazor routing, which is not something we want to do.

We have functional tests covering the area and we've added a significant amount of unit tests to validate the changes.
2020-11-20 11:43:11 -08:00
Pranav K 0e5d7ef1d4
Attempt to read the logs from the browser (#26289)
* 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
2020-09-28 17:07:22 -07:00
Safia Abdalla e2dd2969b5
Set SameSiteMode for cookies in authentication tests (#25281) 2020-08-26 12:22:34 -07:00
Javier Calvarro Nelson 38563dd8d1
[Blazor][Identity] Update to the latest identity server version (#25002)
* Updates to IdentityServer 4.0.4
* Updates templates with the new migrations.
* Fixes a small configuration bug that required the configuration for the key to be specified.
* Updates the error url in IdentityServer config to match our template defaults.
2020-08-19 02:12:35 -07:00
Pranav K 8e5533f2a3
Use BlazorWebAssemblySDK (#24371)
* Use BlazorWebAssemblySDK

* Update projects to use the BlazorSDK
* Remove tasks and targets from RazorSDK
* Remove workarounds from BlazorSDK

* Fixup

* Fixup
2020-08-11 17:29:01 +00:00
Pranav K 9a4e6cf97c
Merge remote-tracking branch 'origin/release/5.0-preview7' 2020-07-02 11:42:14 -07:00
Ajay Bhargav B 7f4b846e9f
Made the encodings of .razor and .cshtml files in the repo consistent (#23502)
* Added UTF8 BOMs to .razor and .cshtml files

* Fixes and unquarantined BOM tests

* Update .editorconfig
2020-06-30 12:03:01 -07:00
Pranav K b93db41b5e
Merge branch 'master' into merge/release/5.0-preview7-to-master 2020-06-29 13:29:53 -07:00
Pranav K 126f14dbd2
Component package updates (#23371)
* Stop cross-compiling Component packages
* Remove Microsoft.JSInterop reference from M.A.Components
* Update RCL template

Fixes https://github.com/dotnet/aspnetcore/issues/23124
Fixes https://github.com/dotnet/aspnetcore/issues/23351
2020-06-29 11:36:59 -07:00
Pranav K ac291877c7
Remove WebAssemblyHttpHandler ref-assembly package (#23245)
* Remove WebAssemblyHttpHandler ref-assembly package

Fixes https://github.com/dotnet/aspnetcore/issues/22283

* Fixup
2020-06-24 23:58:18 +00:00
Pranav K f6a6e4bd07
Replat blazor on net5 (#23078)
* Replat blazor on net5

* Make all e2e tests pass

* Fixup

* Update js files

* Fixups

* Fixup

* Fixup

* Skip globalization tests

* Undo workarounds

* PR feedback

* Update dependencies from https://github.com/dotnet/runtime build 20200622.6

System.ComponentModel.Annotations , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging , Microsoft.Extensions.Internal.Transport , Microsoft.Extensions.Http , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Configuration.Xml , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.Platforms , Microsoft.Win32.Registry , Microsoft.Win32.SystemEvents , Microsoft.NETCore.App.Internal , Microsoft.NETCore.App.Ref , System.Drawing.Common , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.Channels , System.Windows.Extensions , System.Security.Principal.Windows , System.Security.Permissions , System.Security.Cryptography.Xml , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Net.WebSockets.WebSocketProtocol , System.Reflection.Metadata , System.Runtime.CompilerServices.Unsafe , System.Security.Cryptography.Cng , System.Security.Cryptography.Pkcs
 From Version 5.0.0-preview.7.20321.2 -> To Version 5.0.0-preview.7.20322.6

* Update js file

* Fix version

* Fixup

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
2020-06-23 18:19:55 -07:00
Doug Bunting c4c6e25a06
Add missing doc files and cleanup nits (#22931)
* nit: Remove useless `$(HasReferenceAssembly)` settings
  - set in /Directory.Build.targets
    - `true` only in `$(IsAspNetCoreApp)` projects
* nit: Remove useless `$(CompileUsingReferenceAssemblies)` settings
  - no current versioning differences between ref/ and src/ assemblies when targeting default TFM
* Add more `$(GenerateDocumentationFile)` settings
  - increases the number of generated doc files, mostly without problems
- !fixup! correct typo in `DebugProxyHost` doc comments
    - was not generating a doc file before
  - remove previous (ineffective) src/Components/Directory.Build.targets setting
  - nit: remove a duplicate `$(GenerateDocumentationFile)` setting
* nit: Remove useless `$(IsPackable)` settings
  - only analyzers and implementation projects are packable by default
    - main use case for explicit setting is projects shipping only in shared framework
  - conditional setting in src/Mvc/Directory.Build.props just subset logic in /Directory.Build.targets
* nit: Remove useless `$(IsProjectReferenceProvider)` settings
  - only implementation projects are providers by default
* nit: Remove useless `$(IsTestAssetProject)` settings
  - set in src/Mvc/test/WebSites/Directory.Build.props
* !fixup! Looks like `InProcessNewShimWebSite` must compile w/o ref/ assemblies
  - restore `$(CompileUsingReferenceAssemblies)` in this one project
2020-06-17 13:04:45 -07:00
Pranav K 71853a4640
Merge branch '3.1merge' 2020-06-10 11:30:40 -07:00
Pranav K 11ac23c65d
Changes per PR 2020-06-08 22:19:34 -07:00
Pranav K 592dfe165b
Changes to build in master
* Cleanup bad merge
* Update to dotnet-serve that supports arbitrary ports
2020-05-28 15:43:55 -07:00
Pranav K 4c50b6cb16
Merge blazor-wasm in to master 2020-05-27 11:00:38 -07:00
Pranav K ae2017f31e
Changes to allow building in 3.1 branch
* Undo overzealous merge choices
* Undo temporary changes applied when part of the repo was building in the blazor-wasm branch
* Skip SPA template tests in 3.1
2020-05-22 09:20:54 -07:00
Pranav K 8efeefb3d1
Merge branch 'blazor-wasm' into prkrishn/merge-blazor-wasm 2020-05-16 21:10:28 -07:00
dotnet-maestro[bot] b8f7dde377
[blazor-wasm] Update dependencies from dotnet/arcade dotnet/blazor (#20972)
* Update dependencies from https://github.com/dotnet/blazor build 20200417.2

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20217.2

* Update dependencies from https://github.com/dotnet/blazor build 20200418.1

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20218.1

* Update dependencies from https://github.com/dotnet/arcade build 20200418.1

- Microsoft.DotNet.Arcade.Sdk: 1.0.0-beta.20208.8 -> 1.0.0-beta.20218.1
- Microsoft.DotNet.GenAPI: 1.0.0-beta.20208.8 -> 1.0.0-beta.20218.1
- Microsoft.DotNet.Helix.Sdk: 2.0.0-beta.20208.8 -> 2.0.0-beta.20218.1

* Update dependencies from https://github.com/dotnet/blazor build 20200420.1

- Microsoft.AspNetCore.Components.WebAssembly.Runtime: 3.2.0-rc1.20217.1 -> 3.2.0-rc1.20220.1

* Update to BROWSER RID

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Pranav K <prkrishn@hotmail.com>
2020-04-21 20:19:04 +00:00
Pranav K d2ee131fd8
Fixup reference to M.AspNetCore.Components.WebAssembly.HttpHandler (#20891)
* Fixup reference to Microsoft.AspNetCore.Components.WebAssembly.HttpHandler

As part of attempting to fix the reference in the test project (which ultimately wasn't needed), I messed up the package reference in the WebAssembly package
This fixes the package reference and removes unnecessary code from the test project
2020-04-17 14:23:20 -07:00
Steve Sanderson e95264f237 Support overriding how boot resources are loaded. Fixes #5462 2020-04-17 07:45:06 +01:00
Pranav K 1e70883e87
Create a ref-assembly package for HttpHandler (#20382)
* Create a ref-assembly package for HttpHandler

Fixes #19202
2020-04-13 14:07:15 -07:00
Javier Calvarro Nelson 546b52004c
[Blazor][Wasm] Adds HttpMessageHandler to automatically attach tokens to outgoing requests (#20682)
* 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.
2020-04-13 04:27:53 -07:00
Pranav K cc0407877f
Merge branch 'blazor-wasm' into blazor-wasm-preview5 2020-04-10 21:49:10 -07:00
Javier Calvarro Nelson 43bd9dbf3e
[Blazor][Wasm] API review feedback (#20652)
* 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
2020-04-08 16:08:43 -07:00
Javier Calvarro Nelson f34ef732d2
[Blazor][Wasm] Auth cleanups (#20587)
* 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
2020-04-06 16:07:17 -07:00
Javier Calvarro Nelson fd9c786165
[Blazor] More auth fixes (#20192)
* 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.
2020-04-04 04:06:25 -07:00
Steve Sanderson 05ee136e87 Rename site.css to app.css. Fixes #19779 2020-03-31 12:31:57 +01:00
Pranav K cb6858fe31
Update to using System.Net.Http.Json (#20195) 2020-03-26 10:13:23 -07:00
Javier Calvarro Nelson b0a95d05e0
[Blazor] Auth fixes (#20191)
* 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.
2020-03-26 09:07:46 -07:00
Pranav K de2fa4c69c Update versions
* Update Blazor version to preview4
* Update ASP.NET Core references to 3.1.3
* Remove DisableImplicitComponentsAnalyzers workaround
2020-03-25 15:59:17 -07:00
Pranav K 47536a3c14
Blazor wasm preview4 (#20117)
* Restore public API contract on WebAssemblyJSRuntime (#19968)

* Shrink icon-512.png (#19999)

* Use custom DebugProxyHost to initialize DebugProxy config (#19980)

Addresses #19909

* Spruce up WebAssemblyHostEnvironment interface and use (#20008)

* Load .dlls/.wasm/.pdb in parallel with dotnet.*.js. Fixes #18898 (#20029)

* Add BaseAddress property to WebAssemblyHostEnvironment (#20019)

- Adds `BaseAddress` to `IWebAssemblyHostEnvironment`
- Uses unmarshalled APIs to extract application host
- Move NavigationManager initialization to startup code
- Fix subdir mapping in ClientSideHostingTest

Addresses #19910

Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
Co-authored-by: Safia Abdalla <safia@safia.rocks>
Co-authored-by: Safia Abdalla <safia@microsoft.com>
2020-03-25 01:51:55 +00:00
Steve Sanderson 2e9bb2ff5f
Debug proxy as external tool (#19767) 2020-03-12 18:42:13 +00:00
Steve Sanderson eed3605ae5
In debug mode, don't enable the linker by default (plus other minor build fixes) (#19374)
* 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>
2020-02-27 11:49:47 +00:00
Pranav K 7ba8d06717
BlazorWASM: API review (#19219)
Fixes https://github.com/dotnet/aspnetcore/issues/13174
2020-02-21 12:58:02 -08:00
Steve Sanderson 6fe946e633
Blazor WebAssembly caching fixes (#19235)
* 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.
2020-02-21 17:35:36 +00:00
Javier Calvarro Nelson c9c06f573d
[Blazor] Adds support for statically pre-compressing assets using gzip (#19157)
* Adds a task to perform gzip compession.
* Gzips framework files incrementally
* Serves pre-compressed versions of the framework files when possible.
2020-02-21 09:32:07 -08:00
Pranav K 4715de45eb
Fixup RuntimeDependenciesResolver test (#19208)
Fixes https://github.com/dotnet/aspnetcore/issues/12059
2020-02-21 08:35:20 -08:00
Javier Calvarro Nelson 9ded8e17d4
Change MapBlazorWebAssemblyApplication to UseBlazorFrameworkFiles (#19198) 2020-02-21 04:20:41 -08:00
Marlon Regenhardt 6a85855fbb
[Blazor][Wasm] Move HttpClient from default services to Program.Main (#19119)
* [Blazor][Wasm] Move HttpClient from default services to extension method (#16929)

* Apply suggestions from code review

Co-authored-by: Steve Sanderson <SteveSandersonMS@users.noreply.github.com>
2020-02-20 10:47:49 -08:00
Javier Calvarro Nelson c39bc6a6bd
[Blazor] Move to MapBlazorWebAssemblyApplication (#19147)
Move to MapBlazorWebAssemblyApplication as the way to map blazor files into a hosted application.
2020-02-19 23:56:43 -08:00
Javier Calvarro Nelson 0e155fd7ca
[Fixes #12588][Blazor] Move Blazor to use Static Web Assets (#18409)
* [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.
2020-02-19 04:05:03 -08:00
Pranav K c935e9aa2d
Blazor WebAssembly package renames (#19026)
Fixes https://github.com/dotnet/aspnetcore/issues/18384
2020-02-18 10:54:28 -08:00