OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/gtk/certificate_viewer.h" | 5 #include "chrome/browser/ui/gtk/certificate_viewer.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <vector> | 10 #include <vector> |
(...skipping 26 matching lines...) Expand all Loading... |
37 row, row + 1); | 37 row, row + 1); |
38 } | 38 } |
39 | 39 |
40 void AddKeyValue(GtkTable* table, int row, const std::string& text, | 40 void AddKeyValue(GtkTable* table, int row, const std::string& text, |
41 const std::string& value) { | 41 const std::string& value) { |
42 gtk_table_attach_defaults( | 42 gtk_table_attach_defaults( |
43 table, | 43 table, |
44 gtk_util::IndentWidget( | 44 gtk_util::IndentWidget( |
45 gtk_util::LeftAlignMisc(gtk_label_new(text.c_str()))), | 45 gtk_util::LeftAlignMisc(gtk_label_new(text.c_str()))), |
46 0, 1, row, row + 1); | 46 0, 1, row, row + 1); |
| 47 GtkWidget* label = gtk_label_new(value.c_str()); |
| 48 gtk_label_set_selectable(GTK_LABEL(label), TRUE); |
47 gtk_table_attach_defaults( | 49 gtk_table_attach_defaults( |
48 table, | 50 table, |
49 gtk_util::LeftAlignMisc(gtk_label_new(value.c_str())), | 51 gtk_util::LeftAlignMisc(label), |
50 1, 2, row, row + 1); | 52 1, 2, row, row + 1); |
51 } | 53 } |
52 | 54 |
53 //////////////////////////////////////////////////////////////////////////////// | 55 //////////////////////////////////////////////////////////////////////////////// |
54 // CertificateViewer class definition. | 56 // CertificateViewer class definition. |
55 | 57 |
56 class CertificateViewer { | 58 class CertificateViewer { |
57 public: | 59 public: |
58 CertificateViewer(gfx::NativeWindow parent, | 60 CertificateViewer(gfx::NativeWindow parent, |
59 const net::X509Certificate::OSCertHandles& cert_chain_list); | 61 const net::X509Certificate::OSCertHandles& cert_chain_list); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 gtk_label_new_with_mnemonic( | 172 gtk_label_new_with_mnemonic( |
171 gfx::ConvertAcceleratorsFromWindowsStyle( | 173 gfx::ConvertAcceleratorsFromWindowsStyle( |
172 l10n_util::GetStringUTF8( | 174 l10n_util::GetStringUTF8( |
173 IDS_CERT_INFO_DETAILS_TAB_LABEL)).c_str())); | 175 IDS_CERT_INFO_DETAILS_TAB_LABEL)).c_str())); |
174 | 176 |
175 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), NULL); | 177 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), NULL); |
176 g_signal_connect(dialog_, "destroy", G_CALLBACK(OnDestroy), this); | 178 g_signal_connect(dialog_, "destroy", G_CALLBACK(OnDestroy), this); |
177 } | 179 } |
178 | 180 |
179 CertificateViewer::~CertificateViewer() { | 181 CertificateViewer::~CertificateViewer() { |
180 x509_certificate_model::DestroyCertChain(&cert_chain_list_); | 182 net::X509Certificate::DestroyCertChain(&cert_chain_list_); |
181 } | 183 } |
182 | 184 |
183 void CertificateViewer::InitGeneralPage() { | 185 void CertificateViewer::InitGeneralPage() { |
184 net::X509Certificate::OSCertHandle cert = cert_chain_list_.front(); | 186 net::X509Certificate::OSCertHandle cert = cert_chain_list_.front(); |
185 general_page_vbox_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); | 187 general_page_vbox_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); |
186 gtk_container_set_border_width(GTK_CONTAINER(general_page_vbox_), | 188 gtk_container_set_border_width(GTK_CONTAINER(general_page_vbox_), |
187 gtk_util::kContentAreaBorder); | 189 gtk_util::kContentAreaBorder); |
188 | 190 |
189 GtkWidget* uses_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); | 191 GtkWidget* uses_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); |
190 gtk_box_pack_start(GTK_BOX(general_page_vbox_), uses_vbox, FALSE, FALSE, 0); | 192 gtk_box_pack_start(GTK_BOX(general_page_vbox_), uses_vbox, FALSE, FALSE, 0); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 -1); | 480 -1); |
479 | 481 |
480 gtk_tree_store_append(store, &iter, &top); | 482 gtk_tree_store_append(store, &iter, &top); |
481 gtk_tree_store_set( | 483 gtk_tree_store_set( |
482 store, &iter, | 484 store, &iter, |
483 FIELDS_NAME, | 485 FIELDS_NAME, |
484 l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_VALUE).c_str(), | 486 l10n_util::GetStringUTF8(IDS_CERT_DETAILS_CERTIFICATE_SIG_VALUE).c_str(), |
485 FIELDS_VALUE, | 487 FIELDS_VALUE, |
486 x509_certificate_model::ProcessRawBitsSignatureWrap(cert).c_str(), | 488 x509_certificate_model::ProcessRawBitsSignatureWrap(cert).c_str(), |
487 -1); | 489 -1); |
| 490 |
| 491 GtkTreeIter top_fingerprints_iter; |
| 492 gtk_tree_store_append(store, &top_fingerprints_iter, &top); |
| 493 gtk_tree_store_set( |
| 494 store, &top_fingerprints_iter, |
| 495 FIELDS_NAME, |
| 496 l10n_util::GetStringUTF8(IDS_CERT_INFO_FINGERPRINTS_GROUP).c_str(), |
| 497 FIELDS_VALUE, "", |
| 498 -1); |
| 499 |
| 500 GtkTreeIter fingerprints_iter; |
| 501 gtk_tree_store_append(store, &fingerprints_iter, &top_fingerprints_iter); |
| 502 gtk_tree_store_set( |
| 503 store, &fingerprints_iter, |
| 504 FIELDS_NAME, |
| 505 l10n_util::GetStringUTF8(IDS_CERT_INFO_SHA256_FINGERPRINT_LABEL).c_str(), |
| 506 FIELDS_VALUE, x509_certificate_model::HashCertSHA256(cert).c_str(), |
| 507 -1); |
| 508 |
| 509 gtk_tree_store_append(store, &fingerprints_iter, &top_fingerprints_iter); |
| 510 gtk_tree_store_set( |
| 511 store, &fingerprints_iter, |
| 512 FIELDS_NAME, |
| 513 l10n_util::GetStringUTF8(IDS_CERT_INFO_SHA1_FINGERPRINT_LABEL).c_str(), |
| 514 FIELDS_VALUE, x509_certificate_model::HashCertSHA1(cert).c_str(), |
| 515 -1); |
488 } | 516 } |
489 | 517 |
490 // static | 518 // static |
491 GtkTreeStore* CertificateViewer::CreateFieldsTreeStore( | 519 GtkTreeStore* CertificateViewer::CreateFieldsTreeStore( |
492 net::X509Certificate::OSCertHandle cert) { | 520 net::X509Certificate::OSCertHandle cert) { |
493 GtkTreeStore* fields_store = gtk_tree_store_new(FIELDS_COLUMNS, G_TYPE_STRING, | 521 GtkTreeStore* fields_store = gtk_tree_store_new(FIELDS_COLUMNS, G_TYPE_STRING, |
494 G_TYPE_STRING); | 522 G_TYPE_STRING); |
495 FillTreeStoreWithCertFields(fields_store, cert); | 523 FillTreeStoreWithCertFields(fields_store, cert); |
496 return fields_store; | 524 return fields_store; |
497 } | 525 } |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 | 704 |
677 void CertificateViewer::Show() { | 705 void CertificateViewer::Show() { |
678 gtk_util::ShowDialog(dialog_); | 706 gtk_util::ShowDialog(dialog_); |
679 } | 707 } |
680 | 708 |
681 } // namespace | 709 } // namespace |
682 | 710 |
683 void ShowCertificateViewer(gfx::NativeWindow parent, | 711 void ShowCertificateViewer(gfx::NativeWindow parent, |
684 net::X509Certificate::OSCertHandle cert) { | 712 net::X509Certificate::OSCertHandle cert) { |
685 net::X509Certificate::OSCertHandles cert_chain; | 713 net::X509Certificate::OSCertHandles cert_chain; |
686 x509_certificate_model::GetCertChainFromCert(cert, &cert_chain); | 714 net::X509Certificate::GetCertChainFromCert(cert, &cert_chain); |
687 (new CertificateViewer(parent, cert_chain))->Show(); | 715 (new CertificateViewer(parent, cert_chain))->Show(); |
688 } | 716 } |
689 | 717 |
690 void ShowCertificateViewer(gfx::NativeWindow parent, | 718 void ShowCertificateViewer(gfx::NativeWindow parent, |
691 net::X509Certificate* cert) { | 719 net::X509Certificate* cert) { |
692 ShowCertificateViewer(parent, cert->os_cert_handle()); | 720 ShowCertificateViewer(parent, cert->os_cert_handle()); |
693 } | 721 } |
OLD | NEW |