Index: net/url_request/url_request.h |
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h |
index 3f399a658831a9933b418e31e956e75e6a4f65b0..e7c2c8b0219b80967dd0e4d9bd90f33653bddfea 100644 |
--- a/net/url_request/url_request.h |
+++ b/net/url_request/url_request.h |
@@ -10,6 +10,7 @@ |
#include <string> |
#include <vector> |
+#include "net/base/auth.h" |
#include "base/debug/leak_tracker.h" |
#include "base/linked_ptr.h" |
#include "base/logging.h" |
@@ -122,6 +123,8 @@ class URLRequest : public base::NonThreadSafe { |
// requests a client certificate for authentication) |
// - OnSSLCertificateError* (zero or one call, if the SSL server's |
// certificate has an error) |
+ // - OnSSLAuthRequired* (zero or one call, if the SSL server requests |
+ // client login credentials for authentication) |
// - OnReceivedRedirect* (zero or more calls, for the number of redirects) |
// - OnAuthRequired* (zero or more calls, for the number of |
// authentication failures) |
@@ -167,6 +170,10 @@ class URLRequest : public base::NonThreadSafe { |
virtual void OnAuthRequired(URLRequest* request, |
net::AuthChallengeInfo* auth_info); |
+ // Called when we need to provide TLS client login credentials. |
+ virtual void OnTLSLoginRequired(URLRequest* request, |
+ net::AuthChallengeInfo* login_request_info); |
+ |
// Called when we receive an SSL CertificateRequest message for client |
// authentication. The delegate should call |
// request->ContinueWithCertificate() with the client certificate the user |
@@ -526,6 +533,15 @@ class URLRequest : public base::NonThreadSafe { |
// certificate. Pass NULL if the user doesn't have a client certificate. |
void ContinueWithCertificate(net::X509Certificate* client_cert); |
+ // One of the following two methods should be called in response to an |
+ // OnTLSLoginRequired() callback. |
+ void CancelTLSLogin(); |
+ void SetTLSLogin(const string16& username, |
+ const string16& password); |
+ AuthData* GetTLSLoginAuthData(); |
+ |
+ void ContinueWithTLSLogin(); |
+ |
// This method can be called after some error notifications to instruct this |
// URLRequest to ignore the current error and continue with the request. To |
// cancel the request instead, call Cancel(). |
@@ -652,6 +668,9 @@ class URLRequest : public base::NonThreadSafe { |
// this to determine which URLRequest to allocate sockets to first. |
net::RequestPriority priority_; |
+ // TLS login data. |
+ scoped_refptr<net::AuthData> tls_login_auth_data_; |
+ |
base::debug::LeakTracker<URLRequest> leak_tracker_; |
DISALLOW_COPY_AND_ASSIGN(URLRequest); |