Commit 0eb771aa authored by bnc's avatar bnc Committed by Commit bot

Re-enable HTTP/2 over NPN (for OpenSSL).

BUG=557197

Review URL: https://codereview.chromium.org/1453903002

Cr-Commit-Position: refs/heads/master@{#361053}
parent a81d7fa0
......@@ -333,7 +333,6 @@ void HttpNetworkSession::GetAlpnProtos(NextProtoVector* alpn_protos) const {
void HttpNetworkSession::GetNpnProtos(NextProtoVector* npn_protos) const {
if (HttpStreamFactory::spdy_enabled() && params_.enable_npn) {
*npn_protos = next_protos_;
DisableHTTP2(npn_protos);
} else {
npn_protos->clear();
}
......
......@@ -116,6 +116,8 @@ class NET_EXPORT_PRIVATE HttpNetworkTransaction
FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest,
ResetStateForRestart);
FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest, EnableNPN);
FRIEND_TEST_ALL_PREFIXES(HttpNetworkTransactionTest, DisableNPN);
FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
WindowUpdateReceived);
FRIEND_TEST_ALL_PREFIXES(SpdyNetworkTransactionTest,
......
......@@ -81,6 +81,7 @@
#include "net/ssl/ssl_private_key.h"
#include "net/test/cert_test_util.h"
#include "net/websockets/websocket_handshake_stream_base.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "testing/platform_test.h"
#include "url/gurl.h"
......@@ -15466,4 +15467,29 @@ TEST_P(HttpNetworkTransactionTest, TotalNetworkBytesChunkedPost) {
trans->GetTotalReceivedBytes());
}
TEST_P(HttpNetworkTransactionTest, EnableNPN) {
session_deps_.next_protos = NextProtosDefaults();
session_deps_.enable_npn = true;
scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
EXPECT_THAT(trans.server_ssl_config_.alpn_protos,
testing::ElementsAre(kProtoHTTP2, kProtoSPDY31, kProtoHTTP11));
EXPECT_THAT(trans.server_ssl_config_.npn_protos,
testing::ElementsAre(kProtoHTTP2, kProtoSPDY31, kProtoHTTP11));
}
TEST_P(HttpNetworkTransactionTest, DisableNPN) {
session_deps_.next_protos = NextProtosDefaults();
session_deps_.enable_npn = false;
scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
EXPECT_THAT(trans.server_ssl_config_.alpn_protos,
testing::ElementsAre(kProtoHTTP2, kProtoSPDY31, kProtoHTTP11));
EXPECT_TRUE(trans.server_ssl_config_.npn_protos.empty());
}
} // namespace net
......@@ -383,6 +383,7 @@ SpdySessionDependencies::SpdySessionDependencies(
enable_compression(false),
enable_ping(false),
enable_user_alternate_protocol_ports(false),
enable_npn(true),
protocol(protocol),
session_max_recv_window_size(
SpdySession::GetDefaultInitialWindowSize(protocol)),
......@@ -441,6 +442,7 @@ HttpNetworkSession::Params SpdySessionDependencies::CreateSessionParams(
params.enable_spdy_ping_based_connection_checking = session_deps->enable_ping;
params.enable_user_alternate_protocol_ports =
session_deps->enable_user_alternate_protocol_ports;
params.enable_npn = session_deps->enable_npn;
params.spdy_default_protocol = session_deps->protocol;
params.spdy_session_max_recv_window_size =
session_deps->session_max_recv_window_size;
......
......@@ -197,6 +197,7 @@ struct SpdySessionDependencies {
bool enable_compression;
bool enable_ping;
bool enable_user_alternate_protocol_ports;
bool enable_npn;
NextProto protocol;
size_t session_max_recv_window_size;
size_t stream_max_recv_window_size;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment