Chromium Code Reviews| Index: content/browser/ssl/ssl_manager.cc |
| diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc |
| index e4c71e3dc4e0f8b2c520afe4cb9d9979d51140d9..83321e18aeb2a02a064c9833f2edbacd6cbbe6cd 100644 |
| --- a/content/browser/ssl/ssl_manager.cc |
| +++ b/content/browser/ssl/ssl_manager.cc |
| @@ -44,6 +44,17 @@ class SSLManagerSet : public base::SupportsUserData::Data { |
| DISALLOW_COPY_AND_ASSIGN(SSLManagerSet); |
| }; |
| +WebContents* GetWebContentsFromRFHID(int render_process_id, |
|
nasko
2015/11/23 17:00:24
We have this method in two places. Can't we have i
clamy
2015/11/23 17:56:53
Done.
|
| + int render_frame_id) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + RenderFrameHost* render_frame_host = |
| + RenderFrameHost::FromID(render_process_id, render_frame_id); |
| + if (!render_frame_host) |
| + return nullptr; |
| + |
| + return WebContents::FromRenderFrameHost(render_frame_host); |
| +} |
| + |
| } // namespace |
| // static |
| @@ -51,8 +62,7 @@ void SSLManager::OnSSLCertificateError( |
| const base::WeakPtr<SSLErrorHandler::Delegate>& delegate, |
| const ResourceType resource_type, |
| const GURL& url, |
| - int render_process_id, |
| - int render_frame_id, |
| + const base::Callback<WebContents*(void)>& web_contents_getter, |
| const net::SSLInfo& ssl_info, |
| bool fatal) { |
| DCHECK(delegate.get()); |
| @@ -60,8 +70,6 @@ void SSLManager::OnSSLCertificateError( |
| << net::MapCertStatusToNetError(ssl_info.cert_status) |
| << " resource_type: " << resource_type |
| << " url: " << url.spec() |
| - << " render_process_id: " << render_process_id |
| - << " render_frame_id: " << render_frame_id |
| << " cert_status: " << std::hex << ssl_info.cert_status; |
| // A certificate error occurred. Construct a SSLCertErrorHandler object and |
| @@ -69,13 +77,23 @@ void SSLManager::OnSSLCertificateError( |
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| base::Bind(&SSLCertErrorHandler::Dispatch, |
| - new SSLCertErrorHandler(delegate, |
| - resource_type, |
| - url, |
| - render_process_id, |
| - render_frame_id, |
| - ssl_info, |
| - fatal))); |
| + new SSLCertErrorHandler(delegate, resource_type, url, ssl_info, |
| + fatal), |
| + web_contents_getter)); |
| +} |
| + |
| +// static |
| +void SSLManager::OnSSLCertificateSubresourceError( |
| + const base::WeakPtr<SSLErrorHandler::Delegate>& delegate, |
| + const GURL& url, |
| + int render_process_id, |
| + int render_frame_id, |
| + const net::SSLInfo& ssl_info, |
| + bool fatal) { |
| + OnSSLCertificateError( |
| + delegate, RESOURCE_TYPE_SUB_RESOURCE, url, |
| + base::Bind(&GetWebContentsFromRFHID, render_process_id, render_frame_id), |
| + ssl_info, fatal); |
| } |
| // static |