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/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 1745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1756 if (expired_previous_decision) | 1756 if (expired_previous_decision) |
1757 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; | 1757 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; |
1758 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( | 1758 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( |
1759 tab, cert_error, ssl_info, request_url, options_mask, callback); | 1759 tab, cert_error, ssl_info, request_url, options_mask, callback); |
1760 ssl_blocking_page->Show(); | 1760 ssl_blocking_page->Show(); |
1761 } | 1761 } |
1762 | 1762 |
1763 void ChromeContentBrowserClient::SelectClientCertificate( | 1763 void ChromeContentBrowserClient::SelectClientCertificate( |
1764 int render_process_id, | 1764 int render_process_id, |
1765 int render_frame_id, | 1765 int render_frame_id, |
| 1766 const net::HttpNetworkSession* network_session, |
1766 net::SSLCertRequestInfo* cert_request_info, | 1767 net::SSLCertRequestInfo* cert_request_info, |
1767 const base::Callback<void(net::X509Certificate*)>& callback) { | 1768 const base::Callback<void(net::X509Certificate*)>& callback) { |
1768 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( | 1769 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( |
1769 render_process_id, render_frame_id); | 1770 render_process_id, render_frame_id); |
1770 WebContents* tab = WebContents::FromRenderFrameHost(rfh); | 1771 WebContents* tab = WebContents::FromRenderFrameHost(rfh); |
1771 if (!tab) { | 1772 if (!tab) { |
1772 // TODO(davidben): This makes the request hang, but returning no certificate | 1773 NOTREACHED(); |
1773 // also breaks. It should abort the request. See https://crbug.com/417092 | |
1774 return; | 1774 return; |
1775 } | 1775 } |
1776 | 1776 |
1777 prerender::PrerenderContents* prerender_contents = | 1777 prerender::PrerenderContents* prerender_contents = |
1778 prerender::PrerenderContents::FromWebContents(tab); | 1778 prerender::PrerenderContents::FromWebContents(tab); |
1779 if (prerender_contents) { | 1779 if (prerender_contents) { |
1780 prerender_contents->Destroy( | 1780 prerender_contents->Destroy( |
1781 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED); | 1781 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED); |
1782 return; | 1782 return; |
1783 } | 1783 } |
(...skipping 25 matching lines...) Expand all Loading... |
1809 // Use the first certificate that is matched by the filter. | 1809 // Use the first certificate that is matched by the filter. |
1810 callback.Run(all_client_certs[i].get()); | 1810 callback.Run(all_client_certs[i].get()); |
1811 return; | 1811 return; |
1812 } | 1812 } |
1813 } | 1813 } |
1814 } else { | 1814 } else { |
1815 NOTREACHED(); | 1815 NOTREACHED(); |
1816 } | 1816 } |
1817 } | 1817 } |
1818 | 1818 |
1819 chrome::ShowSSLClientCertificateSelector(tab, cert_request_info, callback); | 1819 chrome::ShowSSLClientCertificateSelector(tab, network_session, |
| 1820 cert_request_info, callback); |
1820 } | 1821 } |
1821 | 1822 |
1822 void ChromeContentBrowserClient::AddCertificate( | 1823 void ChromeContentBrowserClient::AddCertificate( |
1823 net::CertificateMimeType cert_type, | 1824 net::CertificateMimeType cert_type, |
1824 const void* cert_data, | 1825 const void* cert_data, |
1825 size_t cert_size, | 1826 size_t cert_size, |
1826 int render_process_id, | 1827 int render_process_id, |
1827 int render_frame_id) { | 1828 int render_frame_id) { |
1828 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, | 1829 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, |
1829 render_process_id, render_frame_id); | 1830 render_process_id, render_frame_id); |
(...skipping 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2675 switches::kDisableWebRtcEncryption, | 2676 switches::kDisableWebRtcEncryption, |
2676 }; | 2677 }; |
2677 to_command_line->CopySwitchesFrom(from_command_line, | 2678 to_command_line->CopySwitchesFrom(from_command_line, |
2678 kWebRtcDevSwitchNames, | 2679 kWebRtcDevSwitchNames, |
2679 arraysize(kWebRtcDevSwitchNames)); | 2680 arraysize(kWebRtcDevSwitchNames)); |
2680 } | 2681 } |
2681 } | 2682 } |
2682 #endif // defined(ENABLE_WEBRTC) | 2683 #endif // defined(ENABLE_WEBRTC) |
2683 | 2684 |
2684 } // namespace chrome | 2685 } // namespace chrome |
OLD | NEW |