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

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

Issue 183893041: Move sockets APIs out of src/chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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
deleted file mode 100644
index 950eb94dabc3fbac81b3bcbdd3078ca1739fc05c..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/api/socket/socket_api.h
+++ /dev/null
@@ -1,513 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_
-#define CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_
-
-#include "base/gtest_prod_util.h"
-#include "base/memory/ref_counted.h"
-#include "chrome/browser/extensions/api/api_resource_manager.h"
-#include "chrome/common/extensions/api/socket.h"
-#include "extensions/browser/api/async_api_function.h"
-#include "extensions/browser/extension_function.h"
-#include "net/base/address_list.h"
-#include "net/dns/host_resolver.h"
-#include "net/socket/tcp_client_socket.h"
-
-#include <string>
-
-namespace content {
-class BrowserContext;
-class ResourceContext;
-}
-
-namespace net {
-class IOBuffer;
-}
-
-namespace extensions {
-
-class Socket;
-
-// A simple interface to ApiResourceManager<Socket> or derived class. The goal
-// of this interface is to allow Socket API functions to use distinct instances
-// of ApiResourceManager<> depending on the type of socket (old version in
-// "socket" namespace vs new version in "socket.xxx" namespaces).
-class SocketResourceManagerInterface {
- public:
- virtual ~SocketResourceManagerInterface() {}
-
- virtual bool SetBrowserContext(content::BrowserContext* context) = 0;
- virtual int Add(Socket *socket) = 0;
- virtual Socket* Get(const std::string& extension_id,
- int api_resource_id) = 0;
- virtual void Remove(const std::string& extension_id,
- int api_resource_id) = 0;
- virtual base::hash_set<int>* GetResourceIds(
- const std::string& extension_id) = 0;
-};
-
-// Implementation of SocketResourceManagerInterface using an
-// ApiResourceManager<T> instance (where T derives from Socket).
-template<typename T>
-class SocketResourceManager : public SocketResourceManagerInterface {
- public:
- SocketResourceManager()
- : manager_(NULL) {
- }
-
- virtual bool SetBrowserContext(content::BrowserContext* context) OVERRIDE {
- manager_ = ApiResourceManager<T>::Get(context);
- DCHECK(manager_) << "There is no socket manager. "
- "If this assertion is failing during a test, then it is likely that "
- "TestExtensionSystem is failing to provide an instance of "
- "ApiResourceManager<Socket>.";
- return manager_ != NULL;
- }
-
- virtual int Add(Socket *socket) OVERRIDE {
- // Note: Cast needed here, because "T" may be a subclass of "Socket".
- return manager_->Add(static_cast<T*>(socket));
- }
-
- virtual Socket* Get(const std::string& extension_id,
- int api_resource_id) OVERRIDE {
- return manager_->Get(extension_id, api_resource_id);
- }
-
- virtual void Remove(const std::string& extension_id,
- int api_resource_id) OVERRIDE {
- manager_->Remove(extension_id, api_resource_id);
- }
-
- virtual base::hash_set<int>* GetResourceIds(
- const std::string& extension_id) OVERRIDE {
- return manager_->GetResourceIds(extension_id);
- }
-
- private:
- ApiResourceManager<T>* manager_;
-};
-
-class SocketAsyncApiFunction : public AsyncApiFunction {
- public:
- SocketAsyncApiFunction();
-
- protected:
- virtual ~SocketAsyncApiFunction();
-
- // AsyncApiFunction:
- virtual bool PrePrepare() OVERRIDE;
- virtual bool Respond() OVERRIDE;
-
- virtual scoped_ptr<SocketResourceManagerInterface>
- CreateSocketResourceManager();
-
- int AddSocket(Socket* socket);
- Socket* GetSocket(int api_resource_id);
- void RemoveSocket(int api_resource_id);
- base::hash_set<int>* GetSocketIds();
-
- private:
- scoped_ptr<SocketResourceManagerInterface> manager_;
-};
-
-class SocketExtensionWithDnsLookupFunction : public SocketAsyncApiFunction {
- protected:
- SocketExtensionWithDnsLookupFunction();
- virtual ~SocketExtensionWithDnsLookupFunction();
-
- // AsyncApiFunction:
- virtual bool PrePrepare() OVERRIDE;
-
- void StartDnsLookup(const std::string& hostname);
- virtual void AfterDnsLookup(int lookup_result) = 0;
-
- std::string resolved_address_;
-
- private:
- void OnDnsLookup(int resolve_result);
-
- // Weak pointer to the resource context.
- content::ResourceContext* resource_context_;
-
- scoped_ptr<net::HostResolver::RequestHandle> request_handle_;
- scoped_ptr<net::AddressList> addresses_;
-};
-
-class SocketCreateFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.create", SOCKET_CREATE)
-
- SocketCreateFunction();
-
- protected:
- virtual ~SocketCreateFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- FRIEND_TEST_ALL_PREFIXES(SocketUnitTest, Create);
- enum SocketType {
- kSocketTypeInvalid = -1,
- kSocketTypeTCP,
- kSocketTypeUDP
- };
-
- scoped_ptr<api::socket::Create::Params> params_;
- SocketType socket_type_;
-};
-
-class SocketDestroyFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.destroy", SOCKET_DESTROY)
-
- protected:
- virtual ~SocketDestroyFunction() {}
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- int socket_id_;
-};
-
-class SocketConnectFunction : public SocketExtensionWithDnsLookupFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.connect", SOCKET_CONNECT)
-
- SocketConnectFunction();
-
- protected:
- virtual ~SocketConnectFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void AsyncWorkStart() OVERRIDE;
-
- // SocketExtensionWithDnsLookupFunction:
- virtual void AfterDnsLookup(int lookup_result) OVERRIDE;
-
- private:
- void StartConnect();
- void OnConnect(int result);
-
- int socket_id_;
- std::string hostname_;
- int port_;
- Socket* socket_;
-};
-
-class SocketDisconnectFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.disconnect", SOCKET_DISCONNECT)
-
- protected:
- virtual ~SocketDisconnectFunction() {}
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- int socket_id_;
-};
-
-class SocketBindFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.bind", SOCKET_BIND)
-
- protected:
- virtual ~SocketBindFunction() {}
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- int socket_id_;
- std::string address_;
- int port_;
-};
-
-class SocketListenFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.listen", SOCKET_LISTEN)
-
- SocketListenFunction();
-
- protected:
- virtual ~SocketListenFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::Listen::Params> params_;
-};
-
-class SocketAcceptFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.accept", 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::socket::Accept::Params> params_;
-};
-
-class SocketReadFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.read", SOCKET_READ)
-
- SocketReadFunction();
-
- protected:
- virtual ~SocketReadFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void AsyncWorkStart() OVERRIDE;
- void OnCompleted(int result, scoped_refptr<net::IOBuffer> io_buffer);
-
- private:
- scoped_ptr<api::socket::Read::Params> params_;
-};
-
-class SocketWriteFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.write", SOCKET_WRITE)
-
- SocketWriteFunction();
-
- protected:
- virtual ~SocketWriteFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void AsyncWorkStart() OVERRIDE;
- void OnCompleted(int result);
-
- private:
- int socket_id_;
- scoped_refptr<net::IOBuffer> io_buffer_;
- size_t io_buffer_size_;
-};
-
-class SocketRecvFromFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.recvFrom", SOCKET_RECVFROM)
-
- SocketRecvFromFunction();
-
- protected:
- virtual ~SocketRecvFromFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void AsyncWorkStart() OVERRIDE;
- void OnCompleted(int result,
- scoped_refptr<net::IOBuffer> io_buffer,
- const std::string& address,
- int port);
-
- private:
- scoped_ptr<api::socket::RecvFrom::Params> params_;
-};
-
-class SocketSendToFunction : public SocketExtensionWithDnsLookupFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.sendTo", SOCKET_SENDTO)
-
- SocketSendToFunction();
-
- protected:
- virtual ~SocketSendToFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void AsyncWorkStart() OVERRIDE;
- void OnCompleted(int result);
-
- // SocketExtensionWithDnsLookupFunction:
- virtual void AfterDnsLookup(int lookup_result) OVERRIDE;
-
- private:
- void StartSendTo();
-
- int socket_id_;
- scoped_refptr<net::IOBuffer> io_buffer_;
- size_t io_buffer_size_;
- std::string hostname_;
- int port_;
- Socket* socket_;
-};
-
-class SocketSetKeepAliveFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.setKeepAlive", SOCKET_SETKEEPALIVE)
-
- SocketSetKeepAliveFunction();
-
- protected:
- virtual ~SocketSetKeepAliveFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::SetKeepAlive::Params> params_;
-};
-
-class SocketSetNoDelayFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.setNoDelay", SOCKET_SETNODELAY)
-
- SocketSetNoDelayFunction();
-
- protected:
- virtual ~SocketSetNoDelayFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::SetNoDelay::Params> params_;
-};
-
-class SocketGetInfoFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.getInfo", SOCKET_GETINFO)
-
- SocketGetInfoFunction();
-
- protected:
- virtual ~SocketGetInfoFunction();
-
- // AsyncApiFunction:
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::GetInfo::Params> params_;
-};
-
-class SocketGetNetworkListFunction : public AsyncExtensionFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.getNetworkList", SOCKET_GETNETWORKLIST)
-
- protected:
- virtual ~SocketGetNetworkListFunction() {}
- virtual bool RunImpl() OVERRIDE;
-
- private:
- void GetNetworkListOnFileThread();
- void HandleGetNetworkListError();
- void SendResponseOnUIThread(const net::NetworkInterfaceList& interface_list);
-};
-
-class SocketJoinGroupFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.joinGroup", SOCKET_MULTICAST_JOIN_GROUP)
-
- SocketJoinGroupFunction();
-
- protected:
- virtual ~SocketJoinGroupFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::JoinGroup::Params> params_;
-};
-
-class SocketLeaveGroupFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.leaveGroup", SOCKET_MULTICAST_LEAVE_GROUP)
-
- SocketLeaveGroupFunction();
-
- protected:
- virtual ~SocketLeaveGroupFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::LeaveGroup::Params> params_;
-};
-
-class SocketSetMulticastTimeToLiveFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.setMulticastTimeToLive",
- SOCKET_MULTICAST_SET_TIME_TO_LIVE)
-
- SocketSetMulticastTimeToLiveFunction();
-
- protected:
- virtual ~SocketSetMulticastTimeToLiveFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::SetMulticastTimeToLive::Params> params_;
-};
-
-class SocketSetMulticastLoopbackModeFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.setMulticastLoopbackMode",
- SOCKET_MULTICAST_SET_LOOPBACK_MODE)
-
- SocketSetMulticastLoopbackModeFunction();
-
- protected:
- virtual ~SocketSetMulticastLoopbackModeFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::SetMulticastLoopbackMode::Params> params_;
-};
-
-class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction {
- public:
- DECLARE_EXTENSION_FUNCTION("socket.getJoinedGroups",
- SOCKET_MULTICAST_GET_JOINED_GROUPS)
-
- SocketGetJoinedGroupsFunction();
-
- protected:
- virtual ~SocketGetJoinedGroupsFunction();
-
- // AsyncApiFunction
- virtual bool Prepare() OVERRIDE;
- virtual void Work() OVERRIDE;
-
- private:
- scoped_ptr<api::socket::GetJoinedGroups::Params> params_;
-};
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_

Powered by Google App Engine
This is Rietveld 408576698