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

Issue 1585041: SSL fixes for sites with buggy DEFLATE support. (Closed)

Created:
10 years, 8 months ago by agl
Modified:
9 years, 7 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org
Visibility:
Public.

Description

SSL fixes for sites with buggy DEFLATE support. 1) Keep a global set of known buggy hosts in memory. Previously we would fallback to SSLv3 with each connection. While I quite like the idea of making these buggy sites slow, it doesn't really help users and it feels silly. 2) Catch SSL protocol errors while reading the initial data from the server and fallback so SSLv3. Since we added False Start, servers which believe that they support DEFLATE compression but fail at it are not detected as a handshake error. Rather they cause an error when reading the first byte of application level data. BUG=41591 TEST=Navigate to https://ws.sso.post.ch/ without an SSL error

Patch Set 1 #

Total comments: 11

Patch Set 2 : Addressing comments. #

Patch Set 3 : ... #

Total comments: 4

Patch Set 4 : ... #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+147 lines, -5 lines) Patch
M net/base/net_error_list.h View 2 3 2 chunks +6 lines, -1 line 0 comments Download
M net/http/http_network_transaction.cc View 1 2 3 6 chunks +31 lines, -4 lines 0 comments Download
M net/http/http_network_transaction_unittest.cc View 1 chunk +108 lines, -0 lines 1 comment Download
M net/socket/ssl_client_socket_nss.cc View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
agl
I'll run this by wtc also but he's away today and you might notice something ...
10 years, 8 months ago (2010-04-16 15:57:35 UTC) #1
willchan no longer on Chromium
http://codereview.chromium.org/1585041/diff/1/2 File net/http/http_network_transaction.cc (right): http://codereview.chromium.org/1585041/diff/1/2#newcode708 net/http/http_network_transaction.cc:708: if (g_ssl_broken_servers->count(GetHostAndPort(request_->url))) { My personal pref is to use ...
10 years, 8 months ago (2010-04-16 20:32:04 UTC) #2
agl
10 years, 8 months ago (2010-04-16 20:33:23 UTC) #3
wtc
LGTM. You're right, I wasn't interested in optimizing the performance of talking to TLS-intolerant servers. ...
10 years, 8 months ago (2010-04-19 22:24:04 UTC) #4
agl
PTAL. http://codereview.chromium.org/1585041/diff/1/2 File net/http/http_network_transaction.cc (right): http://codereview.chromium.org/1585041/diff/1/2#newcode51 net/http/http_network_transaction.cc:51: std::set<std::string>* g_ssl_broken_servers = NULL; On 2010/04/19 22:24:05, wtc ...
10 years, 8 months ago (2010-04-20 18:27:06 UTC) #5
wtc
LGTM. http://codereview.chromium.org/1585041/diff/10001/11001 File net/base/net_error_list.h (right): http://codereview.chromium.org/1585041/diff/10001/11001#newcode150 net/base/net_error_list.h:150: // An SSL peer sent us a fatal ...
10 years, 8 months ago (2010-04-20 19:15:19 UTC) #6
agl
PTAL. Hopefully the last round. I added some unittests and verified that they caught the ...
10 years, 8 months ago (2010-04-20 19:35:45 UTC) #7
wtc
10 years, 8 months ago (2010-04-20 21:31:07 UTC) #8
LGTM.

http://codereview.chromium.org/1585041/diff/16001/17003
File net/http/http_network_transaction_unittest.cc (right):

http://codereview.chromium.org/1585041/diff/16001/17003#newcode4889
net/http/http_network_transaction_unittest.cc:4889: struct
TLSCompressionFailureSocketDataProvider : public SocketDataProvider {
Why is this class defined as a 'struct'?

Nit: this class name should say DecompressionFailure.  I
guess that would make the class name too long?

Powered by Google App Engine
This is Rietveld 408576698