summaryrefslogtreecommitdiffstats
path: root/net/third_party
diff options
context:
space:
mode:
authoragl@google.com <agl@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-10 22:34:36 +0000
committeragl@google.com <agl@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-10 22:34:36 +0000
commit35327b5afc3d3ee71aa95fd76eca7792eb2d2055 (patch)
tree4c650aedb210f1925dedcf24069ec12d57a0e16f /net/third_party
parent984ad4b32076274757a91e9ac68bd9e3eaf472d2 (diff)
downloadchromium_src-35327b5afc3d3ee71aa95fd76eca7792eb2d2055.zip
chromium_src-35327b5afc3d3ee71aa95fd76eca7792eb2d2055.tar.gz
chromium_src-35327b5afc3d3ee71aa95fd76eca7792eb2d2055.tar.bz2
net: False Start only for NPN capable servers.
This change causes NSS only to False Start with NPN capable servers. It also removes the False Start blacklist and this has the effect of enabling 1/n-1 record splitting for those hosts that were previously on the blacklist. However, those hosts have been getting 1/n-1 from Opera, Firefox and IE for a few months now. BUG=none TEST=net_unittests Review URL: http://codereview.chromium.org/10014010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131649 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/third_party')
-rw-r--r--net/third_party/nss/README.chromium3
-rwxr-xr-xnet/third_party/nss/patches/applypatches.sh2
-rw-r--r--net/third_party/nss/ssl/ssl3con.c1
-rw-r--r--net/third_party/nss/ssl/ssl3ext.c4
4 files changed, 10 insertions, 0 deletions
diff --git a/net/third_party/nss/README.chromium b/net/third_party/nss/README.chromium
index 6e2ca29..d7110f0 100644
--- a/net/third_party/nss/README.chromium
+++ b/net/third_party/nss/README.chromium
@@ -65,6 +65,9 @@ Patches:
https://bugzilla.mozilla.org/show_bug.cgi?id=681065
patches/dtls.patch
+ * Enable False Start only when the server supports NPN.
+ patches/falsestartnpn.patch
+
Apply the patches to NSS by running the patches/applypatches.sh script. Read
the comments at the top of patches/applypatches.sh for instructions.
diff --git a/net/third_party/nss/patches/applypatches.sh b/net/third_party/nss/patches/applypatches.sh
index dbb603e..766a0ca 100755
--- a/net/third_party/nss/patches/applypatches.sh
+++ b/net/third_party/nss/patches/applypatches.sh
@@ -34,3 +34,5 @@ patch -p6 < $patches_dir/restartclientauth.patch
patch -p6 < $patches_dir/encryptedclientcerts.patch
patch -p4 < $patches_dir/dtls.patch
+
+patch -p6 < $patches_dir/falsestartnpn.patch
diff --git a/net/third_party/nss/ssl/ssl3con.c b/net/third_party/nss/ssl/ssl3con.c
index e8a7f017..d0eb042 100644
--- a/net/third_party/nss/ssl/ssl3con.c
+++ b/net/third_party/nss/ssl/ssl3con.c
@@ -6086,6 +6086,7 @@ ssl3_CanFalseStart(sslSocket *ss) {
rv = ss->opt.enableFalseStart &&
!ss->sec.isServer &&
!ss->ssl3.hs.isResuming &&
+ ssl3_ExtensionNegotiated(ss, ssl_next_proto_nego_xtn) &&
ss->ssl3.cwSpec &&
ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10 &&
(ss->ssl3.hs.kea_def->exchKeyType == ssl_kea_rsa ||
diff --git a/net/third_party/nss/ssl/ssl3ext.c b/net/third_party/nss/ssl/ssl3ext.c
index 80c1f7f..4e043b8 100644
--- a/net/third_party/nss/ssl/ssl3ext.c
+++ b/net/third_party/nss/ssl/ssl3ext.c
@@ -567,6 +567,8 @@ ssl3_ServerHandleNextProtoNegoXtn(sslSocket * ss, PRUint16 ex_type, SECItem *dat
return SECFailure;
}
+ ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type;
+
return SECSuccess;
}
@@ -635,6 +637,8 @@ ssl3_ClientHandleNextProtoNegoXtn(sslSocket *ss, PRUint16 ex_type,
return SECFailure;
}
+ ss->xtnData.negotiated[ss->xtnData.numNegotiated++] = ex_type;
+
SECITEM_FreeItem(&ss->ssl3.nextProto, PR_FALSE);
return SECITEM_CopyItem(NULL, &ss->ssl3.nextProto, &result);
}