Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 878fdb7be889bc4a7f3dfcf32129d4eadbe1b142..a965f5155eda7c6e4624a8f3f0ff75c2523fd0e7 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -624,6 +624,10 @@ bool WebContentsImpl::OnMessageReceived(RenderViewHost* render_view_host, |
OnDidDisplayInsecureContent) |
IPC_MESSAGE_HANDLER(FrameHostMsg_DidRunInsecureContent, |
OnDidRunInsecureContent) |
+ IPC_MESSAGE_HANDLER(FrameHostMsg_DidDisplayContentWithCertificateErrors, |
+ OnDidDisplayContentWithCertificateErrors) |
+ IPC_MESSAGE_HANDLER(FrameHostMsg_DidRunContentWithCertificateErrors, |
+ OnDidRunContentWithCertificateErrors) |
IPC_MESSAGE_HANDLER(ViewHostMsg_GoToEntryAtOffset, OnGoToEntryAtOffset) |
IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateZoomLimits, OnUpdateZoomLimits) |
IPC_MESSAGE_HANDLER(ViewHostMsg_PageScaleFactorChanged, |
@@ -3140,12 +3144,12 @@ void WebContentsImpl::OnDidDisplayInsecureContent() { |
GetController().GetBrowserContext()); |
} |
-void WebContentsImpl::OnDidRunInsecureContent( |
- const std::string& security_origin, const GURL& target_url) { |
+void WebContentsImpl::OnDidRunInsecureContent(const GURL& security_origin, |
+ const GURL& target_url) { |
LOG(WARNING) << security_origin << " ran insecure content from " |
<< target_url.possibly_invalid_spec(); |
RecordAction(base::UserMetricsAction("SSL.RanInsecureContent")); |
- if (base::EndsWith(security_origin, kDotGoogleDotCom, |
+ if (base::EndsWith(security_origin.spec(), kDotGoogleDotCom, |
base::CompareCase::INSENSITIVE_ASCII)) |
RecordAction(base::UserMetricsAction("SSL.RanInsecureContentGoogle")); |
controller_.ssl_manager()->DidRunInsecureContent(security_origin); |
@@ -3153,6 +3157,39 @@ void WebContentsImpl::OnDidRunInsecureContent( |
GetController().GetBrowserContext()); |
} |
+void WebContentsImpl::OnDidDisplayContentWithCertificateErrors( |
+ const GURL& url, |
+ const std::string& security_info) { |
+ SSLStatus ssl; |
+ if (!DeserializeSecurityInfo(security_info, &ssl)) { |
+ bad_message::ReceivedBadMessage( |
+ GetRenderProcessHost(), |
+ bad_message::WC_CONTENT_WITH_CERT_ERRORS_BAD_SECURITY_INFO); |
+ return; |
+ } |
+ |
+ displayed_insecure_content_ = true; |
+ SSLManager::NotifySSLInternalStateChanged( |
+ GetController().GetBrowserContext()); |
+} |
+ |
+void WebContentsImpl::OnDidRunContentWithCertificateErrors( |
+ const GURL& security_origin, |
+ const GURL& url, |
+ const std::string& security_info) { |
+ SSLStatus ssl; |
+ if (!DeserializeSecurityInfo(security_info, &ssl)) { |
+ bad_message::ReceivedBadMessage( |
+ GetRenderProcessHost(), |
+ bad_message::WC_CONTENT_WITH_CERT_ERRORS_BAD_SECURITY_INFO); |
+ return; |
+ } |
+ |
+ controller_.ssl_manager()->DidRunInsecureContent(security_origin); |
+ SSLManager::NotifySSLInternalStateChanged( |
+ GetController().GetBrowserContext()); |
+} |
+ |
void WebContentsImpl::OnDocumentLoadedInFrame() { |
if (!HasValidFrameSource()) |
return; |