Commit Graph

187 Commits

Author SHA1 Message Date
Ajay Bhargav Baaskaran c605d6cf63
Don't release SemaphoreSlim when it is canceled (#12818)
* Don't release SemaphoreSlim when it is cancelled

* fixed tests

* Rebased

* Updated ref

* mark test as flaky
2019-08-14 12:40:44 -07:00
Ryan Nowak 1f7d59d8f1 Remove IComponentContext
Fixes part of: #12553

We don't believe that this is needed anymore. We no longer call
OnAfterRender when you're prerendering, so the main use case of this
type is gone.
2019-08-14 12:06:05 -07:00
Pranav K a285e966e3
Mark InteropReliabilityTests flaky again (#13130) 2019-08-14 11:15:17 -07:00
Javier Calvarro Nelson 74c09470c6
[Blazor][Fixes #12056] Avoid producing warnings for bad inputs.
* Does not produce warnings when receiving invalid event arguments.
* Does not produce warnings when receiving an invalid event handler id.
* Does not produce warnings when receiving an ack for an unknown batch.
2019-08-14 13:01:53 +02:00
Ryan Nowak 1f4341a248 Add 'firstTime' parameter to OnAfterRender
Fixes: #11610

I took the approach here of building this into `ComponentBase` instead
of `IHandleAfterRender` - *because* my reasoning is that `firstTime` is
an opinionated construct. There's nothing fundamental about `firstTime`
that requires tracking by the rendering, it's simply an opinion that
it's going to be useful for component authors, and reinforces a common
technique.

Feedback on this is welcome.
2019-08-12 18:35:39 -07:00
Steve Sanderson a4ab9ffa05 Factor out auth and forms. Fixes #12950 (#12999)
* Add empty Authorization src and test projects

* Add references

* Move auth types into .Authorization project

* Move auth tests

* Fix Mvc.ViewFeatures

* Remove the reference from .Web to .Authorization, so it's truly optional

* Add empty Forms src and test projects

* Remove dependencies from Components.csproj

* Move forms sources and tests

* Reference .Forms from .Web (needed unless we also have .Forms.Web)

* Rebase on #12936

* Update reference assemblies

* CR: Add Authorization namespace

* Update ref sources

* Add missing using

* Add another missing using
2019-08-12 16:36:27 -07:00
Ryan Nowak 89bf58445f Use a ConcurrentDictionary
This is used from a bunch of static methods. Dictionary isn't thread
safe. Encountered this while debugging some other things.
2019-08-11 10:49:14 -07:00
Ryan Nowak 18f5ec71ed Terminate circuit on error
Fixes: #11845

See: https://github.com/aspnet/AspNetCore/pull/12857 for detailed notes.
2019-08-11 10:49:14 -07:00
Pranav K dda84bc7fc
Use TValue as the generic type parameter (#12953)
* Use TValue as the generic type parameter

Fixes https://github.com/aspnet/AspNetCore/issues/12926
2019-08-09 10:19:33 -07:00
Steve Sanderson d716ca9d62
Remove .Web IVTs and refactor. Fixes #12713 (#12967)
* Remove IVTs from Microsoft.AspNetCore.Components.Web to .Blazor/.Server

* Eliminate RendererRegistry from .Web, as it's not needed for server-side Blazor

* Reintroduce RendererRegistry as a WebAssembly-specific concept. Refactor event data parsing.

* Remove redundant guard

* Corresponding test updates

* Update ref sources

* CR: Remove renderer ID fully from server-side Blazor code

* CR: Make WebEventData internal and shared-source

* Hub test updates

* Clean whitespace

* Update binaries

* Regenerate binaries AGAIN

* Update Jest test

* CR: Replace constructor with static parse

* Yet again attempt to refresh the .js binaries

* Fix ref assembly

* Fix test
2019-08-09 00:03:40 +01:00
Pranav K d6d4bb2772
Ensure IFormFile binding for nested properties works (#12847)
* Ensure IFormFile binding for nested properties works

Fixes https://github.com/aspnet/AspNetCore/issues/9510
2019-08-08 12:28:54 -07:00
Steve Sanderson 3bd838f9d4 Making InteropReliabilityTests as flaky 2019-08-08 11:37:58 +01:00
Javier Calvarro Nelson 1b477405ca
[Blazor][Fixes #12940] Make interop tests timeouts more conservative to fix flakiness.
Increases the implicit timeout for each operation from 500 milliseconds to 5 seconds.
2019-08-07 17:41:28 +02:00
Javier Calvarro Nelson 25c240bef5
[Blazor] Graceful disconnection
* Adds a new API endpoint to trigger graceful disconnection from blazor clients.
* Uses the sendBeacon API on the Blazor client to trigger graceful disconnections on the client when the document gets unloaded, which happens when closing the window, navigating away from the page or refreshing the page.
2019-08-07 17:40:02 +02:00
Steve Sanderson 92869c677f
Revalidating auth improvement. Fixes #12692 (#12909) 2019-08-07 15:15:26 +01:00
dotnet-maestro[bot] 594916344d [release/3.0] Update dependencies from 4 repositories (#12854)
* Update dependencies from https://github.com/dotnet/arcade build 20190804.1
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19404.1
- Microsoft.DotNet.GenAPI - 1.0.0-beta.19404.1
- Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19404.1

* React to RenderTreeBuilder namespace change

* Correct builds and tests needing additonal feeds
- use `$(RestoreAdditionalProjectSources)` properties instead of generated NuGet.config files
  - this is closer to the previous approach but avoids `$(RestoreSources)` for the common feeds
  - also remove few remaining `$(RestoreSources)` mentions from SiteExtension.targets
- no need to copy NuGet.config or add feeds in dotnet-watch tests
  - test projects restore within the repo (not in `$env:Temp`) and need no additional feeds

nits:
- $(NuGetConfigFile) hack in eng\Workarounds.props was getting in the way of previous approach and wasn't necessary

* Update dependencies from https://github.com/aspnet/Blazor build 20190805.1
- Microsoft.AspNetCore.Blazor.Mono - 3.0.0-preview9.19405.1

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190805.6
- Microsoft.NET.Sdk.Razor - 3.0.0-preview9.19405.6
- Microsoft.CodeAnalysis.Razor - 3.0.0-preview9.19405.6
- Microsoft.AspNetCore.Razor.Language - 3.0.0-preview9.19405.6
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.0.0-preview9.19405.6

* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190805.13
- Microsoft.EntityFrameworkCore.Tools - 3.0.0-preview9.19405.13
- Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-preview9.19405.13
- dotnet-ef - 3.0.0-preview9.19405.13
- Microsoft.EntityFrameworkCore - 3.0.0-preview9.19405.13
- Microsoft.EntityFrameworkCore.InMemory - 3.0.0-preview9.19405.13
- Microsoft.EntityFrameworkCore.Relational - 3.0.0-preview9.19405.13
- Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-preview9.19405.13

Dependency coherency updates
- Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.Memory - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.SqlServer - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Caching.StackExchangeRedis - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.CommandLineUtils.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.AzureKeyVault - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Binder - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.CommandLine - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.EnvironmentVariables - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.FileExtensions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Ini - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Json - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.KeyPerFile - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.UserSecrets - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration.Xml - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Configuration - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DependencyInjection.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DependencyInjection - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.DiagnosticAdapter - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Diagnostics.HealthChecks - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Composite - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Embedded - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileProviders.Physical - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.FileSystemGlobbing - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Hosting.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Hosting - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.HostFactoryResolver.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Http - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Localization.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Localization - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Abstractions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.AzureAppServices - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Configuration - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Console - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Debug - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.EventSource - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.EventLog - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.TraceSource - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging.Testing - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ObjectPool - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options.ConfigurationExtensions - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options.DataAnnotations - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Options - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ParameterDefaultValue.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Primitives - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.TypeNameHelper.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.ValueStopwatch.Sources - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.WebEncoders - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Internal.Extensions.Refs - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.JSInterop - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Mono.WebAssembly.Interop - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.Extensions.Logging - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Internal.AspNetCore.Analyzers - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)
- Microsoft.AspNetCore.Testing - 3.0.0-preview9.19405.2 (parent: Microsoft.EntityFrameworkCore)

* !fixup! close tag properly
2019-08-06 11:05:09 -07:00
Javier Calvarro Nelson 31cfa2e305
[Blazor][Fixes #11964] Limit the amount of pending renders (#12763)
[Blazor][Fixes #11964] Limit the amount of pending renders
* Adds a default limit of 10 queued pending renders per application.
* Stops producing new render batches after that limit is hit.
* Resumes producing render batches as soon as the client acknowledges a batch.
2019-08-06 16:22:07 +02:00
Steve Sanderson 2ff6a5c0f8
Components router refactoring. Fixes #10493 #10445 (#12800) 2019-08-05 13:52:01 +01:00
Ryan Nowak 352df35864 Re-enable components E2E tests on the CI 2019-08-03 08:52:03 -07: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
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 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
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
Ryan Nowak bfd4305fd8
Blazor API Review: Parameters (#12547)
* Blazor API Review: Parameters

Part of #11610
2019-07-26 09:46:47 -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
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
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
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 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 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
Steve Sanderson e6a4d9f19e Update reconnection E2E tests 2019-07-19 13:29:31 -07:00
Steve Sanderson 1950e59714
Make static prerendering support auth. Fixes #11799 (#12318)
* Make E2E prerendering test use static prerendering (we no longer need coverage for stateful prerendering)

* Use authentication state during static prerendering. This replicates issue #11799 in the E2E test

* Initialize the authentication state provider during static prerendering

* Update ref assembly

* Update unit test
2019-07-19 19:26:33 +01:00
Pranav K c8c7825c94
Fixup test broken during dependency update (#12336) 2019-07-19 06:00:38 -07:00
Javier Calvarro Nelson 4bbfd4dd0a
[Blazor][Fixes #12054] ComponentHub reliability improvements. (#12316)
* [Blazor][Fixes #12054] ComponentHub reliability improvements.
* Validates StartCircuit is called once per circuit.
* NOOPs when other hub methods are called before start circuit and
  returns an error to the client.
2019-07-19 15:00:03 +02:00
Pranav K 22a959a503
Pool byte[] in RemoteRenderer (#11976)
* Pool byte[] in RemoteRenderer
2019-07-18 17:25:27 -07:00