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

Issue 12025040: When reading from an SSL socket, attempt to fully fill the caller's buffer (Closed)

Created:
7 years, 11 months ago by Ryan Sleevi
Modified:
7 years, 10 months ago
Reviewers:
wtc, Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org
Visibility:
Public.

Description

When reading from an SSL socket, attempt to fully fill the caller's buffer The current SSLClientSocket implementation reads one SSL record at a time, and immediately returns that to the caller of Read(). As it is a common performance optimization to set SSL record sizes to fit within MTU, this leads to suboptimal performance and causes SSLClientSocket::Read() to not match the behaviour of TCPClientSocket::Read() (which attempts to fully fill the caller's buffer). BUG=166903 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=182912

Patch Set 1 #

Patch Set 2 : OpenSSL fix #

Patch Set 3 : rebased #

Patch Set 4 : With tests #

Patch Set 5 : Initialization order #

Total comments: 25

Patch Set 6 : Review feedback #

Patch Set 7 : Last minute compile fixes #

Total comments: 1

Patch Set 8 : Don't treat ERR_IO_PENDING with partial data as a delayed error #

Patch Set 9 : Comment update #

Total comments: 7

Patch Set 10 : Review feedback #

Unified diffs Side-by-side diffs Delta from patch set Stats (+492 lines, -69 lines) Patch
M net/socket/ssl_client_socket_nss.cc View 1 2 3 4 5 6 7 8 9 6 chunks +148 lines, -57 lines 0 comments Download
M net/socket/ssl_client_socket_openssl.h View 1 2 3 4 5 6 7 2 chunks +10 lines, -1 line 0 comments Download
M net/socket/ssl_client_socket_openssl.cc View 1 2 3 4 5 6 7 8 9 3 chunks +63 lines, -9 lines 0 comments Download
M net/socket/ssl_client_socket_unittest.cc View 1 2 3 4 5 4 chunks +252 lines, -2 lines 0 comments Download
M net/tools/testserver/testserver.py View 1 2 3 2 chunks +19 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
Ryan Sleevi
rch, wtc: Because of the subtlety and my nervousness here, I'm asking for a double ...
7 years, 10 months ago (2013-02-13 01:21:16 UTC) #1
Ryan Hamilton
https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_nss.cc File net/socket/ssl_client_socket_nss.cc (right): https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_nss.cc#newcode2009 net/socket/ssl_client_socket_nss.cc:2009: pending_read_result_ = rv; same comment about using a const ...
7 years, 10 months ago (2013-02-13 17:23:17 UTC) #2
Ryan Sleevi
https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_openssl.cc File net/socket/ssl_client_socket_openssl.cc (right): https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_openssl.cc#newcode1365 net/socket/ssl_client_socket_openssl.cc:1365: pending_read_error_ = rv; On 2013/02/13 17:23:18, Ryan Hamilton wrote: ...
7 years, 10 months ago (2013-02-13 20:44:43 UTC) #3
Ryan Hamilton
https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_openssl.cc File net/socket/ssl_client_socket_openssl.cc (right): https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_openssl.cc#newcode1365 net/socket/ssl_client_socket_openssl.cc:1365: pending_read_error_ = rv; On 2013/02/13 20:44:43, Ryan Sleevi wrote: ...
7 years, 10 months ago (2013-02-13 21:50:34 UTC) #4
wtc
Patch set 5 LGTM. I read ssl_client_socket_nss.cc very carefully. Many of my comments on ssl_client_socket_nss.cc ...
7 years, 10 months ago (2013-02-13 22:06:51 UTC) #5
Ryan Sleevi
Thanks for your careful reviews. I've uploaded Patchset 6 to address these comments. https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_nss.cc File ...
7 years, 10 months ago (2013-02-13 22:55:48 UTC) #6
Ryan Hamilton
lgtm https://codereview.chromium.org/12025040/diff/13006/net/socket/ssl_client_socket_unittest.cc File net/socket/ssl_client_socket_unittest.cc (right): https://codereview.chromium.org/12025040/diff/13006/net/socket/ssl_client_socket_unittest.cc#newcode746 net/socket/ssl_client_socket_unittest.cc:746: // of ciphertext necessary to contain the 8K ...
7 years, 10 months ago (2013-02-13 23:17:43 UTC) #7
Ryan Sleevi
Wan-Teh swung by and explained the error in Patchset 7, which was originally flagged as ...
7 years, 10 months ago (2013-02-15 22:27:47 UTC) #8
wtc
Patch set 9 LGTM. I only reviewed ssl_client_socket_nss.cc and ssl_client_socket_openssl.cc. https://codereview.chromium.org/12025040/diff/47001/net/socket/ssl_client_socket_nss.cc File net/socket/ssl_client_socket_nss.cc (right): https://codereview.chromium.org/12025040/diff/47001/net/socket/ssl_client_socket_nss.cc#newcode152 ...
7 years, 10 months ago (2013-02-15 23:14:49 UTC) #9
wtc
https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_nss.cc File net/socket/ssl_client_socket_nss.cc (right): https://codereview.chromium.org/12025040/diff/19001/net/socket/ssl_client_socket_nss.cc#newcode1980 net/socket/ssl_client_socket_nss.cc:1980: // requested. Normally, PR_Read will return exactly one SSL ...
7 years, 10 months ago (2013-02-15 23:30:04 UTC) #10
Ryan Sleevi
Thanks for the careful review, Wan-Teh! https://codereview.chromium.org/12025040/diff/47001/net/socket/ssl_client_socket_openssl.cc File net/socket/ssl_client_socket_openssl.cc (right): https://codereview.chromium.org/12025040/diff/47001/net/socket/ssl_client_socket_openssl.cc#newcode1370 net/socket/ssl_client_socket_openssl.cc:1370: // thread-local storage. ...
7 years, 10 months ago (2013-02-16 00:20:16 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rsleevi@chromium.org/12025040/45002
7 years, 10 months ago (2013-02-16 00:20:47 UTC) #12
commit-bot: I haz the power
7 years, 10 months ago (2013-02-16 04:10:12 UTC) #13
Message was sent while issue was closed.
Change committed as 182912

Powered by Google App Engine
This is Rietveld 408576698