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 1721 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1732 if (expired_previous_decision) | 1732 if (expired_previous_decision) |
1733 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; | 1733 options_mask |= SSLBlockingPage::EXPIRED_BUT_PREVIOUSLY_ALLOWED; |
1734 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( | 1734 SSLBlockingPage* ssl_blocking_page = new SSLBlockingPage( |
1735 tab, cert_error, ssl_info, request_url, options_mask, callback); | 1735 tab, cert_error, ssl_info, request_url, options_mask, callback); |
1736 ssl_blocking_page->Show(); | 1736 ssl_blocking_page->Show(); |
1737 } | 1737 } |
1738 | 1738 |
1739 void ChromeContentBrowserClient::SelectClientCertificate( | 1739 void ChromeContentBrowserClient::SelectClientCertificate( |
1740 int render_process_id, | 1740 int render_process_id, |
1741 int render_frame_id, | 1741 int render_frame_id, |
1742 const net::HttpNetworkSession* network_session, | |
1743 net::SSLCertRequestInfo* cert_request_info, | 1742 net::SSLCertRequestInfo* cert_request_info, |
1744 const base::Callback<void(net::X509Certificate*)>& callback) { | 1743 const base::Callback<void(net::X509Certificate*)>& callback) { |
1745 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( | 1744 content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( |
1746 render_process_id, render_frame_id); | 1745 render_process_id, render_frame_id); |
1747 WebContents* tab = WebContents::FromRenderFrameHost(rfh); | 1746 WebContents* tab = WebContents::FromRenderFrameHost(rfh); |
1748 if (!tab) { | 1747 if (!tab) { |
1749 NOTREACHED(); | 1748 // TODO(davidben): This makes the request hang, but returning no certificate |
| 1749 // also breaks. It should abort the request. See https://crbug.com/417092 |
1750 return; | 1750 return; |
1751 } | 1751 } |
1752 | 1752 |
1753 prerender::PrerenderContents* prerender_contents = | 1753 prerender::PrerenderContents* prerender_contents = |
1754 prerender::PrerenderContents::FromWebContents(tab); | 1754 prerender::PrerenderContents::FromWebContents(tab); |
1755 if (prerender_contents) { | 1755 if (prerender_contents) { |
1756 prerender_contents->Destroy( | 1756 prerender_contents->Destroy( |
1757 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED); | 1757 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED); |
1758 return; | 1758 return; |
1759 } | 1759 } |
(...skipping 25 matching lines...) Expand all Loading... |
1785 // Use the first certificate that is matched by the filter. | 1785 // Use the first certificate that is matched by the filter. |
1786 callback.Run(all_client_certs[i].get()); | 1786 callback.Run(all_client_certs[i].get()); |
1787 return; | 1787 return; |
1788 } | 1788 } |
1789 } | 1789 } |
1790 } else { | 1790 } else { |
1791 NOTREACHED(); | 1791 NOTREACHED(); |
1792 } | 1792 } |
1793 } | 1793 } |
1794 | 1794 |
1795 chrome::ShowSSLClientCertificateSelector(tab, network_session, | 1795 chrome::ShowSSLClientCertificateSelector(tab, cert_request_info, callback); |
1796 cert_request_info, callback); | |
1797 } | 1796 } |
1798 | 1797 |
1799 void ChromeContentBrowserClient::AddCertificate( | 1798 void ChromeContentBrowserClient::AddCertificate( |
1800 net::CertificateMimeType cert_type, | 1799 net::CertificateMimeType cert_type, |
1801 const void* cert_data, | 1800 const void* cert_data, |
1802 size_t cert_size, | 1801 size_t cert_size, |
1803 int render_process_id, | 1802 int render_process_id, |
1804 int render_frame_id) { | 1803 int render_frame_id) { |
1805 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, | 1804 chrome::SSLAddCertificate(cert_type, cert_data, cert_size, |
1806 render_process_id, render_frame_id); | 1805 render_process_id, render_frame_id); |
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2633 switches::kDisableWebRtcEncryption, | 2632 switches::kDisableWebRtcEncryption, |
2634 }; | 2633 }; |
2635 to_command_line->CopySwitchesFrom(from_command_line, | 2634 to_command_line->CopySwitchesFrom(from_command_line, |
2636 kWebRtcDevSwitchNames, | 2635 kWebRtcDevSwitchNames, |
2637 arraysize(kWebRtcDevSwitchNames)); | 2636 arraysize(kWebRtcDevSwitchNames)); |
2638 } | 2637 } |
2639 } | 2638 } |
2640 #endif // defined(ENABLE_WEBRTC) | 2639 #endif // defined(ENABLE_WEBRTC) |
2641 | 2640 |
2642 } // namespace chrome | 2641 } // namespace chrome |
OLD | NEW |