* Added some doc comments to bedrock APIs
- Also cleaned up some HttpContext doc comments
* Apply suggestions from code review
PR feedback
Co-Authored-By: Andrew Stanton-Nurse <andrew@stanton-nurse.com>
* Apply suggestions from code review
Co-Authored-By: Justin Kotalik <jukotali@microsoft.com>
- Don't register callbacks until we have a request processor
- Remove the IConnectionTimeoutFeature from the feature collection, it was used by connection adapters but isn't needed anymore.
- Rename OnInputOrOutputCompleted to OnConnectionClosed
* Add support for static web assets in blazor client-side
* Blazor serve use MSBuild data instead of heuristics to run the app
* Remove blazor-client-side app Static Web Assets when hosted in an ASP.NET Core
Adds infrastructure for a common IRouter-based pattern. In this pattern,
an extender subclasses Route to post-process the route values before MVC
action selection run. The new infrastructure duplicates this kind of
experience but based on endpoint routing.
The approach in this PR starts at the bottom... meaning that this is the
most-focused and least-invasive way to implement a feature like this.
Similar to fallback routing, this is a pattern built with matcher
policies and metadata rather than a built-in feature of routing.
It's valuable to point out that this approach uses IActionConstraint to
disambiguate between actions. The other way we could go would be to make
the *other* matcher policy implementations able to do this. This would
mean that whenever you have a dynamic endpoint, you will not by using
the DFA for features like HTTP methods. It also means that we need to go
re-implement a bunch of infrastructure.
This PR also adds the concept of an 'inert' endpoint - a non-Routable
endpoint that's created when fallback/dynamic is in use. This seems like
a cleaner design because we don't start *matching* RouteEndpoint
instances for URLs that don't match. This resolves#8130
- Remove ExpectedMiddlewareCount since everything is middleware now
- Renamed everything adapter to middleware
- Added a regression test for an https scenario
- Don't send client certs for tests that don't expect it
Removes handling for IEnumerable<KVP<string, string>>. This isn't
something we really need for the main scenario and it MASSIVELY
complicates the codegen part of the feature. Requiring the dictionary to
be an object-valued dictionary should cover the cases we care about.
* Remove connection adapters and move things to middleware
- Remove connection adapters from the public API surface (pubternal) and replace the existing adapters with connection middleware.
- Updated the tests
* Replace usages of $(CI) with $(ContinuousIntegrationBuild)
* Move RepoTasks to eng/tools/
* Remove dead code
* Update build.sh/ps1 to invoke Arcade instead of KoreBuild
* build/repo.props => eng/Build.props
* build/CodeSign.{props,targets} => eng/Signing.props
* build/repo.targets => eng/Build.props, eng/CodeGen.proj, and eng/AfterSolutionBuild.targets
* Remove AddAllProjectRefsToSolution.ps1
* Put selenium process tracking into artifacts/tmp/
* build/docker => eng/docker
* Move content from korebuild.json to global.json
* Remove cibuild.{sh,cmd} and update ci.yml
* Ensure vswhere detects BuildTools installations
* Remove sign check exclusions (Arcade does not support)
* list VS required components in global.json
* Update CodeCheck.ps1
* Update arcade (#11143)
* Fixups to broken build
* capture test results in xunit form
* attempt to fix code check
* restore before linux build
* remove duplicate signinfos
* More build fixes
* exclude node_modules from unique project check
* fixup signing props
* More build fixes
* Remove unused NoWarns
* Skip building site extension
* Suppress xunit color in console output
* Install x86 runtime
* Run KillProcesses.ps1 at end of build on CI
* activate env vars in codecheck.ps1
* Fix signing and generate build manifests
* Fixup code check and linux installers build
* Remove custom restore targets
* Import flaky test props
* Restore original manifest generation code and set warnAsErrors=false
* Alwasy restore the toolset
* More attempts at build fixes
* run restore before building deb/rpm packages
* pre-install Yarn.MSBuild
* Remove WIX workaround
* Attempt to fix RPM installers and x86 build
* Fix helix tests, java auto-detection, and code gen steps
* Globally disable MSBuild node resuse and capture MSbuild crash logs
* Cleanup build invocation for installers
* Set max time on xunit tests to 15 min
* Update helix-test.yml
* Fix Hosting tests
* Fix TestHost
* Fix Negotiate.Test
* Fix Mvc tests
* Capture results
* Fix Hosting tests
* Fix Kestrel tests
* Fix ServerComparison tests
* Fix DefaultBuilder functional tests
* Skip template tests
Need to run pack before running tests on mac/linux now
* Fix Identity test
* Fix ServerComparison tests
* Verify nginx installation on ubuntu
* Verify nginx installation?
* Try adding to path
* Try symlink
* Sudo?
* Woot it works
* Disable timeout
Template tests require more than 15 mins
* list env vars
* Use correct dotnet_home
* Prepent path instead
* Fix npmproj tests
* Fix CORS tests
* Debug signalr tests
* Debug signalr
* Capture bin
* Try building templates sequentially
* Debug signalr
* Cleanup
* Disable signalr npm tests
* Debug template test
* Try to fix templates again and make steps more reliable
* Cleanup
* Feedback
* Add support for sending dotnet calls from "JS"
* Add support for acknowledging render batches.
* Extract logic into a separate BlazorClient class so that it can be reused.
* Support non prerendered pages.
* Allow reacting to incoming JSInterop calls.
* Allow reacting to incoming RenderBatch.
- Expose SpanId, TraceId and ParentId to logging scope properties
- Added tests to verify the Hierarchical ID format
- Store the activity and lazily compute the various properties
* Ensure CircuitRegistry evicts CircuitHost entries after configured
duration
* Use an active expiration token to trigger expiration
* Add logging during host state transitions
Fixes https://github.com/aspnet/AspNetCore/issues/9893
* Read interface IList.Count once rather than per iteration
Inspired by #9962, read .Count once rather than once per loop iteration.
* Use nameof() instead of ToString()
Use constant nameof() on enum value, rather than runtime ToString().
* Right-size dictionary
Initialize dictionary with a fixed number of elements to the number of elements it contains.
* Use DisposeAsync()
Use DisposeAsync() on FileBufferingReadStream in input formatters.
* Override DisposeAsync()
Override DisposeAsync() to call DisposeAsync() on the inner stream.
* Use GetValueOrDefault() for content-length
Use GetValueOrDefault() to read the content length once instead of checking HasValue once and Value up to three times.
* Update Microsoft.AspNetCore.WebUtilities.netcoreapp3.0.cs
Add DisposeAsync().
* Use DisposeAsync()
Use DisposeAsync() on transcoding streams as other formatters do.
- Make sure we always await the last flush task before calling FlushAsync
again instead of preemptively calling FlushAsync and checking to see
if the ValueTask is incomplete before bothering to acquire the _flushLock
- This now acquires the _flushLock fore every call to Response.Body.Write
whereas this only happened for truly async writes before.
- I don't think this is a big concern since this should normally be uncontested,
and DefaultPipeWriter.FlushAsync/GetResult already acquire a lock.
- Refactored the HttpConnection to not depend on OnReaderCompleted and OnWriterCompleted. Instead we use ConnectionClosed to detect the FIN that we propagate via ConnectedAborted.
- Fire ConnectionClosed when a FIN is received from both transports.
- Remove pipe completion from Http1Connection and Http1OutputProducer. Instead just return from request processing.
- Cancel the transport input on RawStream to yield the pending read. This is much more efficient than passing a cancellation token into everything (and more reliable)
- Fixed the RequestTests to not depend on inline scheduling
- Properly dispose things in the LibuvOutputConsumerTests
- Skipped flaky test
* Add Ignitor
* Finish headless Blazor client.
* Added support for click events.
* Move Ignitor into testassets folder.
- Also added Ignitor to the no deps solution.
* Add Ignitor tests to validate RenderBatchReader stays consistent.