Add WebSocketClientSocketHandleAdapter.
Bug: 801564
Change-Id: I41e16956e9179b7dbacea6672702e282434df663
Reviewed-on: https://chromium-review.googlesource.com/906891
Commit-Queue: Bence Béky <[email protected]>
Reviewed-by: Adam Rice <[email protected]>
Cr-Commit-Position: refs/heads/master@{#535375}
diff --git a/net/websockets/websocket_basic_stream.cc b/net/websockets/websocket_basic_stream.cc
index d7bccc1..22d0c68 100644
--- a/net/websockets/websocket_basic_stream.cc
+++ b/net/websockets/websocket_basic_stream.cc
@@ -8,9 +8,7 @@
#include <stdint.h>
#include <algorithm>
#include <limits>
-#include <string>
#include <utility>
-#include <vector>
#include "base/bind.h"
#include "base/logging.h"
@@ -19,10 +17,9 @@
#include "net/base/io_buffer.h"
#include "net/base/net_errors.h"
#include "net/socket/client_socket_handle.h"
-#include "net/traffic_annotation/network_traffic_annotation.h"
+#include "net/websockets/websocket_basic_stream_adapters.h"
#include "net/websockets/websocket_errors.h"
#include "net/websockets/websocket_frame.h"
-#include "net/websockets/websocket_frame_parser.h"
namespace net {
@@ -98,7 +95,7 @@
} // namespace
WebSocketBasicStream::WebSocketBasicStream(
- std::unique_ptr<ClientSocketHandle> connection,
+ std::unique_ptr<Adapter> connection,
const scoped_refptr<GrowableIOBuffer>& http_read_buffer,
const std::string& sub_protocol,
const std::string& extensions)
@@ -147,13 +144,10 @@
// call any callbacks after Disconnect(), which we call from the
// destructor. The caller of ReadFrames() is required to keep |frames|
// valid.
- int result = connection_->socket()->Read(
- read_buffer_.get(),
- read_buffer_->size(),
+ int result = connection_->Read(
+ read_buffer_.get(), read_buffer_->size(),
base::Bind(&WebSocketBasicStream::OnReadComplete,
- base::Unretained(this),
- base::Unretained(frames),
- callback));
+ base::Unretained(this), base::Unretained(frames), callback));
if (result == ERR_IO_PENDING)
return result;
result = HandleReadResult(result, frames);
@@ -206,7 +200,9 @@
return WriteEverything(drainable_buffer, callback);
}
-void WebSocketBasicStream::Close() { connection_->socket()->Disconnect(); }
+void WebSocketBasicStream::Close() {
+ connection_->Disconnect();
+}
std::string WebSocketBasicStream::GetSubProtocol() const {
return sub_protocol_;
@@ -222,8 +218,10 @@
const std::string& sub_protocol,
const std::string& extensions,
WebSocketMaskingKeyGeneratorFunction key_generator_function) {
- std::unique_ptr<WebSocketBasicStream> stream(new WebSocketBasicStream(
- std::move(connection), http_read_buffer, sub_protocol, extensions));
+ auto stream = std::make_unique<WebSocketBasicStream>(
+ std::make_unique<WebSocketClientSocketHandleAdapter>(
+ std::move(connection)),
+ http_read_buffer, sub_protocol, extensions);
stream->generate_websocket_masking_key_ = key_generator_function;
return stream;
}
@@ -234,11 +232,11 @@
while (buffer->BytesRemaining() > 0) {
// The use of base::Unretained() here is safe because on destruction we
// disconnect the socket, preventing any further callbacks.
- int result = connection_->socket()->Write(
- buffer.get(), buffer->BytesRemaining(),
- base::Bind(&WebSocketBasicStream::OnWriteComplete,
- base::Unretained(this), buffer, callback),
- kTrafficAnnotation);
+ int result =
+ connection_->Write(buffer.get(), buffer->BytesRemaining(),
+ base::Bind(&WebSocketBasicStream::OnWriteComplete,
+ base::Unretained(this), buffer, callback),
+ kTrafficAnnotation);
if (result > 0) {
UMA_HISTOGRAM_COUNTS_100000("Net.WebSocket.DataUse.Upstream", result);
buffer->DidConsume(result);