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

Issue 9433015: Add a force pipelining option to load flags. (Closed)

Created:
8 years, 10 months ago by James Simonsen
Modified:
8 years, 9 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, eroman, darin-cc_chromium.org, arv (Not doing code reviews)
Base URL:
http://git.chromium.org/chromium/src.git@master
Visibility:
Public.

Description

Add a force pipelining option to load flags. Details: - Add a HttpPipelinedHostForced class for connections with forced requests. + Forced requests get their own pipeline and there's only one per host. + They always try to pipeline and won't retry if evicted. + Only one HttpStreamFactoryImpl::Job runs for all requests to the same origin with forced pipelining. All requests will fail if that Job fails. - Track HttpPipelinedHosts with a Key. Right now that's origin and force-pipelining, but it might be expanded to include content type. - Add a BufferedWriteStreamSocket that wraps a normal socket. It buffers Write() calls until a task fires to dispatch the buffer to the underlying socket. BUG=110794 TEST=net_unittests and unit_tests Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=124487

Patch Set 1 #

Patch Set 2 : Fix build on other platforms #

Total comments: 36

Patch Set 3 : More tests #

Total comments: 17

Patch Set 4 : Add backup buffer #

Total comments: 2

Patch Set 5 : Fix bug appending to buffer #

Patch Set 6 : Merge #

Patch Set 7 : Fix test under debug #

Patch Set 8 : Fix copyright lines #

Patch Set 9 : Fix leak in test #

Patch Set 10 : Use flag in session params #

Total comments: 8

Patch Set 11 : Add const ref #

Patch Set 12 : Merge #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1315 lines, -267 lines) Patch
M chrome/browser/net/http_pipelining_compatibility_client.h View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -0 lines 0 comments Download
M chrome/browser/net/http_pipelining_compatibility_client.cc View 1 2 3 4 5 6 7 8 9 3 chunks +17 lines, -2 lines 0 comments Download
M chrome/browser/net/http_pipelining_compatibility_client_unittest.cc View 1 2 3 4 5 3 chunks +30 lines, -11 lines 0 comments Download
M chrome/browser/resources/net_internals/http_pipeline_view.js View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +3 lines, -0 lines 0 comments Download
M net/http/http_network_session.h View 1 2 3 4 5 6 7 8 9 10 5 chunks +11 lines, -1 line 0 comments Download
M net/http/http_network_session.cc View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -1 line 0 comments Download
M net/http/http_network_transaction.cc View 1 2 3 4 5 6 7 8 9 1 chunk +8 lines, -0 lines 0 comments Download
M net/http/http_pipelined_connection_impl.h View 1 2 2 chunks +19 lines, -1 line 0 comments Download
M net/http/http_pipelined_host.h View 1 2 3 4 5 6 7 8 9 5 chunks +20 lines, -6 lines 0 comments Download
A net/http/http_pipelined_host.cc View 1 2 3 4 5 6 7 8 9 1 chunk +17 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_forced.h View 1 2 1 chunk +84 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_forced.cc View 1 2 3 4 5 6 7 8 9 1 chunk +108 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_forced_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +106 lines, -0 lines 0 comments Download
M net/http/http_pipelined_host_impl.h View 1 2 3 chunks +3 lines, -3 lines 0 comments Download
M net/http/http_pipelined_host_impl.cc View 1 2 3 4 5 6 7 8 9 4 chunks +9 lines, -27 lines 0 comments Download
M net/http/http_pipelined_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 4 chunks +7 lines, -62 lines 0 comments Download
M net/http/http_pipelined_host_pool.h View 1 2 3 4 5 6 7 8 9 4 chunks +14 lines, -12 lines 0 comments Download
M net/http/http_pipelined_host_pool.cc View 1 2 3 4 5 6 7 8 9 7 chunks +36 lines, -26 lines 0 comments Download
M net/http/http_pipelined_host_pool_unittest.cc View 1 2 3 4 5 6 7 8 9 4 chunks +111 lines, -56 lines 0 comments Download
A net/http/http_pipelined_host_test_util.h View 1 2 3 4 5 6 7 1 chunk +70 lines, -0 lines 0 comments Download
A net/http/http_pipelined_host_test_util.cc View 1 2 3 4 5 6 7 1 chunk +33 lines, -0 lines 0 comments Download
M net/http/http_pipelined_network_transaction_unittest.cc View 1 2 3 4 5 6 7 8 9 21 chunks +153 lines, -33 lines 0 comments Download
M net/http/http_stream_factory_impl.h View 3 chunks +7 lines, -2 lines 0 comments Download
M net/http/http_stream_factory_impl.cc View 1 2 3 4 5 6 7 8 9 3 chunks +24 lines, -7 lines 0 comments Download
M net/http/http_stream_factory_impl_job.h View 2 chunks +4 lines, -0 lines 0 comments Download
M net/http/http_stream_factory_impl_job.cc View 1 2 3 4 5 6 7 8 9 6 chunks +29 lines, -9 lines 0 comments Download
M net/http/http_stream_factory_impl_request.h View 1 2 3 chunks +4 lines, -3 lines 0 comments Download
M net/http/http_stream_factory_impl_request.cc View 1 2 3 chunks +17 lines, -5 lines 0 comments Download
M net/net.gyp View 1 2 3 4 5 6 7 8 9 4 chunks +9 lines, -0 lines 0 comments Download
A net/socket/buffered_write_stream_socket.h View 1 2 3 1 chunk +78 lines, -0 lines 0 comments Download
A net/socket/buffered_write_stream_socket.cc View 1 2 3 4 1 chunk +156 lines, -0 lines 0 comments Download
A net/socket/buffered_write_stream_socket_unittest.cc View 1 2 3 4 5 6 1 chunk +122 lines, -0 lines 0 comments Download

Messages

Total messages: 26 (0 generated)
James Simonsen
This ended up needing more changes than I expected. Let me know if you'd like ...
8 years, 10 months ago (2012-02-21 23:46:10 UTC) #1
mmenke
Still haven't looked at buffered_write_stream_socket, and I want to look at how it integrates with ...
8 years, 10 months ago (2012-02-23 18:54:58 UTC) #2
James Simonsen
http://codereview.chromium.org/9433015/diff/7003/chrome/browser/net/http_pipelining_compatibility_client_unittest.cc File chrome/browser/net/http_pipelining_compatibility_client_unittest.cc (right): http://codereview.chromium.org/9433015/diff/7003/chrome/browser/net/http_pipelining_compatibility_client_unittest.cc#newcode141 chrome/browser/net/http_pipelining_compatibility_client_unittest.cc:141: // current Histogram. On 2012/02/23 18:54:58, Matt Menke wrote: ...
8 years, 10 months ago (2012-02-23 23:49:46 UTC) #3
mmenke
I'll do another round of review tomorrow - probably the final one. http://codereview.chromium.org/9433015/diff/7003/net/http/http_pipelined_network_transaction_unittest.cc File net/http/http_pipelined_network_transaction_unittest.cc ...
8 years, 10 months ago (2012-02-24 00:20:13 UTC) #4
mmenke
http://codereview.chromium.org/9433015/diff/8003/net/http/http_pipelined_host_pool_unittest.cc File net/http/http_pipelined_host_pool_unittest.cc (right): http://codereview.chromium.org/9433015/diff/8003/net/http/http_pipelined_host_pool_unittest.cc#newcode91 net/http/http_pipelined_host_pool_unittest.cc:91: protocol_negotiated_)) nit: Fix indent http://codereview.chromium.org/9433015/diff/8003/net/http/http_pipelined_host_pool_unittest.cc#newcode107 net/http/http_pipelined_host_pool_unittest.cc:107: ClientSocketHandle* dummyConnection = ...
8 years, 10 months ago (2012-02-24 16:36:39 UTC) #5
mmenke
http://codereview.chromium.org/9433015/diff/8003/net/http/http_stream_factory_impl_job.cc File net/http/http_stream_factory_impl_job.cc (right): http://codereview.chromium.org/9433015/diff/8003/net/http/http_stream_factory_impl_job.cc#newcode698 net/http/http_stream_factory_impl_job.cc:698: if (!was_new_key && http_pipelining_key_->force_pipelining()) { On 2012/02/24 16:36:39, Matt ...
8 years, 10 months ago (2012-02-24 16:50:14 UTC) #6
James Simonsen
http://codereview.chromium.org/9433015/diff/8003/net/http/http_pipelined_host_pool_unittest.cc File net/http/http_pipelined_host_pool_unittest.cc (right): http://codereview.chromium.org/9433015/diff/8003/net/http/http_pipelined_host_pool_unittest.cc#newcode91 net/http/http_pipelined_host_pool_unittest.cc:91: protocol_negotiated_)) On 2012/02/24 16:36:39, Matt Menke wrote: > nit: ...
8 years, 10 months ago (2012-02-24 23:58:51 UTC) #7
mmenke
LGTM, as-is. Suggest you add one unit test, though. http://codereview.chromium.org/9433015/diff/8003/net/http/http_stream_factory_impl_job.cc File net/http/http_stream_factory_impl_job.cc (right): http://codereview.chromium.org/9433015/diff/8003/net/http/http_stream_factory_impl_job.cc#newcode698 net/http/http_stream_factory_impl_job.cc:698: ...
8 years, 10 months ago (2012-02-25 00:32:43 UTC) #8
James Simonsen
I managed to make it a 4-line comment. I hope that's good enough. I'll let ...
8 years, 10 months ago (2012-02-25 03:11:37 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/9433015/25002
8 years, 10 months ago (2012-02-27 23:27:28 UTC) #10
commit-bot: I haz the power
Presubmit check for 9433015-25002 failed and returned exit status 1. Running presubmit commit checks ...
8 years, 10 months ago (2012-02-27 23:27:42 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/9433015/24006
8 years, 10 months ago (2012-02-27 23:48:13 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/9433015/26034
8 years, 9 months ago (2012-02-28 18:39:06 UTC) #13
commit-bot: I haz the power
Try job failure for 9433015-26034 (retry) on win_rel for step "browser_tests". It's a second try, ...
8 years, 9 months ago (2012-02-28 23:29:09 UTC) #14
willchan no longer on Chromium
Sorry, I didn't look at this earlier. I have to say I somewhat disagree with ...
8 years, 9 months ago (2012-02-28 23:44:21 UTC) #15
James Simonsen
Fortunately, the commit-queue was sufficiently borked that this didn't land before your comment came through. ...
8 years, 9 months ago (2012-03-01 01:11:24 UTC) #16
mmenke
http://codereview.chromium.org/9433015/diff/35001/net/http/http_network_session.h File net/http/http_network_session.h (right): http://codereview.chromium.org/9433015/diff/35001/net/http/http_network_session.h#newcode146 net/http/http_network_session.h:146: Params params() const { return params_; } Nit: const ...
8 years, 9 months ago (2012-03-01 16:50:30 UTC) #17
James Simonsen
http://codereview.chromium.org/9433015/diff/35001/net/http/http_network_session.h File net/http/http_network_session.h (right): http://codereview.chromium.org/9433015/diff/35001/net/http/http_network_session.h#newcode146 net/http/http_network_session.h:146: Params params() const { return params_; } On 2012/03/01 ...
8 years, 9 months ago (2012-03-01 18:49:29 UTC) #18
mmenke
LGTM http://codereview.chromium.org/9433015/diff/35001/net/http/http_pipelined_network_transaction_unittest.cc File net/http/http_pipelined_network_transaction_unittest.cc (right): http://codereview.chromium.org/9433015/diff/35001/net/http/http_pipelined_network_transaction_unittest.cc#newcode757 net/http/http_pipelined_network_transaction_unittest.cc:757: TEST_F(HttpPipelinedNetworkTransactionTest, ForcedPipelineSharesConnection) { On 2012/03/01 18:49:29, James Simonsen ...
8 years, 9 months ago (2012-03-01 19:10:09 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/9433015/48015
8 years, 9 months ago (2012-03-01 19:14:19 UTC) #20
commit-bot: I haz the power
Can't apply patch for file chrome/browser/resources/net_internals/http_pipeline_view.js. While running patch -p1 --forward --force; patching file chrome/browser/resources/net_internals/http_pipeline_view.js ...
8 years, 9 months ago (2012-03-01 19:14:29 UTC) #21
James Simonsen
On 2012/03/01 19:10:09, Matt Menke wrote: > I was thinking maybe a subclass...Not sure how ...
8 years, 9 months ago (2012-03-01 19:19:55 UTC) #22
mmenke
On 2012/03/01 19:19:55, James Simonsen wrote: > On 2012/03/01 19:10:09, Matt Menke wrote: > > ...
8 years, 9 months ago (2012-03-01 19:20:47 UTC) #23
willchan no longer on Chromium
SGTM, thanks guys. On Thu, Mar 1, 2012 at 11:20 AM, <mmenke@chromium.org> wrote: > On ...
8 years, 9 months ago (2012-03-01 19:22:59 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/simonjam@chromium.org/9433015/49006
8 years, 9 months ago (2012-03-01 19:52:53 UTC) #25
commit-bot: I haz the power
8 years, 9 months ago (2012-03-01 21:31:36 UTC) #26
Change committed as 124487

Powered by Google App Engine
This is Rietveld 408576698