Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Issue 2462183002: GRPC Stream implementation of HeliumStream

Created:
4 years, 1 month ago by perumaal
Modified:
3 years, 10 months ago
CC:
David Trainor- moved to gerrit, maniscalco
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

GRPC Stream implementation of HeliumStream * GrpcStream implements HeliumStream and is also used by GrpcConnection which routes BlimpMessages on top of HeliumWrapper protos. * Symmetric interface for both GrpcClient and GrpcEngine Streams that are thin wrappers around the overall GrpcStream. * GrpcStream interacts with gRPC library: Supports CompletionQueue with a separate thread that assigns work-items using GrpcTags. * Finally, a new assignment options opaque structure that avoids tight-coupling with the port-numbers and also eases testing as the client/engine stream setup is symmetric (using the same assignment options class in both). * Unit-tests are added for GrpcStream classes (new HeliumStream implementation) and GrpcConnection (existing BlimpConnection implementation). * Browser tests are modified to run in both gRPC and TCP mode to exercise the code more. (Two new targets: blimp_browsertests_grpc and blimp_browsertests_tcp with a simple 'UsingGrpc()' flag in two separate Grpc/TCP-oriented files referenced by the tests)

Patch Set 1 #

Total comments: 13

Patch Set 2 : Implement helium::Stream #

Total comments: 2

Patch Set 3 : gRPC stream ready for review #

Patch Set 4 : Minor comment changes #

Patch Set 5 : Fixed a few minor comments #

Total comments: 5

Patch Set 6 : Move assignment_options.h to common/public/session per discussion #

Patch Set 7 : Address gcasto comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1923 lines, -92 lines) Patch
M blimp/BUILD.gn View 1 2 3 chunks +16 lines, -4 lines 0 comments Download
M blimp/client/app/android/blimp_client_session_android.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M blimp/client/core/session/assignment_source.cc View 1 2 3 chunks +6 lines, -5 lines 0 comments Download
M blimp/client/core/session/assignment_source_unittest.cc View 1 2 4 chunks +10 lines, -8 lines 0 comments Download
M blimp/client/core/session/client_network_components.cc View 1 2 2 chunks +8 lines, -7 lines 0 comments Download
M blimp/client/core/session/connection_status.h View 1 2 3 4 5 3 chunks +6 lines, -3 lines 0 comments Download
M blimp/client/core/session/connection_status.cc View 1 2 2 chunks +3 lines, -2 lines 0 comments Download
M blimp/client/public/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M blimp/client/public/DEPS View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M blimp/client/public/session/assignment.h View 1 2 3 4 5 2 chunks +3 lines, -3 lines 0 comments Download
M blimp/client/public/session/assignment.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M blimp/common/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M blimp/common/DEPS View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M blimp/common/proto/BUILD.gn View 1 2 3 4 5 6 2 chunks +15 lines, -0 lines 0 comments Download
A blimp/common/proto/helium_service.proto View 1 2 3 4 5 6 1 chunk +23 lines, -0 lines 0 comments Download
A blimp/common/public/session/BUILD.gn View 1 2 3 4 5 1 chunk +13 lines, -0 lines 0 comments Download
A blimp/common/public/session/assignment_options.h View 1 2 3 4 5 6 1 chunk +25 lines, -0 lines 0 comments Download
M blimp/engine/BUILD.gn View 1 2 1 chunk +22 lines, -0 lines 0 comments Download
M blimp/engine/app/switches.h View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M blimp/engine/app/switches.cc View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M blimp/engine/browser_tests/blimp_browser_test.h View 1 2 3 4 5 2 chunks +6 lines, -4 lines 0 comments Download
M blimp/engine/browser_tests/blimp_browser_test.cc View 1 2 3 4 5 6 chunks +33 lines, -10 lines 0 comments Download
A blimp/engine/browser_tests/grpc_assignment.cc View 1 2 1 chunk +11 lines, -0 lines 0 comments Download
A blimp/engine/browser_tests/tcp_assignment.cc View 1 2 1 chunk +11 lines, -0 lines 0 comments Download
M blimp/engine/session/blimp_engine_session.h View 1 2 3 4 5 3 chunks +3 lines, -2 lines 0 comments Download
M blimp/engine/session/blimp_engine_session.cc View 1 2 6 chunks +11 lines, -15 lines 0 comments Download
M blimp/helium/result.h View 1 1 chunk +1 line, -1 line 0 comments Download
M blimp/helium/stream.h View 1 2 chunks +7 lines, -5 lines 0 comments Download
M blimp/net/BUILD.gn View 1 2 2 chunks +14 lines, -0 lines 0 comments Download
M blimp/net/blimp_engine_transport.h View 1 2 3 4 5 2 chunks +3 lines, -1 line 0 comments Download
M blimp/net/engine_connection_manager.h View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M blimp/net/engine_connection_manager.cc View 1 2 3 chunks +10 lines, -7 lines 0 comments Download
M blimp/net/engine_connection_manager_unittest.cc View 1 2 3 4 5 2 chunks +5 lines, -4 lines 0 comments Download
A blimp/net/grpc_client_stream.h View 1 2 3 4 5 6 1 chunk +59 lines, -0 lines 0 comments Download
A blimp/net/grpc_client_stream.cc View 1 2 3 4 5 6 1 chunk +94 lines, -0 lines 0 comments Download
A blimp/net/grpc_client_transport.h View 1 2 3 4 5 6 1 chunk +50 lines, -0 lines 0 comments Download
A blimp/net/grpc_client_transport.cc View 1 2 1 chunk +45 lines, -0 lines 0 comments Download
A blimp/net/grpc_connection.h View 1 2 3 5 1 chunk +50 lines, -0 lines 0 comments Download
A blimp/net/grpc_connection.cc View 1 2 1 chunk +174 lines, -0 lines 0 comments Download
A blimp/net/grpc_connection_unittest.cc View 1 2 3 4 5 1 chunk +164 lines, -0 lines 0 comments Download
A blimp/net/grpc_engine_stream.h View 1 2 3 4 5 6 1 chunk +54 lines, -0 lines 0 comments Download
A blimp/net/grpc_engine_stream.cc View 1 2 3 4 5 1 chunk +128 lines, -0 lines 0 comments Download
A blimp/net/grpc_engine_transport.h View 1 2 3 4 5 6 1 chunk +48 lines, -0 lines 0 comments Download
A blimp/net/grpc_engine_transport.cc View 1 2 1 chunk +62 lines, -0 lines 0 comments Download
A blimp/net/grpc_stream.h View 1 2 3 4 5 1 chunk +124 lines, -0 lines 0 comments Download
A blimp/net/grpc_stream.cc View 1 2 3 4 5 1 chunk +259 lines, -0 lines 0 comments Download
A blimp/net/grpc_stream_unittest.cc View 1 2 3 4 5 1 chunk +302 lines, -0 lines 0 comments Download
M blimp/net/tcp_engine_transport.h View 1 2 3 4 5 2 chunks +4 lines, -3 lines 0 comments Download
M blimp/net/tcp_engine_transport.cc View 1 2 1 chunk +3 lines, -2 lines 0 comments Download
M blimp/net/tcp_transport_unittest.cc View 1 2 1 chunk +3 lines, -3 lines 0 comments Download
M blimp/net/test_common.h View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M blimp/net/test_common.cc View 1 2 1 chunk +9 lines, -0 lines 0 comments Download

Messages

Total messages: 39 (27 generated)
Kevin M
Sorry, I couldn't resist leaving a few comments. Just didn't know if I'd remember to ...
4 years, 1 month ago (2016-10-31 21:33:26 UTC) #2
perumaal
On 2016/10/31 21:33:26, Kevin M wrote: > Sorry, I couldn't resist leaving a few comments. ...
4 years, 1 month ago (2016-10-31 21:40:14 UTC) #3
perumaal
PTAL, added helium::Stream support. https://codereview.chromium.org/2462183002/diff/1/blimp/common/proto/BUILD.gn File blimp/common/proto/BUILD.gn (right): https://codereview.chromium.org/2462183002/diff/1/blimp/common/proto/BUILD.gn#newcode25 blimp/common/proto/BUILD.gn:25: proto_library("helium_service") { On 2016/10/31 21:33:25, ...
4 years, 1 month ago (2016-10-31 22:11:01 UTC) #4
perumaal1
PTAL, ready for actual review.
4 years, 1 month ago (2016-11-09 02:09:22 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2462183002/40001
4 years, 1 month ago (2016-11-09 02:09:54 UTC) #10
commit-bot: I haz the power
No L-G-T-M from a valid reviewer yet. CQ run can only be started by full ...
4 years, 1 month ago (2016-11-09 02:09:56 UTC) #12
perumaal
Goals for this CL: * Solicit high-level comments first. Agree on design/architecture. * Run unit-tests/trybots ...
4 years, 1 month ago (2016-11-09 21:28:53 UTC) #18
perumaal
https://codereview.chromium.org/2462183002/diff/20001/blimp/net/DEPS File blimp/net/DEPS (right): https://codereview.chromium.org/2462183002/diff/20001/blimp/net/DEPS#newcode2 blimp/net/DEPS:2: "+content/public", On 2016/11/09 21:28:53, perumaal wrote: > REMOVE! Not ...
4 years, 1 month ago (2016-11-09 22:21:53 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2462183002/80001
4 years, 1 month ago (2016-11-10 02:30:29 UTC) #25
commit-bot: I haz the power
No L-G-T-M from a valid reviewer yet. CQ run can only be started by full ...
4 years, 1 month ago (2016-11-10 02:30:31 UTC) #27
Garrett Casto
I added some super minor comments when skimming through because I couldn't help myself. In ...
4 years, 1 month ago (2016-11-11 00:15:53 UTC) #33
Kevin M
4 years, 1 month ago (2016-11-14 18:55:06 UTC) #38
+1 for breaking this up into smaller CLs. There are simply too many changes here
(both in terms of LoC and file count) for me to effectively comment on the
overall approach.

Powered by Google App Engine
This is Rietveld 408576698