summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ssl/ssl_manager.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-07 00:19:38 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-07 00:19:38 +0000
commit88e7d5688f95703ac9a6ddac4752098c407223e5 (patch)
tree9e10232d9348bf1e3c2f739cacfb06669dfdef64 /chrome/browser/ssl/ssl_manager.cc
parenta5ded246b87ab09ebcf770ffc5c157fb4efaddac (diff)
downloadchromium_src-88e7d5688f95703ac9a6ddac4752098c407223e5.zip
chromium_src-88e7d5688f95703ac9a6ddac4752098c407223e5.tar.gz
chromium_src-88e7d5688f95703ac9a6ddac4752098c407223e5.tar.bz2
This CL adds a way to specify the security info when canceling a URLRequest.
This allows to tag a request on the renderer side with its security info. It is useful for the "frame info" dialog. When showing that dialog for blocked frames, the security info can be retrieved and users can see the cert details for the blocked frame. TEST=Open a page containing a frame served over bad HTTPS. The frame is blocked (replaced with a warning message). Right-click, select "Frame info". The dialog should have a "show cert" button which when pressed should show the frame's bad cert. BUG=2853 Review URL: http://codereview.chromium.org/7276 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11179 0039d316-1c4b-4281-b951-d872f2087c98
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()) {