summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2021-10-01fix(ext/crypto): use NotSupportedError for importKey() (#12289)Divy Srivastava
2021-10-01perf(fetch): optimize fillHeaders() key iteration (#12287)Aaron O'Mullan
Reduces self-time by ~70x (~70ms => ~1ms on 1M iters) for...in filtered by hasOwnProperty yields the same set of keys as Object.keys()
2021-10-01feat(ext/crypto): implement wrapKey (#12125)Divy Srivastava
2021-10-01fix(ext/crypto): decode id-RSASSA-PSS with default params (#12147)Divy Srivastava
2021-10-01perf(web): optimize byteLowerCase() (#12282)Aaron O'Mullan
2021-09-30perf(webidl): optimize createDictionaryConverter() (#12279)Aaron O'Mullan
On a benchmark constructing Responses with headers this shaves off 25%
2021-09-30perf(web): ~400x faster http header trimming (#12277)Aaron O'Mullan
Use a regex substring match with a first/last char fastpath instead of 2 regex replaces. Roughly ~400x faster (423ms vs 0.7ms in profiled runs)
2021-09-30feat(tls): custom in memory CA certificates (#12219)Luca Casonato
This adds support for using in memory CA certificates for `Deno.startTLS`, `Deno.connectTLS` and `Deno.createHttpClient`. `certFile` is deprecated in `startTls` and `connectTls`, and removed from `Deno.createHttpClient`.
2021-09-29fix(ext/http): merge identical if/else branches (#12269)mynane
2021-09-29perf(web/Event): move last class field to constructor (#12265)Aaron O'Mullan
2021-09-29fix(ext/fetch): avoid panic when header is invalid (#12244)Ahab
2021-09-29perf(webidl/DOMString): don't wrap string primitives (#12266)Aaron O'Mullan
2021-09-28chore: bump crate versions for 1.14.2 (#12253)Aaron O'Mullan
2021-09-27perf(fetch): optimize newInnerRequest blob url check (#12245)Aaron O'Mullan
Avoid "blob:" prefix check on requests built in the http module since those can never be blob objects Reduces cost of `newInnerRequest()` from 20ms to 0.1ms in my profiled run on ~2.5M reqs
2021-09-27refactor(fetch/Request): inline defaultInnerRequest (#12241)Aaron O'Mullan
Similar to #12235
2021-09-27perf(fetch/Response): avoid class fields (#12237)Aaron O'Mullan
2021-09-26refactor(fetch/response): inline defaultInnerResponse (#12235)Aaron O'Mullan
Not useful to have the defaults externally defined when they're only used in `newInnerResponse()`. Also match order in `newInnerResponse()` and `cloneInnerResponse`
2021-09-26perf(web): optimize Event constructor (#12231)Aaron O'Mullan
Assign in constructor instead of using class initializers which are currently ~10x slower
2021-09-26perf(webidl/ByteString): 3x faster ASCII check (#12230)Aaron O'Mullan
2021-09-26perf(fetch): optimize InnerBody constructor (#12232)Aaron O'Mullan
Avoid initializers due to overhead
2021-09-26fix(ext/http): include port number in h2 urls (#12181)Ben Noordhuis
2021-09-26perf(fetch/headers): optimize appendHeader (#12234)Aaron O'Mullan
Use a single regex to check for `\0`, `\n`, `\r` instead of 3 `String.includes(...)` calls
2021-09-25perf(ext/fetch): Use the WebIDL conversion to DOMString rather than ↵Luis Malheiro
USVString for Response constructor (#12201)
2021-09-25fix(ext/web): FileReader error messages (#12218)Dan Rose
2021-09-25fix(http): panic when responding to a closed conn (#12216)Aaron O'Mullan
Our oneshot receiver in `HyperService::call` would unwrap and panic, the `.await` on the oneshot receiver happens when the sender is dropped. The sender is dropped in `op_http_response` because: 1. We take `ResponseSenderResource` 2. Then get `ConnResource` and early exit on failure (conn already closed) 3. The taken sender then gets dropped in this early exit before any response is sent over the channel Fallbacking to returning a dummy response to hyper seems to be a fine quickfix
2021-09-25fix(ext/http): fortify "is websocket?" check (#12179)Ben Noordhuis
Check for expected headers more rigorously and check that it's a HTTP/1.1 GET request. The logic mirrors what Deno Deploy and the tungstenite crate do. The presence of "Sec-Websocket-Version: 13" is now also enforced. I don't expect that to break anything: conforming clients already send it and tungstenite can't talk to older clients anyway. The new code is more efficient due to heap-allocating less and aligns more closely with the checks in ext/http/01_http.js now.
2021-09-25fix(ext/webidl): correctly apply [SymbolToStringTag] to interfaces (#11851)李瑞丰
Co-authored-by: Luca Casonato <hello@lcas.dev> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2021-09-23perf(ext/fetch): skip USVString webidl conv on string constructor (#12168)Aaron O'Mullan
* perf(ext/fetch): skip USVString webidl conv on string constructor * Rename webidl convert to RequestInfo_DOMString To disambiguate and hint that it normalizes to DOMString instead of USVString since DOMString => USVString is handled by `op_url_parse` when calling `new URL(...)`
2021-09-22chore(ext/net): improve embedder friendliness (#12178)Ben Noordhuis
Default to None if UnsafelyIgnoreCertificateErrors is not present in the OpState. Embedders may not have a need for restricting outgoing TLS connections and having them hunt through the source code for the magic incantation that makes the borrow panics go away, is less user friendly.
2021-09-22chore: bump crate versions for 1.14.1 (#12172)Kitson Kelly
2021-09-21cleanup(ext/fetch): drop redundant webidl converters in fetch() (#12167)Aaron O'Mullan
Since those inputs are passed to `new Request(...)` which applies webidl converters
2021-09-21perf(ext/web): optimize EventTarget (#12166)Aaron O'Mullan
and all its subclasses including `AbortSignal` ... Instead of storing associated data in a global `WeakMap` we store them as private attributes (via a Symbol) on the object instances
2021-09-21perf(web): optimize AbortController (#12165)Aaron O'Mullan
- Use regular class constructor and symbol "private" attributes - Lazy init Set of follower signals
2021-09-21chore: bump deno_net (#12157)Satya Rohith
2021-09-20refactor(ext/net): make op_connect & op_connect_tls public (#12150)Satya Rohith
2021-09-17chore: Remove unused deps from Cargo.toml files (#12106)Squirrel
2021-09-16fix(ext/crypto): use DataError in importKey() (#12071)Divy Srivastava
2021-09-16fix(ext/crypto): don't use core.decode for encoding jwk keys (#12088)Divy Srivastava
2021-09-14chore: bump crate versions for 0.14 (#12072)David Sherret
2021-09-14feat(ext/crypto): import RSA pkcs#8 keys (#11891)Divy Srivastava
2021-09-13refactor(core): Turn the `wasm_streaming_feed` binding into ops (#11985)Andreu Botella
Async WebAssembly compilation was implemented by adding two bindings: `set_wasm_streaming_callback`, which registered a callback to be called whenever a streaming wasm compilation was started, and `wasm_streaming_feed`, which let the JS callback modify the state of the v8 wasm compiler. `set_wasm_streaming_callback` cannot currently be implemented as anything other than a binding, but `wasm_streaming_feed` does not really need to use anything specific to bindings, and could indeed be implemented as one or more ops. This PR does that, resulting in a simplification of the relevant code. There are three operations on the state of the v8 wasm compiler that `wasm_streaming_feed` allowed: feeding new bytes into the compiler, letting it know that there are no more bytes coming from the network, and aborting the compilation. This PR provides `op_wasm_streaming_feed` to feed new bytes into the compiler, and `op_wasm_streaming_abort` to abort the compilation. It doesn't provide an op to let v8 know that the response is finished, but closing the resource with `Deno.core.close()` will achieve that.
2021-09-13feat(ext/crypto): generate ECDH keys (#11870)Luca Casonato
Add support for ECDH algorithm in SubtleCrypto#generateKey.
2021-09-13feat(ext/crypto): export RSA keys as pkcs#8 (#11880)Divy Srivastava
2021-09-13fix(ext/fetch): Properly cancel upload stream when aborting (#11966)Nayeem Rahman
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-09-12fix(ext/crypto): add HkdfParams and Pkdf2Params types (#11991)Divy Srivastava
2021-09-12fix: FileReader onevent attributes don't conform to spec (#11908)Feng Yu
2021-09-11feat(ext/crypto): implement HKDF operations (#11865)Divy Srivastava
Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2021-09-11feat(ext/crypto): verify ECDSA signatures (#11739)Divy Srivastava
2021-09-11refactor: use Deno.core.tryClose (#11980)Bartek Iwańczuk
2021-09-10perf(ext/http): optimize auto cleanup of request resource (#11978)Bert Belder
Fixes #11963.