Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: extensions/browser/api/socket/tls_socket.cc

Issue 494573002: A change for the setPause() api in chrome.sockets.tcp: Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cosmetics and commentary. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/socket/tls_socket.cc
diff --git a/extensions/browser/api/socket/tls_socket.cc b/extensions/browser/api/socket/tls_socket.cc
index 5e1008d63afdac3cf565e413f1c3ff765c8a3ceb..79b020bf152dfb43e88807d3752f6e1925cb8ebe 100644
--- a/extensions/browser/api/socket/tls_socket.cc
+++ b/extensions/browser/api/socket/tls_socket.cc
@@ -17,6 +17,8 @@
#include "net/socket/tcp_client_socket.h"
#include "url/url_canon.h"
+using extensions::BufferingStreamSocket;
+
namespace {
// Returns the SSL protocol version (as a uint16) represented by a string.
@@ -46,13 +48,16 @@ void TlsConnectDone(scoped_ptr<net::SSLClientSocket> ssl_socket,
if (result != net::OK) {
callback.Run(scoped_ptr<extensions::TLSSocket>(), result);
return;
- };
+ }
+ // Wrap the StreamSocket in a BufferingTCPSocket, to support SetPaused().
Ken Rockot(use gerrit already) 2015/12/15 17:17:49 nit: s/BufferingTCPSocket/BufferingStreamSocket/
+ scoped_ptr<BufferingStreamSocket> buffer_sock(
Ken Rockot(use gerrit already) 2015/12/15 17:17:49 nit: buffer_socket? No real value in abbreviating
+ new BufferingStreamSocket(ssl_socket.Pass()));
// Wrap the StreamSocket in a TLSSocket, which matches the extension socket
// API. Set the handle of the socket to the new value, so that it can be
// used for read/write/close/etc.
scoped_ptr<extensions::TLSSocket> wrapper(
- new extensions::TLSSocket(ssl_socket.Pass(), extension_id));
+ new extensions::TLSSocket(buffer_sock.Pass(), extension_id));
// Caller will end up deleting the prior TCPSocket, once it calls
// SetSocket(..,wrapper).
@@ -66,10 +71,9 @@ namespace extensions {
const char kTLSSocketTypeInvalidError[] =
"Cannot listen on a socket that is already connected.";
-TLSSocket::TLSSocket(scoped_ptr<net::StreamSocket> tls_socket,
+TLSSocket::TLSSocket(scoped_ptr<BufferingStreamSocket> tls_socket,
const std::string& owner_extension_id)
- : ResumableTCPSocket(owner_extension_id), tls_socket_(tls_socket.Pass()) {
-}
+ : ResumableTCPSocket(owner_extension_id), tls_socket_(tls_socket.Pass()) {}
TLSSocket::~TLSSocket() {
Disconnect();
@@ -230,6 +234,7 @@ void TLSSocket::UpgradeSocketToTLS(
// Set the socket handle to the socket's client stream (that should be the
// only one active here). Then have the old socket release ownership on
// that client stream.
+ tcp_socket->ClientStream()->DisableBuffering();
socket_handle->SetSocket(
scoped_ptr<net::StreamSocket>(tcp_socket->ClientStream()));
tcp_socket->Release();
@@ -302,4 +307,3 @@ void TLSSocket::UpgradeSocketToTLS(
}
} // namespace extensions
-

Powered by Google App Engine
This is Rietveld 408576698