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

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

Issue 76403004: An implementation of chrome.socket.secure(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added a check on whether the socket to be TLS'd has a pending read. Created 6 years, 10 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.h
diff --git a/chrome/browser/extensions/api/socket/socket.h b/chrome/browser/extensions/api/socket/socket.h
index 2e73cb0d1fee27a496af8b9d77ca2f0a4391b8e5..4ac2fc92c17416c211b10f0bf7a71aa1c344c784 100644
--- a/chrome/browser/extensions/api/socket/socket.h
+++ b/chrome/browser/extensions/api/socket/socket.h
@@ -39,12 +39,17 @@ typedef base::Callback<
// we need to manage it in the context of an extension.
class Socket : public ApiResource {
public:
- enum SocketType {
- TYPE_TCP,
- TYPE_UDP,
- };
+ enum SocketType { TYPE_TCP, TYPE_UDP, TYPE_TLS };
virtual ~Socket();
+
+ const std::string& hostname() const { return hostname_; }
+
+ void set_hostname(const std::string& hostname) { hostname_ = hostname; }
+
+ // Note: |address| contains the resolved IP address, not the hostname of
+ // the remote endpoint. In order to upgrade this socket to TLS, callers
+ // must also supply the hostname of the endpoint via |set_hostname()|.
virtual void Connect(const std::string& address,
int port,
const CompletionCallback& callback) = 0;
@@ -102,7 +107,11 @@ class Socket : public ApiResource {
const net::CompletionCallback& callback) = 0;
virtual void OnWriteComplete(int result);
- const std::string address_;
+ // The hostname of the remote host that this socket is connected to. Note:
+ // This may contain an IP literal. In the case of IDNs, this will contain
Ryan Sleevi 2014/03/12 23:35:27 nit
lally 2014/03/17 01:58:06 Done.
+ // a series of U-LABELs (UTF-8), not A-LABELs. IP literals for IPv6 will
Ryan Sleevi 2014/03/12 23:35:27 nit
lally 2014/03/17 01:58:06 Done.
+ // be unbracketed.
+ std::string hostname_;
bool is_connected_;
private:

Powered by Google App Engine
This is Rietveld 408576698