* Rev package:lints
* Add changelog
* Run CI on 3.5.0
* Test with 3.2.0
* Update .github/workflows/dart.yml
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
* Update .github/workflows/dart.yml
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
---------
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.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
* Use `Map.of` instead of `Map.from` in grpc client.
`Map.of` creates a new map with the same keys, values and *type*
as the original map, when used without type arguments or context type,
where `Map.from` creates a `Map<dynamic, dynamic>`.
(This code failed on an attempt to make `Map.unmodifiable` be more
strictly typed, like `Map.of` instead of `Map.from`, showing that
an intermediate map had type `Map<dynamic, dynamic>` unnecessarily).
Same for using `List.of` instead of `List.from`.
The new code should be (microscopically) more efficient and type safe,
and is forwards-compatible with a stronger type on `Map.unmodifiable`.
(The code can be optimized more. For example
`List.of(list1)..addAll(list2)` can be just `list1 + list2` or
`[...list1, ...list2]`, both of which may know the total number
of elements when doing the initial list allocation.
This is a minimal change to allow the type changes for `.unmodifiable`
to get past this very initial blocker in internal tests.)
* Add changelog and minor version increment.
And my save removes trailing spaces.
* 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
* Make constructors of `GrpcError` const
* Update CHANGELOG.md
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
* Update pubspec.yaml
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
---------
Co-authored-by: Kevin Moore <kevmoo@users.noreply.github.com>
* 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
Add a way to react to the channel shutdown or termination with an
optional callback.
This is not necessarily the API which I would recommend, but this is the
APi that was already inappropriately shipped and in use internally.
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
b272632450 exposed client certificate through
`X509Certificate? get clientCertificate;` getter on `ServiceCall` class. This broke
compilation of `grpc_web` code using DDC, but not dart2js. Turns out that dart2js is
happy to compile any code using `dart:io` (though the result will not run if you try
to use any of those APIs), but DDC rejects such code eagerly. `package:test` runs
tests through `dart2js` so DDC breakage was not really caught by CI.
Unfortunately this discrepancy between DDC and dart2js puts us in some really weird
spot: most of our tests are platform independent, but most of those tests also
pull in `dart:io` through transitive dependencies.
This commit is the most minimal change we could make to allow the code compile both
on the Web and natively.
A proper fix should be to go through tests one-by-one and make sure that those that
need to run on the Web don't import `dart:io`, but we don't have time to do that
right now.
This commit also adds a smoke test to the CI to verify that `grpc_web` example
builds with DDC.