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

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

Issue 76403004: An implementation of chrome.socket.secure(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed, @rsleevi's comments, added a new TLS test, further separated TLS and TCP tests, and reba… 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: extensions/browser/api/socket/socket.h
diff --git a/extensions/browser/api/socket/socket.h b/extensions/browser/api/socket/socket.h
index 9ae45e7ac1dcff4754b601e87fd4bf50a152de41..c386342dc80cd2619c76faed2d00d8bddb858580 100644
--- a/extensions/browser/api/socket/socket.h
+++ b/extensions/browser/api/socket/socket.h
@@ -39,9 +39,17 @@ typedef base::Callback<void(int, net::TCPClientSocket*)>
// 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; }
Ryan Sleevi 2014/03/26 19:57:40 Seems like the comment from 111-114 should be move
lally 2014/03/28 16:22:51 Done.
+
+ // 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;
@@ -100,7 +108,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
+ // a series of U-LABELs (UTF-8), not A-LABELs. IP literals for IPv6 will
+ // be unbracketed.
+ std::string hostname_;
bool is_connected_;
private:

Powered by Google App Engine
This is Rietveld 408576698