Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1605)

Unified Diff: content/browser/ssl/ssl_manager.cc

Issue 1459473003: Add a WebContents getter callback in ResourceRequestInfo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + addressed David's comments Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698