Index: chrome/browser/renderer_host/resource_message_filter.cc |
diff --git a/chrome/browser/renderer_host/resource_message_filter.cc b/chrome/browser/renderer_host/resource_message_filter.cc |
index d356f7820bd2523f11fa527664013ae45ff43037..8640f6cfa48e1cd498ce24c712546856b3aed4c9 100644 |
--- a/chrome/browser/renderer_host/resource_message_filter.cc |
+++ b/chrome/browser/renderer_host/resource_message_filter.cc |
@@ -54,6 +54,9 @@ |
#include "chrome/browser/speech/speech_input_dispatcher_host.h" |
#include "chrome/browser/spellchecker_platform_engine.h" |
#include "chrome/browser/task_manager/task_manager.h" |
+#if defined(USE_NSS) |
+#include "chrome/browser/ui/pk11_password_dialog.h" |
+#endif // defined(USE_NSS) |
#include "chrome/browser/worker_host/message_port_dispatcher.h" |
#include "chrome/browser/worker_host/worker_service.h" |
#include "chrome/common/chrome_switches.h" |
@@ -1592,6 +1595,13 @@ void ResourceMessageFilter::OnKeygenOnWorkerThread( |
// Generate a signed public key and challenge, then send it back. |
net::KeygenHandler keygen_handler(key_size_in_bits, challenge_string, url); |
+#if defined(USE_NSS) |
+ // Attach a password delegate so we can authenticate. |
+ keygen_handler.set_pk11_password_delegate( |
+ browser::NewPK11BlockingDialogDelegate(browser::kPK11PasswordKeygen, |
+ url.host())); |
+#endif // defined(USE_NSS) |
+ |
ViewHostMsg_Keygen::WriteReplyParams( |
reply_msg, |
keygen_handler.GenKeyAndSignChallenge()); |