Home | History | Annotate | Download | only in ssl
      1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/ssl/ssl_cert_error_handler.h"
      6 
      7 #include "chrome/browser/ssl/ssl_manager.h"
      8 #include "chrome/browser/ssl/ssl_policy.h"
      9 #include "content/browser/renderer_host/resource_dispatcher_host.h"
     10 #include "net/base/x509_certificate.h"
     11 
     12 SSLCertErrorHandler::SSLCertErrorHandler(
     13     ResourceDispatcherHost* rdh,
     14     net::URLRequest* request,
     15     ResourceType::Type resource_type,
     16     int cert_error,
     17     net::X509Certificate* cert)
     18     : SSLErrorHandler(rdh, request, resource_type),
     19       cert_error_(cert_error) {
     20   DCHECK(request == resource_dispatcher_host_->GetURLRequest(request_id_));
     21 
     22   // We cannot use the request->ssl_info(), it's not been initialized yet, so
     23   // we have to set the fields manually.
     24   ssl_info_.cert = cert;
     25   ssl_info_.SetCertError(cert_error);
     26 }
     27 
     28 SSLCertErrorHandler* SSLCertErrorHandler::AsSSLCertErrorHandler() {
     29   return this;
     30 }
     31 
     32 void SSLCertErrorHandler::OnDispatchFailed() {
     33   CancelRequest();
     34 }
     35 
     36 void SSLCertErrorHandler::OnDispatched() {
     37   manager_->policy()->OnCertError(this);
     38 }
     39 
     40 SSLCertErrorHandler::~SSLCertErrorHandler() {}
     41