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/ssl/ssl_tab_helper.h" | 5 #include "chrome/browser/ssl/ssl_tab_helper.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 return cert_.get() ? BUTTON_OK : BUTTON_NONE; | 113 return cert_.get() ? BUTTON_OK : BUTTON_NONE; |
114 } | 114 } |
115 | 115 |
116 string16 SSLCertResultInfoBarDelegate::GetButtonLabel( | 116 string16 SSLCertResultInfoBarDelegate::GetButtonLabel( |
117 InfoBarButton button) const { | 117 InfoBarButton button) const { |
118 DCHECK_EQ(BUTTON_OK, button); | 118 DCHECK_EQ(BUTTON_OK, button); |
119 return l10n_util::GetStringUTF16(IDS_ADD_CERT_SUCCESS_INFOBAR_BUTTON); | 119 return l10n_util::GetStringUTF16(IDS_ADD_CERT_SUCCESS_INFOBAR_BUTTON); |
120 } | 120 } |
121 | 121 |
122 bool SSLCertResultInfoBarDelegate::Accept() { | 122 bool SSLCertResultInfoBarDelegate::Accept() { |
123 ShowCertificateViewer( | 123 ShowCertificateViewer(web_contents(), |
124 web_contents(), | 124 web_contents()->GetView()->GetTopLevelNativeWindow(), |
125 web_contents()->GetView()->GetTopLevelNativeWindow(), | 125 cert_.get()); |
126 cert_); | |
127 return false; // Hiding the infobar just as the dialog opens looks weird. | 126 return false; // Hiding the infobar just as the dialog opens looks weird. |
128 } | 127 } |
129 | 128 |
130 } // namespace | 129 } // namespace |
131 | 130 |
132 | 131 |
133 // SSLTabHelper::SSLAddCertData ------------------------------------------------ | 132 // SSLTabHelper::SSLAddCertData ------------------------------------------------ |
134 | 133 |
135 class SSLTabHelper::SSLAddCertData | 134 class SSLTabHelper::SSLAddCertData |
136 : public content::NotificationObserver { | 135 : public content::NotificationObserver { |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 void SSLTabHelper::ShowClientCertificateRequestDialog( | 209 void SSLTabHelper::ShowClientCertificateRequestDialog( |
211 const net::HttpNetworkSession* network_session, | 210 const net::HttpNetworkSession* network_session, |
212 net::SSLCertRequestInfo* cert_request_info, | 211 net::SSLCertRequestInfo* cert_request_info, |
213 const base::Callback<void(net::X509Certificate*)>& callback) { | 212 const base::Callback<void(net::X509Certificate*)>& callback) { |
214 chrome::ShowSSLClientCertificateSelector( | 213 chrome::ShowSSLClientCertificateSelector( |
215 web_contents_, network_session, cert_request_info, callback); | 214 web_contents_, network_session, cert_request_info, callback); |
216 } | 215 } |
217 | 216 |
218 void SSLTabHelper::OnVerifyClientCertificateError( | 217 void SSLTabHelper::OnVerifyClientCertificateError( |
219 scoped_refptr<SSLAddCertHandler> handler, int error_code) { | 218 scoped_refptr<SSLAddCertHandler> handler, int error_code) { |
220 SSLAddCertData* add_cert_data = GetAddCertData(handler); | 219 SSLAddCertData* add_cert_data = GetAddCertData(handler.get()); |
221 // Display an infobar with the error message. | 220 // Display an infobar with the error message. |
222 // TODO(davidben): Display a more user-friendly error string. | 221 // TODO(davidben): Display a more user-friendly error string. |
223 add_cert_data->ShowInfoBar( | 222 add_cert_data->ShowInfoBar( |
224 l10n_util::GetStringFUTF16(IDS_ADD_CERT_ERR_INVALID_CERT, | 223 l10n_util::GetStringFUTF16(IDS_ADD_CERT_ERR_INVALID_CERT, |
225 base::IntToString16(-error_code), | 224 base::IntToString16(-error_code), |
226 ASCIIToUTF16(net::ErrorToString(error_code))), | 225 ASCIIToUTF16(net::ErrorToString(error_code))), |
227 NULL); | 226 NULL); |
228 } | 227 } |
229 | 228 |
230 void SSLTabHelper::AskToAddClientCertificate( | 229 void SSLTabHelper::AskToAddClientCertificate( |
231 scoped_refptr<SSLAddCertHandler> handler) { | 230 scoped_refptr<SSLAddCertHandler> handler) { |
232 NOTREACHED(); // Not implemented yet. | 231 NOTREACHED(); // Not implemented yet. |
233 } | 232 } |
234 | 233 |
235 void SSLTabHelper::OnAddClientCertificateSuccess( | 234 void SSLTabHelper::OnAddClientCertificateSuccess( |
236 scoped_refptr<SSLAddCertHandler> handler) { | 235 scoped_refptr<SSLAddCertHandler> handler) { |
237 SSLAddCertData* add_cert_data = GetAddCertData(handler); | 236 SSLAddCertData* add_cert_data = GetAddCertData(handler.get()); |
238 // Display an infobar to inform the user. | 237 // Display an infobar to inform the user. |
239 net::X509Certificate* cert = handler->cert(); | 238 net::X509Certificate* cert = handler->cert(); |
240 // TODO(evanm): GetDisplayName should return UTF-16. | 239 // TODO(evanm): GetDisplayName should return UTF-16. |
241 add_cert_data->ShowInfoBar( | 240 add_cert_data->ShowInfoBar( |
242 l10n_util::GetStringFUTF16(IDS_ADD_CERT_SUCCESS_INFOBAR_LABEL, | 241 l10n_util::GetStringFUTF16(IDS_ADD_CERT_SUCCESS_INFOBAR_LABEL, |
243 UTF8ToUTF16(cert->issuer().GetDisplayName())), | 242 UTF8ToUTF16(cert->issuer().GetDisplayName())), |
244 cert); | 243 cert); |
245 } | 244 } |
246 | 245 |
247 void SSLTabHelper::OnAddClientCertificateError( | 246 void SSLTabHelper::OnAddClientCertificateError( |
248 scoped_refptr<SSLAddCertHandler> handler, int error_code) { | 247 scoped_refptr<SSLAddCertHandler> handler, int error_code) { |
249 SSLAddCertData* add_cert_data = GetAddCertData(handler); | 248 SSLAddCertData* add_cert_data = GetAddCertData(handler.get()); |
250 // Display an infobar with the error message. | 249 // Display an infobar with the error message. |
251 // TODO(davidben): Display a more user-friendly error string. | 250 // TODO(davidben): Display a more user-friendly error string. |
252 add_cert_data->ShowInfoBar( | 251 add_cert_data->ShowInfoBar( |
253 l10n_util::GetStringFUTF16(IDS_ADD_CERT_ERR_FAILED, | 252 l10n_util::GetStringFUTF16(IDS_ADD_CERT_ERR_FAILED, |
254 base::IntToString16(-error_code), | 253 base::IntToString16(-error_code), |
255 ASCIIToUTF16(net::ErrorToString(error_code))), | 254 ASCIIToUTF16(net::ErrorToString(error_code))), |
256 NULL); | 255 NULL); |
257 } | 256 } |
258 | 257 |
259 void SSLTabHelper::OnAddClientCertificateFinished( | 258 void SSLTabHelper::OnAddClientCertificateFinished( |
260 scoped_refptr<SSLAddCertHandler> handler) { | 259 scoped_refptr<SSLAddCertHandler> handler) { |
261 // Clean up. | 260 // Clean up. |
262 request_id_to_add_cert_data_.erase(handler->network_request_id()); | 261 request_id_to_add_cert_data_.erase(handler->network_request_id()); |
263 } | 262 } |
264 | 263 |
265 SSLTabHelper::SSLAddCertData* | 264 SSLTabHelper::SSLAddCertData* |
266 SSLTabHelper::GetAddCertData(SSLAddCertHandler* handler) { | 265 SSLTabHelper::GetAddCertData(SSLAddCertHandler* handler) { |
267 // Find/create the slot. | 266 // Find/create the slot. |
268 linked_ptr<SSLAddCertData>& ptr_ref = | 267 linked_ptr<SSLAddCertData>& ptr_ref = |
269 request_id_to_add_cert_data_[handler->network_request_id()]; | 268 request_id_to_add_cert_data_[handler->network_request_id()]; |
270 // Fill it if necessary. | 269 // Fill it if necessary. |
271 if (!ptr_ref.get()) | 270 if (!ptr_ref.get()) |
272 ptr_ref.reset(new SSLAddCertData(web_contents_)); | 271 ptr_ref.reset(new SSLAddCertData(web_contents_)); |
273 return ptr_ref.get(); | 272 return ptr_ref.get(); |
274 } | 273 } |
OLD | NEW |