It should have symmetric behavior.
Given `WebCallOptions a` and `CallOptions b` both `a.mergeWith(b)` and `b.mergeFrom(a)`
should return WebCallOptions.
* update: Migrate off legacy JS/HTML apis
* update: use dart.library.js_interop in place of dart.library.html
* update: dart format xhr_transport.dart and update dart sdk to v3.4.0 in workflows
* update: use if instead of switch case in xhr_transport.dart
* update: upgrade web package to v1.1.0
* refactor: use Uint8List for sending data over XHR rather than Int8List
* refactor: eta-reduction of call to request.setRequestHeader
* Update client_xhr_transport_test to avoid dart:html, updating xhr_transport to support testability
* fixup tests
---------
Co-authored-by: minoic <minoic2020@gmail.com>
Co-authored-by: Moritz <mosum@google.com>
* Small fixes
* Revert changes on file
* Add changelog
* Small fixes in keepalive test
* Add delay
* Fix symbol visibilty
* Add try catch for debugging
* Fail
* fail
* Use for loop
* Remove dependency on package:archive
* Test compression on vm only
* Add licenses
* Fix analyze issues
* Fix codec web
* Fix licenses
* Add changelog
* Add proxy to options
* Add proxy connect
* Works now
* Uncomment proxy line
* Revert change
* Doesn't work
* Works
* Fix bug
* Add secure test
* Refine test
* Add changelog
* Changes as per review
* Keepalive tests run!
* Renaming
* Some refactorings
* Find a place where to handle the keepalive manager
* Fix bug
* Make KeepAliveManager independent of transport
* Fix call sites in client
* Add server keepalive handler
* Wire through onDataReceived
* Add ServerKeepAliveManager test
* Refactorings
* Tests kind of run now
* Add shutdown test
* Remove unneeded override
* Remove unneeded mocks
* Send correct error codes and cleanup
* Small changes
* Rename
* Add documentation
* Add test for !_enforcesMaxBadPings
* Refactor tests
* Switch to http2 master branch
* Renaming
* Null shutdownTimer
* Refactor to event-state model
* Smaller refactorings
* Works now
* Switch tests to isA
* Shifting things around
* Split into server and client
* Format
* rename
* Tweaks
* Switch order of optional parameters to make change non-breaking
* Add some leeway to the durations in tests
* Make keepalive tests vm only
* Switch back to onEvent in state
* Switch to published http2
* Switch to Dart 3
* Trying to get the new version to run
* Fix test
* Switch CI to Dart 3
* Adapt CI
* Do not run vmservice on chrome
* Typo
* Add skip to not fail on `dart test`
* Add changelog entry
* Changes as per review
We were using path to the UDS socket itself, which is incorrect `:authority` value.
This was tripping checks in some HTTP2 protocol implementations.
Instead default `:authority` to `localhost`, which in line with other gRPC implementations.
Fixes#576
Require 200 HTTP status and a supported Content-Type
header to be present in a response.
When handling malformed responses make effort
to translate HTTP statuses into gRPC statuses as
gRPC protocol specification recommends.
Fixes#421Fixes#458
Co-authored-by: Vyacheslav Egorov <vegorov@google.com>
* Added support for compression/decompression, which can be configured through
`ChannelOptions` constructor's `codecRegistry` parameter or adding the
`grpc-accept-encoding` to `metadata` parameter of `CallOptions` on the client
side and `codecRegistry` parameter to `Server` on the server side.
Outgoing rpc can be compressed using the `compression` parameter on the
`CallOptions`.
Closes#6