Commit Graph

477 Commits

Author SHA1 Message Date
Pranav K b50cd32b8e Removing imports from src projects 2016-04-08 06:48:41 -07:00
Pranav K fd0505ffae Merge branch 'release' into dev 2016-04-08 06:48:41 -07:00
Chris R e07008ddec Prevent double flush in HttpResponseStreamWriter. 2016-04-06 12:08:20 -07:00
Chris R 8196f2ab81 #605 Fix regressions in FormReader / FileBufferingReadStream. 2016-04-01 11:34:45 -07:00
Chris R ac12319cd7 #333 Add doc comments for feature interfaces. 2016-03-31 16:13:08 -07:00
Chris R 3a97a6bdfd #602 Invoke APM callbacks on the threadpool. 2016-03-31 12:35:20 -07:00
Doug Bunting 6725d68559 Move some implementations (all feature implementations) out of `.Internal` namespaces
- #549, #592
- move feature implementations to `Microsoft.AspNetCore.Http.Features` and `...Authentication.Features`
- move `DefaultHttpContext`, `HttpContextAccessor`, `HttpContextFactory`, `FormCollection` and
  `HeaderDictionary` to `Microsoft.AspNetCore.Http`
- move `FormFile` to `Microsoft.AspNetCore.Http.Internal`
 - that and `Microsoft.AspNetCore.Http.Authentication.Internal` are the remaining `.Internal` namespaces

nits:
- remove a couple of parameterless constructors
- add / fill subfolders to align with new namespaces
- remove all use of (unnecessary) "T:..." `<see cref=""/>` values
2016-03-30 16:01:37 -07:00
Chris R bd60507dcd #553 Use System.Buffers for temporary arrays 2016-03-28 13:57:08 -07:00
Eilon Lipton 1b71748150 More package metadata fixes 2016-03-28 10:26:49 -07:00
Eilon Lipton 78a3fc91d3 Fix package metadata 2016-03-26 22:42:17 -07:00
Doug Bunting 80813f7c1e Use pooled `StringBuilder` to reduce allocations when adding response cookies
- #561
- new `SetCookieHeaderValue.AppendToStringBuilder()` method; avoids per-call `StringBuilder` allocation
- `ResponseCookies` uses `ObjectPool<StringBuilder>` that `ResponseCookiesFeature` provides
 - `ResponseCookies` works fine if no `ObjectPoolProvider` is available
- `IHttpContextFactory` instance is a singleton instantiated from CI
 - make `HttpContextFactory` `ObjectPoolProvider` and `ResponseCookiesFeature`-aware
 - apply same pattern to sample `PooledHttpContextFactory`
- pool is not currently configurable; defaults are fine for response cookies
 - if we need (policy) configuration, would add an `IOptions<HttpContextFactorySettings>`

nit: Add some doc comments
2016-03-25 09:38:52 -07:00
Pranav K 6a5a05303f Revert "Revert "Reacting to CoreCLR package changes""
This reverts commit d035b7c533.
2016-03-22 15:15:11 -07:00
Pranav K d035b7c533 Revert "Reacting to CoreCLR package changes"
This reverts commit 131db6c41e.
2016-03-21 10:29:13 -07:00
Doug Bunting 6f24508a33 Move remaining feature interfaces into `Microsoft.AspNetCore.Http.Features` package and namespace
- #590, also related to #561
- move feature interfaces from `Microsoft.AspNetCore.Http` package
- move required classes from `Microsoft.AspNetCore.Http.Abstractions` package
- move `ISession` and `WebSocketAcceptContext` to `Microsoft.AspNetCore.Http` namespace (#590)

nit: remove transient dependencies listed in `Microsoft.AspNetCore.Http.Abstractions`'s `project.json`
2016-03-21 09:05:09 -07:00
Pranav K 131db6c41e Reacting to CoreCLR package changes 2016-03-21 00:01:21 -07:00
Chris R ce408a999e #578 Do not buffer the request body by default when reading forms. 2016-03-17 15:21:10 -07:00
Pranav K 67449276a5 Target minimal TFMs 2016-03-12 09:49:45 -08:00
Brice Lambson a051244faf Don't reference facades in NuSpec
These can be removed entirely after dotnet/cli#164
2016-03-11 08:40:56 -08:00
Ben Adams 982aa08cda Cache doesn't need clearing when resolving uncached feature 2016-03-08 10:36:44 -05:00
Ben Adams 8c72741992 Lower alloc KeyValueAccumulator for common path 2016-03-07 10:09:27 -08:00
Chris R 1f754f65d3 Add ISession.Id 2016-03-04 14:28:20 -08:00
David Obando 15649b7e31 Faster SubMatch implementation
Submatch has been sped up by implementing a modified Boyer–Moore–Horspool algorithm with an average-case complexity of O(N) on random text. Worst case, it behaves similarly to the previous implementation O(MN), where M is the length of the boundary and N is the length of the buffer to operate on.

Method SubMatch looks for two things:

  1. Whether the byte array segment fully contains the boundary, or
  2. Whether the byte array ends with the start of the boundary.

Case 1 is now a lot faster than the previous implementation. Case 2 remains using the same code as before. The method will do Case 1 until the matchOffset is equal to N-M. It then switches to Case 2, unless a match is found.

The code can be further sped up with a full Boyer–Moore implementation, or something more sophisticated. This however can be evaluated in the case that this implementation is insufficiently performant for our main scenarios.

This commit resolves issue #575.
2016-03-04 10:54:20 -08:00
Ajay Bhargav Baaskaran 97940747c3 Added missed attribute 2016-03-03 17:50:40 -08:00
Ajay Bhargav Baaskaran dd7198f410 Added Company, Copyright and Product attributes to AssemblyInfo 2016-03-03 17:32:08 -08:00
Doug Bunting 3105fd1075 Remove project name from output path
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 18:51:48 -08:00
N. Taylor Mullen 9f499d7962 Transition to netstandard.
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:31:53 -08:00
N. Taylor Mullen dabe2e0c24 Revert "Downgrade to use CoreFX NET46 compatible packages"
This reverts commit dc456ceab5.
2016-02-19 20:33:13 -08:00
Mukul Sabharwal dc456ceab5 Downgrade to use CoreFX NET46 compatible packages 2016-02-19 16:44:01 -08:00
Sebastien Ros c030ef9129 [Fixes #567] Adding port and host parsing in HostString 2016-02-19 16:29:22 -08:00
N. Taylor Mullen 90f71aa6ec Add missing `System.Resources.ResourceManager` dependency. 2016-02-18 19:42:11 -08:00
Ajay Bhargav Baaskaran 3e8368ad66 Enabled xml doc generation 2016-02-18 16:32:10 -08:00
Chris R d4e72564c7 Add AuthenticationManager.HttpContext. Clean up contructors. 2016-02-18 16:03:20 -08:00
N. Taylor Mullen c7029a1bd0 Update System.Linq 4.0.2-* => 4.1.0-*. 2016-02-18 15:35:36 -08:00
Ryan Nowak 91751015ea Reset fields on AuthenticateContext
This is needed for cases where IAuthenticationHandler instances delegate
or modify the output of each-other.
2016-02-18 12:14:53 -08:00
Chris R 5e7b30c04b #542 Add IHttpConnectionFeature.ConnectionId 2016-02-18 11:08:05 -08:00
Doug Bunting 8c120a0792 Extend `WebEncoders` API to avoid allocations within the methods
- rewrite existing methods in terms of the new ones
- don't allocate multiple 0-length arrays

nits:
- clarify a couple of doc comments e.g. using `<paramref/>`
- move an error message into a resource
 - pass parameter names into new resource
- rename parameters for consistency e.g. `inputLength` -> `count`
- name literal `int` parameters
- more `var`
2016-02-17 23:13:33 -08:00
Doug Bunting 5d8231ee0d `OwinExtensions.UseBuilder()` should not leave `ApplicationServices` or `RequestServices` `null`
Also correct tests to avoid warnings and to ensure scenarios are actually tested
- tests previously went `async` without waiting for completion

nit: add parameter `null` checks
2016-02-17 11:31:02 -08:00
Kristian Hellang cb09ffccce Changed SaveAs[Async](string) to CopyTo[Async](Stream) 2016-02-11 12:11:42 -08:00
Chris R 04e9da4e88 #527 Add IFileInfo overloads for SendFileAsync. 2016-02-08 10:55:36 -08:00
Chris R 3e6c7171be #515 Make forgiving vs strict header list parsers. 2016-02-08 10:21:28 -08:00
Pranav K 77c137fc0a Reacting to CoreCLR package version changes 2016-02-08 09:33:46 -08:00
N. Taylor Mullen faf8a73953 Update project.json to remove redundant System.Runtime dependency.
- This package is pulled in transitively.
2016-02-05 17:21:54 -08:00
John Luo 8aa7a0993d Relocating dependencies 2016-02-01 18:26:36 -08:00
John Luo 93079ea3a6 Updating to new CLI 2016-02-01 16:37:16 -08:00
Brennan 765a52007a Use EscapeDataString for encoding Cookies 2016-01-29 12:58:36 -08:00
N. Taylor Mullen 02363da94e Rename AspNet 5 file contents.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:20:40 -08:00
N. Taylor Mullen b2c154b576 Rename AspNet 5 folders and files.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:20:30 -08:00
ryanbrandenburg da478b02ed * Move HttpResponseStreamWriter from Mvc 2016-01-21 10:28:07 -08:00
Pranav K 38feebc0d6 Reacting to CoreCLR package version change 2016-01-20 20:53:25 -08:00
Brennan 3f84e992f4 Make StreamCopyOperation public and update it to same as StaticFiles 2016-01-19 10:03:26 -08:00
Brennan 1f21540fd5 Remove IsLocal 2016-01-19 08:35:53 -08:00
Kristian Hellang 4b64d187c2 Promote IFormFile extension methods to IFormFile 2016-01-13 14:30:14 +01:00
John Luo fa8c5cbb3a Updating QueryString doc comment 2016-01-08 19:28:34 -08:00
David Fowler 6bc8384ea9 Small style cleanup 2016-01-07 20:52:54 -08:00
David Fowler ca8136b73c Compile middleware invoke method when extra args are provided
- Improves the performance when accessing scoped services in middleware
2016-01-07 20:39:04 -08:00
Ben Adams 62ec29b6af Move generic Get/Set into Interface 2015-12-31 20:18:24 +00:00
Stephen Halter 364a712cb3 Merge branch 'lodejard/featurereferences' into dev 2015-12-30 15:35:08 -08:00
Pranav K 161d6ca5c0 Move Microsoft.Extensions.WebEncoders to HtmlAbstractions
Fixes #512
2015-12-23 09:27:39 -08:00
Brennan ee804e5841 Register FileBufferingReadStream for disposal 2015-12-22 16:13:23 -08:00
Hao Kung 1a485fadb0 OptionsModel => Options 2015-12-21 15:04:10 -08:00
Louis DeJardin 290ff2a268 PR feedback 2015-12-16 22:37:07 -08:00
Louis DeJardin 4265855652 PR feedback
Adding comment about reason for public field
2015-12-16 22:35:41 -08:00
Louis DeJardin c05c203c28 Adding example of what http context pooling might look like 2015-12-16 22:02:05 -08:00
Louis DeJardin 0e3fe7493e Streamlining feature cache and object re-initialiation code paths
Shouldn't increase object size, but does improve maintainability
2015-12-16 20:01:55 -08:00
Ben Adams 67c5ec29b3 Allow feature cache to be updated+invalidated 2015-12-15 16:12:37 -08:00
Brennan c41be75796 Wrap Branch in try finally 2015-12-14 14:02:54 -08:00
Brennan 59b32934e3 Change Expires to DateTimeOffset 2015-12-14 08:27:59 -08:00
Brennan 5e42d26fd5 Implement GetHashCode 2015-12-08 10:29:53 -08:00
Pranav K 5231683aae * Removing unused dependencies from code
* Cleaning up usage of CodeAnalysis.
2015-12-07 19:22:53 -08:00
Kristian Hellang c2e7618d9a Added Name and FileName to IFormFile
This commits also gets rid of the name
closure in FormFileCollection by interating
over the files in the collection instead
of using Find and FindAll.

Closes #352 and #499
2015-12-04 20:28:42 +01:00
David Fowler 9887fe0dee Move the header extensions to Http.Abstractions 2015-12-02 23:58:16 -08:00
David Fowler 6055e25d19 Fixed typo in doc comment 2015-12-02 22:51:48 -08:00
David Fowler 5b175beea8 Change SendFileAsync to use a fallback implementation instead of throwing
- If the user wants to use the SendFile API directly then they can access the feature
explicitly.
- Removed SupportsSendFile
- Don't check for existence, let FileStream throw
- Updated Doc comments
- Pass the buffer into StreamCopyOperation
- Using a real using instead of try finally.
2015-12-02 22:37:53 -08:00
Pranav K a0a1c38e44 Moving Microsoft.AspNet.Html.Abstractions to a HtmlAbstractions repo
Fixes #418
2015-12-01 17:35:20 -08:00
John Luo 67aa2546a8 Removing ApplicationServices from HttpContext #466 2015-11-19 09:34:38 -08:00
Pranav K 78e90d7f04 Update ifdefs from DNXCORE50 to DOTNET5_4
Fixes #467
2015-11-18 12:29:47 -08:00
Pavel Krymets 681533e06c Set IHttpContextAccessor only if DI provides it 2015-11-18 09:15:27 -08:00
John Luo fbec068f5c Adding option to configure services when exposing the ASP.NET 5 pipeline via OWIN #398 2015-11-17 11:02:04 -08:00
Pavel Krymets 690e5a66e5 Set default path=/ when removing cookie 2015-11-16 15:58:18 -08:00
Ryan Nowak cb3e9b1218 Change List<T> to IList<T> 2015-11-16 10:51:30 -08:00
John Luo d4d04d2c96 Adding exception message for paths not starting with / #251 2015-11-16 10:21:02 -08:00
Ryan Nowak 88c356f645 Add HtmlContentBuilder and HtmlTextWriter
Remove BufferedHtmlContent
2015-11-16 08:41:03 -08:00
N. Taylor Mullen bb8141710d Remove System beta tag in project.json for coreclr packages. 2015-11-12 12:23:07 -08:00
David Fowler f813d3cce8 Merge pull request #469 from khellang/uri-helper-string-concat
Changed string.Format to StringBuilder
2015-11-10 14:08:32 -08:00
Kristian Hellang f726b7b591 Added PERF comment 2015-11-10 19:55:14 +01:00
Nick Craver 6874b87f13 C#6 Cleanup & Optimizations
The main intent is cleanup using C# 6 operators and normalization of
type aliases. While there are no intended functional changes here, it
does eliminate a few tight race conditions as a bonus (not a real-win
since this isn't thread-safe all over, simply noting).
2015-11-10 09:38:49 -08:00
Ben Adams e5a3285090 Lazily initialize DefaultHttpContext
Lazily initialize sub objects of DefaultHttpContext

Resolves #470
2015-11-10 15:05:29 +00:00
Kristian Hellang 7b35b2e1b9 Pass length to StringBuilder 2015-11-10 11:03:51 +01:00
Kristian Hellang 663c7917d0 Changed string.Format to StringBuilder 2015-11-10 10:31:56 +01:00
Ryan Nowak 308dd109a0 Reduce allocations on Conneg hotpath 2015-11-09 09:16:30 -08:00
Chris R f050e09283 Revert use of explicit converters that prevent APIs from returning null. 2015-11-04 16:03:36 -08:00
Nick Craver bacf76098e Performance improvements
This adds additional performance improvements (namely string.Concat
overloads) on top of #411.
2015-11-03 06:55:13 -05:00
Chris R 7e573631f7 Make other FormReader.ReadForm return Dictionary. 2015-11-02 15:56:06 -08:00
Ben Adams 3c2e2b9d98 #426 Less alloc/wrapping/boxing for Query, Forms, Cookies 2015-11-02 14:47:46 -08:00
Cesar Blum Silveira af0d2e5888 Merge branch 'release' into dev 2015-11-02 13:38:08 -08:00
Doug Bunting 037196d5c7 Restore `null` and `string.Empty` handling from `EncoderExtensions`
- prior test encoders were never invoked for `null` or empty `string`s e.g.
``` c#
    public static void HtmlEncode(this IHtmlEncoder htmlEncoder, string value, TextWriter output)
    {
...
        if (!String.IsNullOrEmpty(value))
        {
            htmlEncoder.HtmlEncode(value, 0, value.Length, output);
        }
    }
```
- add missing `null` checks and handle `string.Empty` in `TextWriter output, string value, ...` overloads
  - better match for the underlying `TextEncoder` behaviour
  - `EncoderExtensions` provided an API like `TextEncoder.Encode(TextWriter output, string value)`
    - that method calls `Encode(TextWriter output, string value, int startIndex, int characterCount)`
2015-11-02 09:40:42 -08:00
Cesar Blum Silveira e934f5e4ed Strong name everything. 2015-10-30 15:36:55 -07:00
David Fowler c80946260a Change the namespace of RequestDelegate
- change it to Microsoft.AspNet.Http
2015-10-30 12:25:21 -07:00
Chris R 99aa148342 Remove un-used namespace. 2015-10-30 10:56:00 -07:00
Chris R be4fb46281 #391 Migrate to System.Text.Encoding.Web 2015-10-30 10:13:02 -07:00