| 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/views/ssl_client_certificate_selector.h" | 5 #include "chrome/browser/ui/views/ssl_client_certificate_selector.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/i18n/time_formatting.h" | 8 #include "base/i18n/time_formatting.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "chrome/browser/certificate_viewer.h" | 11 #include "chrome/browser/certificate_viewer.h" |
| 12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 12 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
| 13 #include "chrome/browser/ui/views/constrained_window_views.h" | 13 #include "chrome/browser/ui/views/constrained_window_views.h" |
| 14 #include "content/public/browser/browser_thread.h" | 14 #include "content/public/browser/browser_thread.h" |
| 15 #include "content/public/browser/web_contents.h" | 15 #include "content/public/browser/web_contents.h" |
| 16 #include "content/public/browser/web_contents_view.h" | 16 #include "content/public/browser/web_contents_view.h" |
| 17 #include "grit/generated_resources.h" | 17 #include "grit/generated_resources.h" |
| 18 #include "net/base/ssl_cert_request_info.h" | 18 #include "net/base/ssl_cert_request_info.h" |
| 19 #include "net/base/x509_certificate.h" | 19 #include "net/base/x509_certificate.h" |
| 20 #include "ui/base/l10n/l10n_util.h" | 20 #include "ui/base/l10n/l10n_util.h" |
| 21 #include "ui/base/models/table_model.h" | 21 #include "ui/base/models/table_model.h" |
| 22 #include "ui/base/models/table_model_observer.h" | 22 #include "ui/base/models/table_model_observer.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 } | 81 } |
| 82 | 82 |
| 83 void CertificateSelectorTableModel::SetObserver( | 83 void CertificateSelectorTableModel::SetObserver( |
| 84 ui::TableModelObserver* observer) { | 84 ui::TableModelObserver* observer) { |
| 85 } | 85 } |
| 86 | 86 |
| 87 /////////////////////////////////////////////////////////////////////////////// | 87 /////////////////////////////////////////////////////////////////////////////// |
| 88 // SSLClientCertificateSelector: | 88 // SSLClientCertificateSelector: |
| 89 | 89 |
| 90 SSLClientCertificateSelector::SSLClientCertificateSelector( | 90 SSLClientCertificateSelector::SSLClientCertificateSelector( |
| 91 TabContentsWrapper* wrapper, | 91 TabContents* tab_contents, |
| 92 const net::HttpNetworkSession* network_session, | 92 const net::HttpNetworkSession* network_session, |
| 93 net::SSLCertRequestInfo* cert_request_info, | 93 net::SSLCertRequestInfo* cert_request_info, |
| 94 const base::Callback<void(net::X509Certificate*)>& callback) | 94 const base::Callback<void(net::X509Certificate*)>& callback) |
| 95 : SSLClientAuthObserver(network_session, cert_request_info, callback), | 95 : SSLClientAuthObserver(network_session, cert_request_info, callback), |
| 96 model_(new CertificateSelectorTableModel(cert_request_info)), | 96 model_(new CertificateSelectorTableModel(cert_request_info)), |
| 97 wrapper_(wrapper), | 97 tab_contents_(tab_contents), |
| 98 window_(NULL), | 98 window_(NULL), |
| 99 table_(NULL), | 99 table_(NULL), |
| 100 view_cert_button_(NULL), | 100 view_cert_button_(NULL), |
| 101 view_cert_button_container_(NULL) { | 101 view_cert_button_container_(NULL) { |
| 102 DVLOG(1) << __FUNCTION__; | 102 DVLOG(1) << __FUNCTION__; |
| 103 } | 103 } |
| 104 | 104 |
| 105 SSLClientCertificateSelector::~SSLClientCertificateSelector() { | 105 SSLClientCertificateSelector::~SSLClientCertificateSelector() { |
| 106 table_->SetModel(NULL); | 106 table_->SetModel(NULL); |
| 107 } | 107 } |
| (...skipping 25 matching lines...) Expand all Loading... |
| 133 layout->AddView(table_->CreateParentIfNecessary(), 1, 1, | 133 layout->AddView(table_->CreateParentIfNecessary(), 1, 1, |
| 134 views::GridLayout::FILL, | 134 views::GridLayout::FILL, |
| 135 views::GridLayout::FILL, kTableViewWidth, kTableViewHeight); | 135 views::GridLayout::FILL, kTableViewWidth, kTableViewHeight); |
| 136 | 136 |
| 137 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); | 137 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
| 138 | 138 |
| 139 CreateViewCertButton(); | 139 CreateViewCertButton(); |
| 140 | 140 |
| 141 StartObserving(); | 141 StartObserving(); |
| 142 | 142 |
| 143 window_ = new ConstrainedWindowViews(wrapper_, this); | 143 window_ = new ConstrainedWindowViews(tab_contents_, this); |
| 144 | 144 |
| 145 // Select the first row automatically. This must be done after the dialog has | 145 // Select the first row automatically. This must be done after the dialog has |
| 146 // been created. | 146 // been created. |
| 147 table_->Select(0); | 147 table_->Select(0); |
| 148 } | 148 } |
| 149 | 149 |
| 150 net::X509Certificate* SSLClientCertificateSelector::GetSelectedCert() const { | 150 net::X509Certificate* SSLClientCertificateSelector::GetSelectedCert() const { |
| 151 int selected = table_->FirstSelectedRow(); | 151 int selected = table_->FirstSelectedRow(); |
| 152 if (selected >= 0 && | 152 if (selected >= 0 && |
| 153 selected < static_cast<int>( | 153 selected < static_cast<int>( |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 222 |
| 223 /////////////////////////////////////////////////////////////////////////////// | 223 /////////////////////////////////////////////////////////////////////////////// |
| 224 // views::ButtonListener implementation: | 224 // views::ButtonListener implementation: |
| 225 | 225 |
| 226 void SSLClientCertificateSelector::ButtonPressed( | 226 void SSLClientCertificateSelector::ButtonPressed( |
| 227 views::Button* sender, const views::Event& event) { | 227 views::Button* sender, const views::Event& event) { |
| 228 if (sender == view_cert_button_) { | 228 if (sender == view_cert_button_) { |
| 229 net::X509Certificate* cert = GetSelectedCert(); | 229 net::X509Certificate* cert = GetSelectedCert(); |
| 230 if (cert) | 230 if (cert) |
| 231 ShowCertificateViewer( | 231 ShowCertificateViewer( |
| 232 wrapper_->web_contents()->GetView()->GetTopLevelNativeWindow(), | 232 tab_contents_->web_contents()->GetView()->GetTopLevelNativeWindow(), |
| 233 cert); | 233 cert); |
| 234 } | 234 } |
| 235 } | 235 } |
| 236 | 236 |
| 237 /////////////////////////////////////////////////////////////////////////////// | 237 /////////////////////////////////////////////////////////////////////////////// |
| 238 // views::TableViewObserver implementation: | 238 // views::TableViewObserver implementation: |
| 239 void SSLClientCertificateSelector::OnSelectionChanged() { | 239 void SSLClientCertificateSelector::OnSelectionChanged() { |
| 240 GetDialogClientView()->ok_button()->SetEnabled(!!GetSelectedCert()); | 240 GetDialogClientView()->ok_button()->SetEnabled(!!GetSelectedCert()); |
| 241 } | 241 } |
| 242 | 242 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 layout->StartRow(0, column_set_id); | 277 layout->StartRow(0, column_set_id); |
| 278 layout->AddView(view_cert_button_); | 278 layout->AddView(view_cert_button_); |
| 279 } | 279 } |
| 280 | 280 |
| 281 /////////////////////////////////////////////////////////////////////////////// | 281 /////////////////////////////////////////////////////////////////////////////// |
| 282 // SSLClientCertificateSelector public interface: | 282 // SSLClientCertificateSelector public interface: |
| 283 | 283 |
| 284 namespace browser { | 284 namespace browser { |
| 285 | 285 |
| 286 void ShowSSLClientCertificateSelector( | 286 void ShowSSLClientCertificateSelector( |
| 287 TabContentsWrapper* wrapper, | 287 TabContents* tab_contents, |
| 288 const net::HttpNetworkSession* network_session, | 288 const net::HttpNetworkSession* network_session, |
| 289 net::SSLCertRequestInfo* cert_request_info, | 289 net::SSLCertRequestInfo* cert_request_info, |
| 290 const base::Callback<void(net::X509Certificate*)>& callback) { | 290 const base::Callback<void(net::X509Certificate*)>& callback) { |
| 291 DVLOG(1) << __FUNCTION__ << " " << wrapper; | 291 DVLOG(1) << __FUNCTION__ << " " << tab_contents; |
| 292 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 292 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 293 (new SSLClientCertificateSelector( | 293 (new SSLClientCertificateSelector( |
| 294 wrapper, network_session, cert_request_info, callback))->Init(); | 294 tab_contents, network_session, cert_request_info, callback))->Init(); |
| 295 } | 295 } |
| 296 | 296 |
| 297 } // namespace browser | 297 } // namespace browser |
| OLD | NEW |