Index: jingle/notifier/base/chrome_async_socket.cc |
diff --git a/jingle/notifier/base/chrome_async_socket.cc b/jingle/notifier/base/chrome_async_socket.cc |
index 131f733d9bc247d90bab5f2f4eae15876f643cff..e3a243fbf5400cb951e2445bd58c5dbf66f5185b 100644 |
--- a/jingle/notifier/base/chrome_async_socket.cc |
+++ b/jingle/notifier/base/chrome_async_socket.cc |
@@ -32,15 +32,7 @@ ChromeAsyncSocket::ChromeAsyncSocket( |
ResolvingClientSocketFactory* client_socket_factory, |
size_t read_buf_size, |
size_t write_buf_size) |
- : connect_callback_(ALLOW_THIS_IN_INITIALIZER_LIST(this), |
- &ChromeAsyncSocket::ProcessConnectDone), |
- read_callback_(ALLOW_THIS_IN_INITIALIZER_LIST(this), |
- &ChromeAsyncSocket::ProcessReadDone), |
- write_callback_(ALLOW_THIS_IN_INITIALIZER_LIST(this), |
- &ChromeAsyncSocket::ProcessWriteDone), |
- ssl_connect_callback_(ALLOW_THIS_IN_INITIALIZER_LIST(this), |
- &ChromeAsyncSocket::ProcessSSLConnectDone), |
- client_socket_factory_(client_socket_factory), |
+ : client_socket_factory_(client_socket_factory), |
state_(STATE_CLOSED), |
error_(ERROR_NONE), |
net_error_(net::OK), |
@@ -119,7 +111,9 @@ bool ChromeAsyncSocket::Connect(const talk_base::SocketAddress& address) { |
transport_socket_.reset( |
client_socket_factory_->CreateTransportClientSocket( |
dest_host_port_pair)); |
- int status = transport_socket_->Connect(&connect_callback_); |
+ int status = transport_socket_->Connect( |
+ base::Bind(&ChromeAsyncSocket::ProcessConnectDone, |
+ base::Unretained(this))); |
if (status != net::ERR_IO_PENDING) { |
// We defer execution of ProcessConnectDone instead of calling it |
// directly here as the caller may not expect an error/close to |
@@ -182,7 +176,9 @@ void ChromeAsyncSocket::DoRead() { |
// done). |
int status = |
transport_socket_->Read( |
- read_buf_.get(), read_buf_->size(), &read_callback_); |
+ read_buf_.get(), read_buf_->size(), |
+ base::Bind(&ChromeAsyncSocket::ProcessReadDone, |
+ base::Unretained(this))); |
read_state_ = PENDING; |
if (status != net::ERR_IO_PENDING) { |
ProcessReadDone(status); |
@@ -312,7 +308,9 @@ void ChromeAsyncSocket::DoWrite() { |
// before we send the next message. |
int status = |
transport_socket_->Write( |
- write_buf_.get(), write_end_, &write_callback_); |
+ write_buf_.get(), write_end_, |
+ base::Bind(&ChromeAsyncSocket::ProcessWriteDone, |
+ base::Unretained(this))); |
write_state_ = PENDING; |
if (status != net::ERR_IO_PENDING) { |
ProcessWriteDone(status); |
@@ -408,7 +406,9 @@ bool ChromeAsyncSocket::StartTls(const std::string& domain_name) { |
transport_socket_.reset( |
client_socket_factory_->CreateSSLClientSocket( |
socket_handle, net::HostPortPair(domain_name, 443))); |
- int status = transport_socket_->Connect(&ssl_connect_callback_); |
+ int status = transport_socket_->Connect( |
+ base::Bind(&ChromeAsyncSocket::ProcessSSLConnectDone, |
+ base::Unretained(this))); |
if (status != net::ERR_IO_PENDING) { |
MessageLoop* message_loop = MessageLoop::current(); |
CHECK(message_loop); |