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

Unified Diff: chrome/browser/extensions/api/socket/socket_api.h

Issue 10827390: Implement chrome.socket.bind/listen/accept for TCP server socket. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add error if trying to bind TCP socket, remove TCP client socket bind. Created 8 years, 3 months 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: chrome/browser/extensions/api/socket/socket_api.h
diff --git a/chrome/browser/extensions/api/socket/socket_api.h b/chrome/browser/extensions/api/socket/socket_api.h
index 3b5e835c2b490ff015f9597595702fd41cf91471..45f9ad6a217458cebb86b4d8511c21d78f6e9816 100644
--- a/chrome/browser/extensions/api/socket/socket_api.h
+++ b/chrome/browser/extensions/api/socket/socket_api.h
@@ -9,9 +9,11 @@
#include "chrome/browser/extensions/api/api_function.h"
#include "chrome/browser/extensions/api/api_resource_manager.h"
#include "chrome/browser/extensions/extension_function.h"
+#include "chrome/common/extensions/api/experimental_socket.h"
#include "chrome/common/extensions/api/socket.h"
#include "net/base/address_list.h"
#include "net/base/host_resolver.h"
+#include "net/socket/tcp_client_socket.h"
#include <string>
@@ -164,6 +166,41 @@ class SocketBindFunction : public SocketAsyncApiFunction {
int port_;
};
+class SocketListenFunction : public SocketAsyncApiFunction {
+ public:
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.socket.listen");
+
+ SocketListenFunction();
+
+ protected:
+ virtual ~SocketListenFunction();
+
+ // AsyncApiFunction:
+ virtual bool Prepare() OVERRIDE;
+ virtual void Work() OVERRIDE;
+
+ private:
+ scoped_ptr<api::experimental_socket::Listen::Params> params_;
+};
+
+class SocketAcceptFunction : public SocketAsyncApiFunction {
+ public:
+ DECLARE_EXTENSION_FUNCTION_NAME("experimental.socket.accept");
+
+ SocketAcceptFunction();
+
+ protected:
+ virtual ~SocketAcceptFunction();
+
+ // AsyncApiFunction:
+ virtual bool Prepare() OVERRIDE;
+ virtual void AsyncWorkStart() OVERRIDE;
+
+ private:
+ void OnAccept(int result_code, net::TCPClientSocket *socket);
+ scoped_ptr<api::experimental_socket::Accept::Params> params_;
+};
+
class SocketReadFunction : public SocketAsyncApiFunction {
public:
DECLARE_EXTENSION_FUNCTION_NAME("socket.read")

Powered by Google App Engine
This is Rietveld 408576698