summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ssl/ssl_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/ssl/ssl_manager.cc')
-rw-r--r--chrome/browser/ssl/ssl_manager.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/chrome/browser/ssl/ssl_manager.cc b/chrome/browser/ssl/ssl_manager.cc
index bc95a53..58d7acb 100644
--- a/chrome/browser/ssl/ssl_manager.cc
+++ b/chrome/browser/ssl/ssl_manager.cc
@@ -338,7 +338,11 @@ void SSLManager::ErrorHandler::CompleteCancelRequest(int error) {
// The request can be NULL if it was cancelled by the renderer (as the
// result of the user navigating to a new page from the location bar).
DLOG(INFO) << "CompleteCancelRequest() url: " << request->url().spec();
- request->CancelWithError(error);
+ SSLManager::CertError* cert_error = AsCertError();
+ if (cert_error)
+ request->SimulateSSLError(error, cert_error->ssl_info());
+ else
+ request->SimulateError(error);
}
request_has_been_notified_ = true;
@@ -591,7 +595,8 @@ void SSLManager::DidCommitProvisionalLoad(
// An HTTPS response may not have a certificate for some reason. When that
// happens, use the unauthenticated (HTTP) rather than the authentication
// broken security style so that we can detect this error condition.
- if (net::IsCertStatusError(ssl_cert_status)) {
+ if (net::IsCertStatusError(ssl_cert_status) &&
+ !details->is_content_filtered) {
changed |= SetMaxSecurityStyle(SECURITY_STYLE_AUTHENTICATION_BROKEN);
if (!details->is_main_frame &&
!details->entry->ssl().has_unsafe_content()) {