Commit Graph

427 Commits

Author SHA1 Message Date
dotnet-maestro[bot] c79002bf38
[master] Update dependencies from aspnet/AspNetCore-Tooling (#12941)
* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190806.4

- Microsoft.NET.Sdk.Razor - 5.0.0-alpha1.19406.4
- Microsoft.CodeAnalysis.Razor - 5.0.0-alpha1.19406.4
- Microsoft.AspNetCore.Razor.Language - 5.0.0-alpha1.19406.4
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 5.0.0-alpha1.19406.4

* React to RenderTreeBuilder namespace change
2019-08-07 20:14:57 +00:00
Beffyman e7398ca25d Blazor _LinkBlazorApplication changed to use DOTNET_HOST_PATH (#12849)
* change to use host path

* default to path dotnet in cases where it is using desktop msbuild
2019-08-06 07:51:37 -07:00
Ryan Nowak 352df35864 Re-enable components E2E tests on the CI 2019-08-03 08:52:03 -07:00
Javier Calvarro Nelson 521cabc545
[Blazor][Fixes #12283] Prevent HtmlRenderer from calling OnAfterRender by default (#12684)
[Blazor] Prevents HtmlRenderer from calling OnAfterRender by default
2019-08-03 13:03:48 +02:00
Ryan Nowak d52d7e3284
Harden StartCircuit (#12825)
* Harden StartCircuit

Fixes: #12057

Adds some upfront argument validation as well as error handling for
circuit intialization failures.
2019-08-02 20:35:29 -07:00
Ryan Nowak 7f924dd599 fix outlying namespace 2019-08-02 17:23:46 -07:00
Ryan Nowak 3cc6e8373b Fail faster in Blazor E2E tests
This change adds a fail-fast mechanism to our E2E tests based on
the browser console. This will fail super hard if an unhandled exception
is thrown.

I think it would be interesting to also see if we could do the same
thing for 404s.

The goal of this change is to make it so that the E2E tests can fail
faster (3-4s) than the 30s timeout in the case that something
catastrophic happens. As a nice side benefit you get to see the
exception message.
2019-08-02 17:23:46 -07:00
Ryan Nowak 40e268f59e Skip failing tests 2019-08-02 17:23:46 -07:00
Ryan Nowak da49e0e0f6 Fix broken test
These parameters are declared incorrectly.
2019-08-02 17:23:46 -07:00
Steve Sanderson 8a1cf8386f
Stricter key clash detection. Fixes #12691 (#12837) 2019-08-02 22:16:47 +01:00
N. Taylor Mullen d312d797fc Change non-public [Parameter] warning severities to error.
- In preview8 we warned users for non-public `[Parameter]`s and `[Parameter]` setters. For preview9 this is now an error because things will not work as they expect.
- Updated existing tests to reflect the new error expectation.

#12294
2019-08-02 10:25:26 -07:00
Ryan Nowak 9b888e9df5
Blazor API Review: IUriHelper (#12425)
* Rename IUriHelper -> NavigationManager

- Remove IUriHelper interface
- Rename to NavigationManager
- Remove all traces of old naming

There's no functional or design change in this commit - just removing
all traces of the old name. The next few iterations will try to improve
the design.

* Minor API tweaks to NavigationManager

Making Initialize protected causes problems because right now the
server-side code needs to deal with one of two different
implementations, hence an exchange type is used. I followed the same
pattern that was used for auth for symmetry but I have some *cool*
thoughts.

- We can remove this when we remove stateful prerendering
- I have another idea to banish this pattern to the land of wind and
ghosts

If this ends up sticking around longer than a week in the code, lets
discuss other ideas and try to improve the pattern.

* Use hub method for server-side navigation

* Get rid of async local

* Add hub method test

* Misc bikeshedding

* Update src/Components/Server/src/Circuits/DefaultCircuitFactory.cs

Co-Authored-By: campersau <buchholz.bastian@googlemail.com>

* PR feedback
2019-08-01 17:11:09 -07:00
Ryan Nowak 001b54f42e Add component for managing a DI scope
Fixes: #5496
Fixes: #10448

This change adds a *utility* base class that encourages you to do the
right thing when you need to interact with a disposable scoped or
transient service.

This solution ties the lifetime of a DI scope and a service to a
component instance. Note that this is not recursive - we expect users to
pass services like this around (or as cascading values) if the design
dictates it.
2019-08-01 12:03:34 -07:00
Ryan Nowak 45f50905d5 Remove stateful prerendering
Fixes: #12245
Fixes: #12630

This change removes stateful pre-rendering from Server-Side Blazor. This
means that when you render a component during the initial HTTP request,
we we will no longer preserve the component instances and their
parameters. While this feature was useful, it cause serious scalability
concerns.

This means that it will now be required to register "entry-point"
components in startup similar to client-side Blazor.
2019-08-01 07:44:14 -07:00
Ryan Nowak b42ebf119d Fix incrementalism of Blazor solution 2019-07-31 13:31:26 -07:00
Pranav K 9e6924235e
Add logging to RemoteRenderer to time a round-trip (#12638) 2019-07-31 12:18:31 -07:00
Javier Calvarro Nelson 7a0a286ce6
[Blazor][Fixes #12197] Dispose the circuit on graceful disconnections (#12449)
* Immediately releases the circuit when the client disconnects gracefully.
* This functionality is limited to websockets.
* We are able to release the circuit in the following situations:
  * The user closes the browser.
  * The user navigates away.
  * The user reloads the page.
2019-07-31 13:17:00 +02:00
Ryan Nowak 6045c08072 Blazor API Review: Built-in components
Fixes: #12548

Renaming properties to drop 'Content' as a suffix. We haven't been
consistent in using this, and we're removing it instead of adding it
elsewhere.
2019-07-30 09:35:49 -07:00
Ryan Nowak bef01f3e9a Blazor API Review: UIEventArgs types
Fixes: #12550

Removes UIEventArgs in favor of EventArgs as the base class.

Moving Type into all of our event args types - this is important because
many of the events types are used for multiple events.

The only think about this that isn't perfect is that we have keep
special casing change because of how binding works. I renamed the type
to drop the `UI` prefix. It's not possible to define a subclass in the
Web project because of the way covariance works (or doesn't work) in
.NET.
2019-07-29 22:40:28 -07:00
Ryan Nowak 3919dd55c6 Fix globalization for `@bind-value`
Fixes: #12631

These mappings were missing and adding them restores the correct
behaviour. Mixing up the usage of `@bind` vs `@bind-value` so we have
more coverage of this.
2019-07-29 22:39:56 -07:00
Ryan Nowak 82478eac6b Blazor API Review: Forms
Fixes: #12549
2019-07-29 22:37:12 -07:00
John Luo e2d57e2806
Revert "Improve components infrastructure (#12145)" (#12679)
* Revert "Improve components infrastructure (#12145)"

This reverts commit e149f9c0aa.

* Update JS file
2019-07-29 09:03:57 -07:00
John Luo e149f9c0aa
Improve components infrastructure (#12145)
* Remove generated Web.JS javascript files files

* Build NodeJS project referenced by managed projects by default

* Build Web.JS before other CI jobs

- We can't build Web.JS on Linux Musl for example

* Make BuildAll not override explicit BuildJava/NodeJS/Native/Managed settings

* Capture CodeCheck logs for debugging

* Skip NodeJS projects when generation ref assemblies

* Do not build dependent projects if NodeJS is not built

* Make build fail immediately if BuildNodeJS is true but NodeJS is not installed

* Do not build nodejs in installer builds
2019-07-26 13:31:01 -07:00
Ryan Nowak bfd4305fd8
Blazor API Review: Parameters (#12547)
* Blazor API Review: Parameters

Part of #11610
2019-07-26 09:46:47 -07:00
John Luo 2884ef6e1f
Update default project names (#12431) 2019-07-25 14:56:51 -07:00
Ryan Nowak 6526022f6c Blazor API Review: RenderTreeBuilder
Fixes: #12415
2019-07-25 09:45:26 -07:00
N. Taylor Mullen c76cb9248d Add support for increment/decrement [Parameter] usage detection.
- Didn't realize there was an increment or decrement operation kind.
- Added tests to cover this scenario

#12543
2019-07-25 08:47:13 -07:00
Steve Sanderson 54da777b7c
Reset scroll position after navigation. Fixes #10482 (#12423) 2019-07-24 10:25:59 -07:00
Steve Sanderson 8b7fcf1f76
Update user on reconnect. Fixes #12051 (#12421) 2019-07-24 10:23:38 -07:00
Steve Sanderson dd0d483f7d
Fix Web.JS tests (#12513) 2019-07-24 09:48:12 -07:00
Ryan Nowak 3e2f88497d Remove manual ref-assembly generation for Components 2019-07-23 14:39:14 -07:00
Javier Calvarro Nelson c918d72f36
[Blazor] [Fixes #11847] Renderer.DispatchEventAsync throws null reference exception if event handler throws synchronously (#12393)
[Blazor] [Fixes #11847] Renderer.DispatchEventAsync throws null
reference exception if event handler throws synchronously
* Returns after handling the exception.
* Adds a unit test and an E2E test to validate expected behavior.
2019-07-22 19:14:30 +02:00
Javier Calvarro Nelson d846cb4b97
[Blazor] Update typescript dependencies (#12395)
* [Blazor] Update npm dependencies to fix security vulnerabilities
* Update to latest typescript compiler
2019-07-22 19:10:45 +02:00
Steve Sanderson 077df0e3ca
Support more types of redirection during prerendering. Fixes #11591 (#12418)
* E2E test to show current behavior

* Actually support base-relative, root-relative, and absolute redirections during prerendering

* Fix MVC functional test
2019-07-22 08:14:10 -07:00
Steve Sanderson 178374d228
Make reconnection work more realistically (#12420)
* Support reconnection even if an earlier attempt failed

* Add "reload" button to reconnect dialog on failure

* Update blazor.*.js
2019-07-22 07:52:20 -07:00
Steve Sanderson 2c3a44371a
Clear unused routing params. Fixes #7419 (#12407) 2019-07-21 20:00:03 -07:00
Steve Sanderson 22fbeac336
Clarify IUriHelper GetAbsoluteUrl behavior. Fixes #9717 (#12422)
* E2E test showing it already works when navigating inside the app

* E2E test showing expected behavior around both sides of prerendering
2019-07-21 17:22:26 -07:00
Pranav K 36a651e29a
Support fewer data types in BlazorPackHubProtocol (#11662)
These are data types not used \ required by Blazor.
2019-07-21 16:39:45 -07:00
Ryan Nowak 6421c41d30 Update refs 2019-07-21 14:28:41 -07:00
Ryan Nowak f00a6e9c50 Move UIEventArgs types 2019-07-21 14:28:41 -07:00
Ryan Nowak 53c76c70fe Move NavLink to Web
Also undid the use of ref assemblies in our tests. This is kinda wierd
and breaks dev inner-loop.
2019-07-21 14:28:41 -07:00
Ryan Nowak 2aa9933e54 Move Forms to Web 2019-07-21 14:28:41 -07:00
Ryan Nowak 4ac6a4ad35 Fix second part of #12286
We used to be inconsistent between what we'd do when formatting a value
based on whether or not you specified a format.

This change brings us back into consistency.

For a `default` DateTime/DateTimeOffset we will just call ToString on
it. For a `default` nullable of these types we will return the empty
string.
2019-07-20 10:26:31 -07:00
Ryan Nowak 3e10688d12 Attempt to fix bind tests for non-en-US
While it's definitly intended for `@bind` to have culture-sensitive
output for most cases, we want the tests to behave consistently for all
developers.

So this is an attempt to use a fixed culture for all of our testing.
2019-07-20 10:26:31 -07:00
Ryan Nowak d96f444a6b Add support for type="number" and type="date" 2019-07-20 10:26:31 -07:00
Ryan Nowak af7ac7ff29 Add ability to specify culture and format
This lets us specify the associations between the HTML5 field types and
these settings.
2019-07-20 10:26:31 -07:00
Ryan Nowak 3aeee00899 Unskip weakly-typed component bind tests 2019-07-20 10:26:31 -07:00
Ryan Nowak 3f02894057 Add workaround for current tooling
We don't want to put this in one of the product assemblies because that
would undo the API review xD
2019-07-20 10:26:31 -07:00
Javier Calvarro Nelson 470bfddf92
[Blazor][Fixes #8003] Improves reconnects when the client doesn't perform graceful disconnects (#12327)
* Allows the server to accept acks with a higher sequence number than the first queued pending render and caches up to it.
* Makes the client send acks for previous render batches.
* Makes the client repeat acks for errored render batches if it keeps receiving new render batches.
* Client awaits sending acks to ensure that they get send in order.
2019-07-20 02:16:32 +02:00
Ryan Nowak d992a1e2ef Blazor API Review: Server-side startup code
Fixes: #12220

Just some small tweaks here, it's already great.
2019-07-19 15:34:44 -07:00