Index: content/browser/renderer_host/x509_user_cert_resource_handler.cc |
=================================================================== |
--- content/browser/renderer_host/x509_user_cert_resource_handler.cc (revision 75583) |
+++ content/browser/renderer_host/x509_user_cert_resource_handler.cc (working copy) |
@@ -15,8 +15,11 @@ |
#include "net/base/mime_sniffer.h" |
#include "net/base/mime_util.h" |
#include "net/base/x509_certificate.h" |
+#include "net/http/http_network_session.h" |
#include "net/http/http_response_headers.h" |
+#include "net/http/http_transaction_factory.h" |
#include "net/url_request/url_request.h" |
+#include "net/url_request/url_request_context.h" |
#include "net/url_request/url_request_status.h" |
X509UserCertResourceHandler::X509UserCertResourceHandler( |
@@ -107,6 +110,13 @@ |
// The handler will run the UI and delete itself when it's finished. |
new SSLAddCertHandler(request_, cert, render_process_host_id_, |
render_view_id_); |
+ // Force all new SSL connects to renegotiate, and hence use this new |
+ // certificate if necessary. |
+ if (request_->context()->http_transaction_factory()) { |
+ net::HttpNetworkSession* session = |
+ request_->context()->http_transaction_factory()->GetSession(); |
+ session->ResetSSLState(); |
wtc
2011/02/23 00:38:38
I think it's better to call session->ResetSSLState
|
+ } |
return true; |
} |