Chromium Code Reviews| Index: net/socket/ssl_client_socket_impl.cc |
| diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc |
| index 80ff994982f2d3e804266d8623bae1dd2e90b0d4..76405869b08231a50f243c55df9d8a1100efa9b8 100644 |
| --- a/net/socket/ssl_client_socket_impl.cc |
| +++ b/net/socket/ssl_client_socket_impl.cc |
| @@ -20,6 +20,7 @@ |
| #include "base/lazy_instance.h" |
| #include "base/macros.h" |
| #include "base/memory/singleton.h" |
| +#include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/metrics/sparse_histogram.h" |
| #include "base/profiler/scoped_tracker.h" |
| @@ -929,10 +930,29 @@ int SSLClientSocketImpl::Init() { |
| if (session) |
| SSL_set_session(ssl_, session.get()); |
| + // Get read and write buffer sizes from field trials, if possible. If values |
| + // not present, use default. Also make sure values are in reasonable range. |
| + int send_buffer_size; |
| + if (!base::StringToInt( |
| + base::FieldTrialList::FindFullName("SSLBufferSizeSend"), |
| + &send_buffer_size)) { |
| + send_buffer_size = KDefaultOpenSSLBufferSize; |
|
davidben
2016/06/27 18:31:48
(Haha. While you're here, do you mind fixing KDefa
mmenke
2016/06/27 20:01:06
I completely missed that! Done.
|
| + } |
| + send_buffer_size = std::max(send_buffer_size, 1000); |
| + send_buffer_size = std::min(send_buffer_size, 2 * KDefaultOpenSSLBufferSize); |
| send_buffer_ = new GrowableIOBuffer(); |
| - send_buffer_->SetCapacity(KDefaultOpenSSLBufferSize); |
| + send_buffer_->SetCapacity(send_buffer_size); |
| + |
| + int recv_buffer_size; |
| + if (!base::StringToInt( |
| + base::FieldTrialList::FindFullName("SSLBufferSizeRecv"), |
| + &recv_buffer_size)) { |
| + recv_buffer_size = KDefaultOpenSSLBufferSize; |
| + } |
| + recv_buffer_size = std::max(recv_buffer_size, 1000); |
| + recv_buffer_size = std::min(recv_buffer_size, 2 * KDefaultOpenSSLBufferSize); |
| recv_buffer_ = new GrowableIOBuffer(); |
| - recv_buffer_->SetCapacity(KDefaultOpenSSLBufferSize); |
| + recv_buffer_->SetCapacity(recv_buffer_size); |
| BIO* ssl_bio = NULL; |