Index: chrome/browser/extensions/api/socket/socket.h |
diff --git a/chrome/browser/extensions/api/socket/socket.h b/chrome/browser/extensions/api/socket/socket.h |
index 27e2685fe505d91410a9ef07c4bfc338a6abb1d3..bc1e398a82d203339bebd91474d1423618291a0e 100644 |
--- a/chrome/browser/extensions/api/socket/socket.h |
+++ b/chrome/browser/extensions/api/socket/socket.h |
@@ -15,6 +15,7 @@ |
#include "net/base/completion_callback.h" |
#include "net/base/io_buffer.h" |
#include "net/base/ip_endpoint.h" |
+#include "net/socket/tcp_client_socket.h" |
namespace net { |
class AddressList; |
@@ -30,6 +31,8 @@ typedef base::Callback<void(int, scoped_refptr<net::IOBuffer> io_buffer)> |
typedef base::Callback< |
void(int, scoped_refptr<net::IOBuffer> io_buffer, const std::string&, int)> |
RecvFromCompletionCallback; |
+typedef base::Callback< |
+ void(int, net::TCPClientSocket*)> AcceptCompletionCallback; |
// A Socket wraps a low-level socket and includes housekeeping information that |
// we need to manage it in the context of an extension. |
@@ -68,11 +71,15 @@ class Socket : public ApiResource { |
virtual bool SetKeepAlive(bool enable, int delay); |
virtual bool SetNoDelay(bool no_delay); |
+ virtual int Listen(int backlog, std::string* error_msg); |
+ virtual void Accept(const AcceptCompletionCallback &callback); |
bool IsConnected(); |
virtual bool GetPeerAddress(net::IPEndPoint* address) = 0; |
virtual bool GetLocalAddress(net::IPEndPoint* address) = 0; |
+ // Used to check for API permission to listen on this address for TCP sockets. |
+ virtual bool GetBindAddress(net::IPEndPoint* address); |
virtual SocketType GetSocketType() const = 0; |