| 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_
|
|
|