| 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 c52bf6dd5ce64ca386efad81e0396d4e05ac32cc..fc1362a1394bbba8f335d88622c5f1200e3a2508 100644
|
| --- a/chrome/browser/extensions/api/socket/socket_api.h
|
| +++ b/chrome/browser/extensions/api/socket/socket_api.h
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// 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.
|
|
|
| @@ -21,10 +21,12 @@ class IOThread;
|
|
|
| namespace net {
|
| class IOBuffer;
|
| +class URLRequestContextGetter;
|
| +class SSLClientSocket;
|
| }
|
|
|
| namespace extensions {
|
| -
|
| +class TLSSocket;
|
| class Socket;
|
|
|
| // A simple interface to ApiResourceManager<Socket> or derived class. The goal
|
| @@ -41,6 +43,9 @@ class SocketResourceManagerInterface {
|
| int api_resource_id) = 0;
|
| virtual void Remove(const std::string& extension_id,
|
| int api_resource_id) = 0;
|
| + virtual void Replace(const std::string& extension_id,
|
| + int api_resource_id,
|
| + Socket* socket) = 0;
|
| virtual base::hash_set<int>* GetResourceIds(
|
| const std::string& extension_id) = 0;
|
| };
|
| @@ -73,6 +78,12 @@ class SocketResourceManager : public SocketResourceManagerInterface {
|
| return manager_->Get(extension_id, api_resource_id);
|
| }
|
|
|
| + virtual void Replace(const std::string& extension_id,
|
| + int api_resource_id,
|
| + Socket* socket) OVERRIDE {
|
| + manager_->Replace(extension_id, api_resource_id, static_cast<T*>(socket));
|
| + }
|
| +
|
| virtual void Remove(const std::string& extension_id,
|
| int api_resource_id) OVERRIDE {
|
| manager_->Remove(extension_id, api_resource_id);
|
| @@ -103,6 +114,7 @@ class SocketAsyncApiFunction : public AsyncApiFunction {
|
|
|
| int AddSocket(Socket* socket);
|
| Socket* GetSocket(int api_resource_id);
|
| + void ReplaceSocket(int api_resource_id, Socket* socket);
|
| void RemoveSocket(int api_resource_id);
|
| base::hash_set<int>* GetSocketIds();
|
|
|
| @@ -504,6 +516,29 @@ class SocketGetJoinedGroupsFunction : public SocketAsyncApiFunction {
|
| private:
|
| scoped_ptr<api::socket::GetJoinedGroups::Params> params_;
|
| };
|
| +
|
| +class SocketSecureFunction : public SocketAsyncApiFunction {
|
| + public:
|
| + DECLARE_EXTENSION_FUNCTION("socket.secure", SOCKET_SECURE);
|
| + SocketSecureFunction();
|
| +
|
| + protected:
|
| + virtual ~SocketSecureFunction();
|
| +
|
| + // AsyncApiFunction
|
| + virtual bool Prepare() OVERRIDE;
|
| + virtual void AsyncWorkStart() OVERRIDE;
|
| +
|
| + private:
|
| + // Callback from TLSSocket::UpgradeSocketToTLS().
|
| + void TlsConnectDone(scoped_ptr<TLSSocket> socket, int result);
|
| +
|
| + scoped_ptr<api::socket::Secure::Params> params_;
|
| + scoped_refptr<net::URLRequestContextGetter> url_request_getter_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SocketSecureFunction);
|
| +};
|
| +
|
| } // namespace extensions
|
|
|
| #endif // CHROME_BROWSER_EXTENSIONS_API_SOCKET_SOCKET_API_H_
|
|
|