| Index: net/websockets/websocket_job.cc
|
| diff --git a/net/websockets/websocket_job.cc b/net/websockets/websocket_job.cc
|
| index 56faefb25037465445c69914ab51343d532ce436..fde871100cbfddda65db5b488199c11f58515084 100644
|
| --- a/net/websockets/websocket_job.cc
|
| +++ b/net/websockets/websocket_job.cc
|
| @@ -80,6 +80,7 @@ WebSocketJob::WebSocketJob(SocketStream::Delegate* delegate)
|
| started_to_send_handshake_request_(false),
|
| handshake_request_sent_(0),
|
| response_cookies_save_index_(0),
|
| + protocol_negotiated_(kProtoUnknown),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_for_send_pending_(this)) {
|
| }
|
| @@ -312,7 +313,9 @@ int WebSocketJob::OnReceivedSpdyResponseHeader(
|
| if (status != OK)
|
| return status;
|
| // TODO(toyoshim): Fallback to non-spdy connection?
|
| - handshake_response_->ParseResponseHeaderBlock(headers, challenge_);
|
| + handshake_response_->ParseResponseHeaderBlock(headers,
|
| + challenge_,
|
| + protocol_negotiated_);
|
|
|
| SaveCookiesAndNotifyHeaderComplete();
|
| return OK;
|
| @@ -389,7 +392,7 @@ void WebSocketJob::DoSendData() {
|
| if (spdy_websocket_stream_.get()) {
|
| scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock);
|
| handshake_request_->GetRequestHeaderBlock(
|
| - socket_->url(), headers.get(), &challenge_);
|
| + socket_->url(), headers.get(), &challenge_, protocol_negotiated_);
|
| spdy_websocket_stream_->SendRequest(headers.Pass());
|
| } else {
|
| const std::string& handshake_request =
|
| @@ -560,9 +563,8 @@ int WebSocketJob::TrySpdyStream() {
|
| spdy_pool->Get(pair, *socket_->net_log());
|
| SSLInfo ssl_info;
|
| bool was_npn_negotiated;
|
| - NextProto protocol_negotiated = kProtoUnknown;
|
| bool use_ssl = spdy_session->GetSSLInfo(
|
| - &ssl_info, &was_npn_negotiated, &protocol_negotiated);
|
| + &ssl_info, &was_npn_negotiated, &protocol_negotiated_);
|
| if (socket_->is_secure() && !use_ssl)
|
| return OK;
|
|
|
|
|