Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: chrome/browser/ui/gtk/certificate_viewer.cc

Issue 7748026: content: Reapply "Start splitting up chrome/browser/ui/gtk/gtk_util.h" (r98287) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase on Monday. Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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>
11 11
12 #include "base/i18n/time_formatting.h" 12 #include "base/i18n/time_formatting.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
15 #include "base/time.h" 15 #include "base/time.h"
16 #include "base/utf_string_conversions.h" 16 #include "base/utf_string_conversions.h"
17 #include "chrome/browser/ui/gtk/certificate_dialogs.h" 17 #include "chrome/browser/ui/gtk/certificate_dialogs.h"
18 #include "chrome/browser/ui/gtk/gtk_util.h" 18 #include "chrome/browser/ui/gtk/gtk_util.h"
19 #include "chrome/common/net/x509_certificate_model.h" 19 #include "chrome/common/net/x509_certificate_model.h"
20 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
21 #include "net/base/x509_certificate.h" 21 #include "net/base/x509_certificate.h"
22 #include "ui/base/gtk/gtk_hig_constants.h"
22 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
23 #include "ui/gfx/gtk_util.h" 24 #include "ui/gfx/gtk_util.h"
24 25
25 namespace { 26 namespace {
26 27
27 const char kDetailsFontFamily[] = "monospace"; 28 const char kDetailsFontFamily[] = "monospace";
28 29
29 //////////////////////////////////////////////////////////////////////////////// 30 ////////////////////////////////////////////////////////////////////////////////
30 // Gtk utility functions. 31 // Gtk utility functions.
31 32
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 UTF8ToUTF16( 142 UTF8ToUTF16(
142 x509_certificate_model::GetTitle( 143 x509_certificate_model::GetTitle(
143 cert_chain_list_.front()))).c_str(), 144 cert_chain_list_.front()))).c_str(),
144 parent, 145 parent,
145 // Non-modal. 146 // Non-modal.
146 GTK_DIALOG_NO_SEPARATOR, 147 GTK_DIALOG_NO_SEPARATOR,
147 GTK_STOCK_CLOSE, 148 GTK_STOCK_CLOSE,
148 GTK_RESPONSE_CLOSE, 149 GTK_RESPONSE_CLOSE,
149 NULL); 150 NULL);
150 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), 151 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox),
151 gtk_util::kContentAreaSpacing); 152 ui::kContentAreaSpacing);
152 153
153 x509_certificate_model::RegisterDynamicOids(); 154 x509_certificate_model::RegisterDynamicOids();
154 InitGeneralPage(); 155 InitGeneralPage();
155 InitDetailsPage(); 156 InitDetailsPage();
156 157
157 notebook_ = gtk_notebook_new(); 158 notebook_ = gtk_notebook_new();
158 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), notebook_); 159 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog_)->vbox), notebook_);
159 160
160 gtk_notebook_append_page( 161 gtk_notebook_append_page(
161 GTK_NOTEBOOK(notebook_), 162 GTK_NOTEBOOK(notebook_),
(...skipping 14 matching lines...) Expand all
176 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), NULL); 177 g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), NULL);
177 g_signal_connect(dialog_, "destroy", G_CALLBACK(OnDestroy), this); 178 g_signal_connect(dialog_, "destroy", G_CALLBACK(OnDestroy), this);
178 } 179 }
179 180
180 CertificateViewer::~CertificateViewer() { 181 CertificateViewer::~CertificateViewer() {
181 x509_certificate_model::DestroyCertChain(&cert_chain_list_); 182 x509_certificate_model::DestroyCertChain(&cert_chain_list_);
182 } 183 }
183 184
184 void CertificateViewer::InitGeneralPage() { 185 void CertificateViewer::InitGeneralPage() {
185 net::X509Certificate::OSCertHandle cert = cert_chain_list_.front(); 186 net::X509Certificate::OSCertHandle cert = cert_chain_list_.front();
186 general_page_vbox_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); 187 general_page_vbox_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing);
187 gtk_container_set_border_width(GTK_CONTAINER(general_page_vbox_), 188 gtk_container_set_border_width(GTK_CONTAINER(general_page_vbox_),
188 gtk_util::kContentAreaBorder); 189 ui::kContentAreaBorder);
189 190
190 GtkWidget* uses_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 191 GtkWidget* uses_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
191 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);
192 gtk_box_pack_start( 193 gtk_box_pack_start(
193 GTK_BOX(uses_vbox), 194 GTK_BOX(uses_vbox),
194 gtk_util::CreateBoldLabel( 195 gtk_util::CreateBoldLabel(
195 l10n_util::GetStringUTF8(IDS_CERT_INFO_VERIFIED_USAGES_GROUP)), 196 l10n_util::GetStringUTF8(IDS_CERT_INFO_VERIFIED_USAGES_GROUP)),
196 FALSE, FALSE, 0); 197 FALSE, FALSE, 0);
197 198
198 std::vector<std::string> usages; 199 std::vector<std::string> usages;
199 x509_certificate_model::GetUsageStrings(cert, &usages); 200 x509_certificate_model::GetUsageStrings(cert, &usages);
200 for (size_t i = 0; i < usages.size(); ++i) 201 for (size_t i = 0; i < usages.size(); ++i)
201 gtk_box_pack_start( 202 gtk_box_pack_start(
202 GTK_BOX(uses_vbox), 203 GTK_BOX(uses_vbox),
203 gtk_util::IndentWidget(gtk_util::LeftAlignMisc(gtk_label_new( 204 gtk_util::IndentWidget(gtk_util::LeftAlignMisc(gtk_label_new(
204 usages[i].c_str()))), 205 usages[i].c_str()))),
205 FALSE, FALSE, 0); 206 FALSE, FALSE, 0);
206 207
207 gtk_box_pack_start(GTK_BOX(general_page_vbox_), gtk_hseparator_new(), 208 gtk_box_pack_start(GTK_BOX(general_page_vbox_), gtk_hseparator_new(),
208 FALSE, FALSE, 0); 209 FALSE, FALSE, 0);
209 210
210 const int num_rows = 21; 211 const int num_rows = 21;
211 GtkTable* table = GTK_TABLE(gtk_table_new(num_rows, 2, FALSE)); 212 GtkTable* table = GTK_TABLE(gtk_table_new(num_rows, 2, FALSE));
212 gtk_table_set_col_spacing(table, 0, gtk_util::kLabelSpacing); 213 gtk_table_set_col_spacing(table, 0, ui::kLabelSpacing);
213 gtk_table_set_row_spacings(table, gtk_util::kControlSpacing); 214 gtk_table_set_row_spacings(table, ui::kControlSpacing);
214 215
215 gtk_box_pack_start(GTK_BOX(general_page_vbox_), GTK_WIDGET(table), 216 gtk_box_pack_start(GTK_BOX(general_page_vbox_), GTK_WIDGET(table),
216 FALSE, FALSE, 0); 217 FALSE, FALSE, 0);
217 int row = 0; 218 int row = 0;
218 const std::string alternative_text = 219 const std::string alternative_text =
219 l10n_util::GetStringUTF8(IDS_CERT_INFO_FIELD_NOT_PRESENT); 220 l10n_util::GetStringUTF8(IDS_CERT_INFO_FIELD_NOT_PRESENT);
220 AddTitle(table, row++, 221 AddTitle(table, row++,
221 l10n_util::GetStringUTF8(IDS_CERT_INFO_SUBJECT_GROUP)); 222 l10n_util::GetStringUTF8(IDS_CERT_INFO_SUBJECT_GROUP));
222 AddKeyValue(table, row++, 223 AddKeyValue(table, row++,
223 l10n_util::GetStringUTF8(IDS_CERT_INFO_COMMON_NAME_LABEL), 224 l10n_util::GetStringUTF8(IDS_CERT_INFO_COMMON_NAME_LABEL),
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 // static 518 // static
518 GtkTreeStore* CertificateViewer::CreateFieldsTreeStore( 519 GtkTreeStore* CertificateViewer::CreateFieldsTreeStore(
519 net::X509Certificate::OSCertHandle cert) { 520 net::X509Certificate::OSCertHandle cert) {
520 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,
521 G_TYPE_STRING); 522 G_TYPE_STRING);
522 FillTreeStoreWithCertFields(fields_store, cert); 523 FillTreeStoreWithCertFields(fields_store, cert);
523 return fields_store; 524 return fields_store;
524 } 525 }
525 526
526 void CertificateViewer::InitDetailsPage() { 527 void CertificateViewer::InitDetailsPage() {
527 details_page_vbox_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); 528 details_page_vbox_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing);
528 gtk_container_set_border_width(GTK_CONTAINER(details_page_vbox_), 529 gtk_container_set_border_width(GTK_CONTAINER(details_page_vbox_),
529 gtk_util::kContentAreaBorder); 530 ui::kContentAreaBorder);
530 531
531 GtkWidget* hierarchy_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 532 GtkWidget* hierarchy_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
532 gtk_box_pack_start(GTK_BOX(details_page_vbox_), hierarchy_vbox, 533 gtk_box_pack_start(GTK_BOX(details_page_vbox_), hierarchy_vbox,
533 FALSE, FALSE, 0); 534 FALSE, FALSE, 0);
534 535
535 gtk_box_pack_start(GTK_BOX(hierarchy_vbox), 536 gtk_box_pack_start(GTK_BOX(hierarchy_vbox),
536 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8( 537 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8(
537 IDS_CERT_DETAILS_CERTIFICATE_HIERARCHY_LABEL)), 538 IDS_CERT_DETAILS_CERTIFICATE_HIERARCHY_LABEL)),
538 FALSE, FALSE, 0); 539 FALSE, FALSE, 0);
539 540
540 GtkTreeStore* hierarchy_store = gtk_tree_store_new(HIERARCHY_COLUMNS, 541 GtkTreeStore* hierarchy_store = gtk_tree_store_new(HIERARCHY_COLUMNS,
541 G_TYPE_STRING, 542 G_TYPE_STRING,
(...skipping 18 matching lines...) Expand all
560 GtkWidget* hierarchy_scroll_window = gtk_scrolled_window_new(NULL, NULL); 561 GtkWidget* hierarchy_scroll_window = gtk_scrolled_window_new(NULL, NULL);
561 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hierarchy_scroll_window), 562 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hierarchy_scroll_window),
562 GTK_POLICY_AUTOMATIC, 563 GTK_POLICY_AUTOMATIC,
563 GTK_POLICY_NEVER); 564 GTK_POLICY_NEVER);
564 gtk_scrolled_window_set_shadow_type( 565 gtk_scrolled_window_set_shadow_type(
565 GTK_SCROLLED_WINDOW(hierarchy_scroll_window), GTK_SHADOW_ETCHED_IN); 566 GTK_SCROLLED_WINDOW(hierarchy_scroll_window), GTK_SHADOW_ETCHED_IN);
566 gtk_container_add(GTK_CONTAINER(hierarchy_scroll_window), hierarchy_tree); 567 gtk_container_add(GTK_CONTAINER(hierarchy_scroll_window), hierarchy_tree);
567 gtk_box_pack_start(GTK_BOX(hierarchy_vbox), 568 gtk_box_pack_start(GTK_BOX(hierarchy_vbox),
568 hierarchy_scroll_window, FALSE, FALSE, 0); 569 hierarchy_scroll_window, FALSE, FALSE, 0);
569 570
570 GtkWidget* fields_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 571 GtkWidget* fields_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
571 gtk_box_pack_start(GTK_BOX(details_page_vbox_), fields_vbox, 572 gtk_box_pack_start(GTK_BOX(details_page_vbox_), fields_vbox,
572 TRUE, TRUE, 0); 573 TRUE, TRUE, 0);
573 gtk_box_pack_start(GTK_BOX(fields_vbox), 574 gtk_box_pack_start(GTK_BOX(fields_vbox),
574 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8( 575 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8(
575 IDS_CERT_DETAILS_CERTIFICATE_FIELDS_LABEL)), 576 IDS_CERT_DETAILS_CERTIFICATE_FIELDS_LABEL)),
576 FALSE, FALSE, 0); 577 FALSE, FALSE, 0);
577 578
578 fields_tree_ = gtk_tree_view_new(); 579 fields_tree_ = gtk_tree_view_new();
579 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(fields_tree_), FALSE); 580 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(fields_tree_), FALSE);
580 gtk_tree_view_append_column( 581 gtk_tree_view_append_column(
581 GTK_TREE_VIEW(fields_tree_), 582 GTK_TREE_VIEW(fields_tree_),
582 gtk_tree_view_column_new_with_attributes("", gtk_cell_renderer_text_new(), 583 gtk_tree_view_column_new_with_attributes("", gtk_cell_renderer_text_new(),
583 "text", FIELDS_NAME, 584 "text", FIELDS_NAME,
584 NULL)); 585 NULL));
585 GtkTreeSelection* fields_selection = gtk_tree_view_get_selection( 586 GtkTreeSelection* fields_selection = gtk_tree_view_get_selection(
586 GTK_TREE_VIEW(fields_tree_)); 587 GTK_TREE_VIEW(fields_tree_));
587 gtk_tree_selection_set_mode(fields_selection, GTK_SELECTION_SINGLE); 588 gtk_tree_selection_set_mode(fields_selection, GTK_SELECTION_SINGLE);
588 g_signal_connect(fields_selection, "changed", 589 g_signal_connect(fields_selection, "changed",
589 G_CALLBACK(OnFieldsSelectionChanged), this); 590 G_CALLBACK(OnFieldsSelectionChanged), this);
590 GtkWidget* fields_scroll_window = gtk_scrolled_window_new(NULL, NULL); 591 GtkWidget* fields_scroll_window = gtk_scrolled_window_new(NULL, NULL);
591 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(fields_scroll_window), 592 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(fields_scroll_window),
592 GTK_POLICY_AUTOMATIC, 593 GTK_POLICY_AUTOMATIC,
593 GTK_POLICY_AUTOMATIC); 594 GTK_POLICY_AUTOMATIC);
594 gtk_scrolled_window_set_shadow_type( 595 gtk_scrolled_window_set_shadow_type(
595 GTK_SCROLLED_WINDOW(fields_scroll_window), GTK_SHADOW_ETCHED_IN); 596 GTK_SCROLLED_WINDOW(fields_scroll_window), GTK_SHADOW_ETCHED_IN);
596 gtk_container_add(GTK_CONTAINER(fields_scroll_window), fields_tree_); 597 gtk_container_add(GTK_CONTAINER(fields_scroll_window), fields_tree_);
597 gtk_box_pack_start(GTK_BOX(fields_vbox), 598 gtk_box_pack_start(GTK_BOX(fields_vbox),
598 fields_scroll_window, TRUE, TRUE, 0); 599 fields_scroll_window, TRUE, TRUE, 0);
599 600
600 GtkWidget* value_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 601 GtkWidget* value_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
601 gtk_box_pack_start(GTK_BOX(details_page_vbox_), value_vbox, 602 gtk_box_pack_start(GTK_BOX(details_page_vbox_), value_vbox,
602 TRUE, TRUE, 0); 603 TRUE, TRUE, 0);
603 gtk_box_pack_start(GTK_BOX(value_vbox), 604 gtk_box_pack_start(GTK_BOX(value_vbox),
604 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8( 605 gtk_util::CreateBoldLabel(l10n_util::GetStringUTF8(
605 IDS_CERT_DETAILS_CERTIFICATE_FIELD_VALUE_LABEL)), 606 IDS_CERT_DETAILS_CERTIFICATE_FIELD_VALUE_LABEL)),
606 FALSE, FALSE, 0); 607 FALSE, FALSE, 0);
607 608
608 // TODO(mattm): fix text view coloring (should have grey background). 609 // TODO(mattm): fix text view coloring (should have grey background).
609 GtkWidget* field_value_view = gtk_text_view_new(); 610 GtkWidget* field_value_view = gtk_text_view_new();
610 gtk_text_view_set_editable(GTK_TEXT_VIEW(field_value_view), FALSE); 611 gtk_text_view_set_editable(GTK_TEXT_VIEW(field_value_view), FALSE);
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 net::X509Certificate::OSCertHandle cert) { 712 net::X509Certificate::OSCertHandle cert) {
712 net::X509Certificate::OSCertHandles cert_chain; 713 net::X509Certificate::OSCertHandles cert_chain;
713 x509_certificate_model::GetCertChainFromCert(cert, &cert_chain); 714 x509_certificate_model::GetCertChainFromCert(cert, &cert_chain);
714 (new CertificateViewer(parent, cert_chain))->Show(); 715 (new CertificateViewer(parent, cert_chain))->Show();
715 } 716 }
716 717
717 void ShowCertificateViewer(gfx::NativeWindow parent, 718 void ShowCertificateViewer(gfx::NativeWindow parent,
718 net::X509Certificate* cert) { 719 net::X509Certificate* cert) {
719 ShowCertificateViewer(parent, cert->os_cert_handle()); 720 ShowCertificateViewer(parent, cert->os_cert_handle());
720 } 721 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/bubble/bubble_gtk.cc ('k') | chrome/browser/ui/gtk/collected_cookies_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698