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 |