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

Issue 2919011: Implement MAX_CONCURRENT_STREAMS SETTINGS header (Closed)

Created:
10 years, 5 months ago by gavinp
Modified:
9 years, 6 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org, Paweł Hajdan Jr.
Visibility:
Public.

Description

Implement MAX_CONCURRENT_STREAMS SETTINGS header This CL helps chrome respect the SETTINGS header MAX_CONCURRENT_STREAMS. Note that this means that SpdySession::CreateStream can now return ERR_IO_PENDING, so it requires a callback. There's a noted TODO that if an http_network_transaction dissapears betweeen STATE_SPDY_GET_STREAM and STATE_SPDY_SEND_REQUEST I don't know if we end up with an orphan stream in our spdy_session. As well, spdy_test_util.cc had a lot of functions with default arguments; I didn't fix them all, but the functions I modified no longer take default arguments and meet the coding standard. I'd like to circle back at some point and possibly make the tests call SpdyFramer directly: these test utils seem sometimes more trouble than they're worth if the framer was a bit more convenient for direct use. BUG=34750 TEST=net_unittests Spdy.ThreeGets* Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=52791

Patch Set 1 #

Total comments: 41

Patch Set 2 : remediate to Pawe and mbelshe's reviews #

Total comments: 16

Patch Set 3 : remediate to second review #

Total comments: 20

Patch Set 4 : fourth time's a charm for remediation #

Total comments: 8

Patch Set 5 : landing soon on a repo near you #

Unified diffs Side-by-side diffs Delta from patch set Stats (+858 lines, -189 lines) Patch
M net/http/http_network_transaction.h View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
M net/http/http_network_transaction.cc View 1 2 3 8 chunks +39 lines, -34 lines 0 comments Download
M net/http/http_network_transaction_unittest.cc View 1 2 3 5 chunks +10 lines, -10 lines 0 comments Download
M net/spdy/spdy_framer.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/spdy/spdy_http_stream.h View 4 2 chunks +10 lines, -4 lines 0 comments Download
M net/spdy/spdy_http_stream.cc View 4 3 chunks +36 lines, -10 lines 0 comments Download
M net/spdy/spdy_http_stream_unittest.cc View 1 2 3 1 chunk +3 lines, -6 lines 0 comments Download
M net/spdy/spdy_network_transaction.h View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
M net/spdy/spdy_network_transaction.cc View 1 2 3 3 chunks +37 lines, -33 lines 0 comments Download
M net/spdy/spdy_network_transaction_unittest.cc View 1 2 3 4 38 chunks +557 lines, -56 lines 0 comments Download
M net/spdy/spdy_session.h View 1 2 3 7 chunks +48 lines, -2 lines 0 comments Download
M net/spdy/spdy_session.cc View 1 2 3 4 9 chunks +86 lines, -6 lines 0 comments Download
M net/spdy/spdy_test_util.h View 1 2 3 4 chunks +9 lines, -11 lines 0 comments Download
M net/spdy/spdy_test_util.cc View 1 2 3 4 chunks +15 lines, -16 lines 0 comments Download

Messages

Total messages: 14 (0 generated)
gavinp
10 years, 5 months ago (2010-07-14 18:31:54 UTC) #1
Paweł Hajdan Jr.
Drive-by with a minor review comment. http://codereview.chromium.org/2919011/diff/1/9 File net/spdy/spdy_network_transaction_unittest.cc (right): http://codereview.chromium.org/2919011/diff/1/9#newcode294 net/spdy/spdy_network_transaction_unittest.cc:294: EXPECT_TRUE(0); nit: Could ...
10 years, 5 months ago (2010-07-14 18:35:50 UTC) #2
Mike Belshe
thanks for doing this, Gavin! It's quite close; despite my lengthy list of comments! http://codereview.chromium.org/2919011/diff/1/2 ...
10 years, 5 months ago (2010-07-14 19:37:59 UTC) #3
willchan no longer on Chromium
There are lots of little style nits to mention. It seems Mike has covered most ...
10 years, 5 months ago (2010-07-14 22:24:15 UTC) #4
gavinp
Thanks everyone for the comments; Will, yours came in as I was finishing, so it ...
10 years, 5 months ago (2010-07-15 00:50:16 UTC) #5
Paweł Hajdan Jr.
http://codereview.chromium.org/2919011/diff/16001/17008 File net/spdy/spdy_network_transaction_unittest.cc (right): http://codereview.chromium.org/2919011/diff/16001/17008#newcode294 net/spdy/spdy_network_transaction_unittest.cc:294: EXPECT_TRUE(0); I still see EXPECT_TRUE(0) here. Could you please ...
10 years, 5 months ago (2010-07-15 00:53:37 UTC) #6
Mike Belshe
Thanks for adding those tests. lgtm. http://codereview.chromium.org/2919011/diff/16001/17001 File net/http/http_network_transaction.cc (right): http://codereview.chromium.org/2919011/diff/16001/17001#newcode462 net/http/http_network_transaction.cc:462: // let's make ...
10 years, 5 months ago (2010-07-15 05:28:21 UTC) #7
gavinp
thanks again, I hope this second remediation addresses most issues. http://codereview.chromium.org/2919011/diff/16001/17001 File net/http/http_network_transaction.cc (right): http://codereview.chromium.org/2919011/diff/16001/17001#newcode462 ...
10 years, 5 months ago (2010-07-15 16:36:30 UTC) #8
Paweł Hajdan Jr.
http://codereview.chromium.org/2919011/diff/26001/24009 File net/spdy/spdy_network_transaction_unittest.cc (right): http://codereview.chromium.org/2919011/diff/26001/24009#newcode293 net/spdy/spdy_network_transaction_unittest.cc:293: if (out.rv != ERR_IO_PENDING) { Oh wait, why not ...
10 years, 5 months ago (2010-07-15 17:23:02 UTC) #9
willchan no longer on Chromium
I've highlighted a number of spots that I feel would be cleaned up if you ...
10 years, 5 months ago (2010-07-15 17:43:50 UTC) #10
gavinp
Moving things into SpdyHttpStream was, as Will said, a much better option. The code is ...
10 years, 5 months ago (2010-07-16 03:10:56 UTC) #11
Mike Belshe
lgtm http://codereview.chromium.org/2919011/diff/36015/21006 File net/spdy/spdy_http_stream.cc (right): http://codereview.chromium.org/2919011/diff/36015/21006#newcode155 net/spdy/spdy_http_stream.cc:155: int error = nit: I found the spacing ...
10 years, 5 months ago (2010-07-16 17:27:53 UTC) #12
gavinp
I'm going to land this now. I spent some time testing against a GFE provided ...
10 years, 5 months ago (2010-07-16 20:40:16 UTC) #13
gavinp
10 years, 5 months ago (2010-07-16 21:03:27 UTC) #14
I'm going to land this now.  I spent some time testing against a GFE provided
generously by the alyssar, and it worked well.  I also found one more place to
add a ProcessPendingCreateStreams() : we could receive a settings that increases
the number of streams we are permitted to open, and if that occurs, we should
dequeue them all.  Right now.

Thanks for all the reviews.

Powered by Google App Engine
This is Rietveld 408576698