| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/crypto_module_password_dialog.h" | 5 #include "chrome/browser/ui/crypto_module_password_dialog.h" |
| 6 | 6 |
| 7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "chrome/browser/ui/gtk/gtk_util.h" | 11 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 12 #include "crypto/crypto_module_blocking_password_delegate.h" | 12 #include "crypto/crypto_module_blocking_password_delegate.h" |
| 13 #include "googleurl/src/gurl.h" | 13 #include "googleurl/src/gurl.h" |
| 14 #include "grit/generated_resources.h" | 14 #include "grit/generated_resources.h" |
| 15 #include "ui/base/gtk/gtk_hig_constants.h" | 15 #include "ui/base/gtk/gtk_hig_constants.h" |
| 16 #include "ui/base/gtk/gtk_signal.h" | 16 #include "ui/base/gtk/gtk_signal.h" |
| 17 #include "ui/base/l10n/l10n_util.h" | 17 #include "ui/base/l10n/l10n_util.h" |
| 18 | 18 |
| 19 namespace { | 19 namespace { |
| 20 | 20 |
| 21 // TODO(mattm): change into a constrained dialog. | 21 // TODO(mattm): change into a constrained dialog. |
| 22 class CryptoModulePasswordDialog { | 22 class CryptoModulePasswordDialog { |
| 23 public: | 23 public: |
| 24 CryptoModulePasswordDialog( | 24 CryptoModulePasswordDialog( |
| 25 const std::string& slot_name, | 25 const std::string& slot_name, |
| 26 bool retry, | 26 bool retry, |
| 27 browser::CryptoModulePasswordReason reason, | 27 chrome::CryptoModulePasswordReason reason, |
| 28 const std::string& server, | 28 const std::string& server, |
| 29 const browser::CryptoModulePasswordCallback& callback); | 29 const chrome::CryptoModulePasswordCallback& callback); |
| 30 | 30 |
| 31 ~CryptoModulePasswordDialog() {} | 31 ~CryptoModulePasswordDialog() {} |
| 32 | 32 |
| 33 void Show(); | 33 void Show(); |
| 34 | 34 |
| 35 private: | 35 private: |
| 36 CHROMEGTK_CALLBACK_1(CryptoModulePasswordDialog, void, OnResponse, int); | 36 CHROMEGTK_CALLBACK_1(CryptoModulePasswordDialog, void, OnResponse, int); |
| 37 CHROMEGTK_CALLBACK_0(CryptoModulePasswordDialog, void, OnWindowDestroy); | 37 CHROMEGTK_CALLBACK_0(CryptoModulePasswordDialog, void, OnWindowDestroy); |
| 38 | 38 |
| 39 browser::CryptoModulePasswordCallback callback_; | 39 chrome::CryptoModulePasswordCallback callback_; |
| 40 | 40 |
| 41 GtkWidget* dialog_; | 41 GtkWidget* dialog_; |
| 42 GtkWidget* password_entry_; | 42 GtkWidget* password_entry_; |
| 43 | 43 |
| 44 DISALLOW_COPY_AND_ASSIGN(CryptoModulePasswordDialog); | 44 DISALLOW_COPY_AND_ASSIGN(CryptoModulePasswordDialog); |
| 45 }; | 45 }; |
| 46 | 46 |
| 47 CryptoModulePasswordDialog::CryptoModulePasswordDialog( | 47 CryptoModulePasswordDialog::CryptoModulePasswordDialog( |
| 48 const std::string& slot_name, | 48 const std::string& slot_name, |
| 49 bool retry, | 49 bool retry, |
| 50 browser::CryptoModulePasswordReason reason, | 50 chrome::CryptoModulePasswordReason reason, |
| 51 const std::string& server, | 51 const std::string& server, |
| 52 const browser::CryptoModulePasswordCallback& callback) | 52 const chrome::CryptoModulePasswordCallback& callback) |
| 53 : callback_(callback) { | 53 : callback_(callback) { |
| 54 dialog_ = gtk_dialog_new_with_buttons( | 54 dialog_ = gtk_dialog_new_with_buttons( |
| 55 l10n_util::GetStringUTF8(IDS_CRYPTO_MODULE_AUTH_DIALOG_TITLE).c_str(), | 55 l10n_util::GetStringUTF8(IDS_CRYPTO_MODULE_AUTH_DIALOG_TITLE).c_str(), |
| 56 NULL, | 56 NULL, |
| 57 GTK_DIALOG_NO_SEPARATOR, | 57 GTK_DIALOG_NO_SEPARATOR, |
| 58 NULL); // Populate the buttons later, for control over the OK button. | 58 NULL); // Populate the buttons later, for control over the OK button. |
| 59 gtk_dialog_add_button(GTK_DIALOG(dialog_), | 59 gtk_dialog_add_button(GTK_DIALOG(dialog_), |
| 60 GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); | 60 GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT); |
| 61 GtkWidget* ok_button = gtk_util::AddButtonToDialog( | 61 GtkWidget* ok_button = gtk_util::AddButtonToDialog( |
| 62 dialog_, | 62 dialog_, |
| 63 l10n_util::GetStringUTF8( | 63 l10n_util::GetStringUTF8( |
| 64 IDS_CRYPTO_MODULE_AUTH_DIALOG_OK_BUTTON_LABEL).c_str(), | 64 IDS_CRYPTO_MODULE_AUTH_DIALOG_OK_BUTTON_LABEL).c_str(), |
| 65 GTK_STOCK_OK, | 65 GTK_STOCK_OK, |
| 66 GTK_RESPONSE_ACCEPT); | 66 GTK_RESPONSE_ACCEPT); |
| 67 gtk_widget_set_can_default(ok_button, TRUE); | 67 gtk_widget_set_can_default(ok_button, TRUE); |
| 68 gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT); | 68 gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT); |
| 69 | 69 |
| 70 // Select an appropriate text for the reason. | 70 // Select an appropriate text for the reason. |
| 71 std::string text; | 71 std::string text; |
| 72 const string16& server16 = UTF8ToUTF16(server); | 72 const string16& server16 = UTF8ToUTF16(server); |
| 73 const string16& slot16 = UTF8ToUTF16(slot_name); | 73 const string16& slot16 = UTF8ToUTF16(slot_name); |
| 74 switch (reason) { | 74 switch (reason) { |
| 75 case browser::kCryptoModulePasswordKeygen: | 75 case chrome::kCryptoModulePasswordKeygen: |
| 76 text = l10n_util::GetStringFUTF8( | 76 text = l10n_util::GetStringFUTF8( |
| 77 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_KEYGEN, slot16, server16); | 77 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_KEYGEN, slot16, server16); |
| 78 break; | 78 break; |
| 79 case browser::kCryptoModulePasswordCertEnrollment: | 79 case chrome::kCryptoModulePasswordCertEnrollment: |
| 80 text = l10n_util::GetStringFUTF8( | 80 text = l10n_util::GetStringFUTF8( |
| 81 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_ENROLLMENT, slot16, server16); | 81 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_ENROLLMENT, slot16, server16); |
| 82 break; | 82 break; |
| 83 case browser::kCryptoModulePasswordClientAuth: | 83 case chrome::kCryptoModulePasswordClientAuth: |
| 84 text = l10n_util::GetStringFUTF8( | 84 text = l10n_util::GetStringFUTF8( |
| 85 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CLIENT_AUTH, slot16, server16); | 85 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CLIENT_AUTH, slot16, server16); |
| 86 break; | 86 break; |
| 87 case browser::kCryptoModulePasswordListCerts: | 87 case chrome::kCryptoModulePasswordListCerts: |
| 88 text = l10n_util::GetStringFUTF8( | 88 text = l10n_util::GetStringFUTF8( |
| 89 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_LIST_CERTS, slot16); | 89 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_LIST_CERTS, slot16); |
| 90 break; | 90 break; |
| 91 case browser::kCryptoModulePasswordCertImport: | 91 case chrome::kCryptoModulePasswordCertImport: |
| 92 text = l10n_util::GetStringFUTF8( | 92 text = l10n_util::GetStringFUTF8( |
| 93 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_IMPORT, slot16); | 93 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_IMPORT, slot16); |
| 94 break; | 94 break; |
| 95 case browser::kCryptoModulePasswordCertExport: | 95 case chrome::kCryptoModulePasswordCertExport: |
| 96 text = l10n_util::GetStringFUTF8( | 96 text = l10n_util::GetStringFUTF8( |
| 97 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_EXPORT, slot16); | 97 IDS_CRYPTO_MODULE_AUTH_DIALOG_TEXT_CERT_EXPORT, slot16); |
| 98 break; | 98 break; |
| 99 default: | 99 default: |
| 100 NOTREACHED(); | 100 NOTREACHED(); |
| 101 } | 101 } |
| 102 GtkWidget* label = gtk_label_new(text.c_str()); | 102 GtkWidget* label = gtk_label_new(text.c_str()); |
| 103 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 103 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 104 gtk_util::LeftAlignMisc(label); | 104 gtk_util::LeftAlignMisc(label); |
| 105 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_)->vbox), label, | 105 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_)->vbox), label, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 gtk_editable_delete_text(GTK_EDITABLE(password_entry_), 0, -1); | 143 gtk_editable_delete_text(GTK_EDITABLE(password_entry_), 0, -1); |
| 144 gtk_widget_destroy(dialog_); | 144 gtk_widget_destroy(dialog_); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void CryptoModulePasswordDialog::OnWindowDestroy(GtkWidget* widget) { | 147 void CryptoModulePasswordDialog::OnWindowDestroy(GtkWidget* widget) { |
| 148 delete this; | 148 delete this; |
| 149 } | 149 } |
| 150 | 150 |
| 151 } // namespace | 151 } // namespace |
| 152 | 152 |
| 153 namespace browser { | 153 namespace chrome { |
| 154 | 154 |
| 155 void ShowCryptoModulePasswordDialog( | 155 void ShowCryptoModulePasswordDialog( |
| 156 const std::string& slot_name, | 156 const std::string& slot_name, |
| 157 bool retry, | 157 bool retry, |
| 158 CryptoModulePasswordReason reason, | 158 CryptoModulePasswordReason reason, |
| 159 const std::string& server, | 159 const std::string& server, |
| 160 const CryptoModulePasswordCallback& callback) { | 160 const CryptoModulePasswordCallback& callback) { |
| 161 (new CryptoModulePasswordDialog(slot_name, retry, reason, server, | 161 (new CryptoModulePasswordDialog(slot_name, retry, reason, server, |
| 162 callback))->Show(); | 162 callback))->Show(); |
| 163 } | 163 } |
| 164 | 164 |
| 165 } // namespace browser | 165 } // namespace chrome |
| OLD | NEW |