• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2016 The Chromium Embedded Framework Authors. All rights
2 // reserved. Use of this source code is governed by a BSD-style license that
3 // can be found in the LICENSE file.
4 
5 #ifndef CEF_LIBCEF_BROWSER_SSL_STATUS_IMPL_H_
6 #define CEF_LIBCEF_BROWSER_SSL_STATUS_IMPL_H_
7 #pragma once
8 
9 #include "include/cef_ssl_status.h"
10 
11 #include "content/public/browser/ssl_status.h"
12 
13 // CefSSLStatus implementation
14 class CefSSLStatusImpl : public CefSSLStatus {
15  public:
16   explicit CefSSLStatusImpl(const content::SSLStatus& value);
17 
18   CefSSLStatusImpl(const CefSSLStatusImpl&) = delete;
19   CefSSLStatusImpl& operator=(const CefSSLStatusImpl&) = delete;
20 
21   // CefSSLStatus methods.
22   bool IsSecureConnection() override;
23   cef_cert_status_t GetCertStatus() override;
24   cef_ssl_version_t GetSSLVersion() override;
25   cef_ssl_content_status_t GetContentStatus() override;
26   CefRefPtr<CefX509Certificate> GetX509Certificate() override;
27 
28  private:
29   cef_cert_status_t cert_status_;
30   cef_ssl_version_t ssl_version_;
31   cef_ssl_content_status_t content_status_;
32 
33   // Don't create a CefX509Certificate object until requested.
34   scoped_refptr<net::X509Certificate> certificate_;
35   CefRefPtr<CefX509Certificate> cef_certificate_;
36 
37   IMPLEMENT_REFCOUNTING(CefSSLStatusImpl);
38 };
39 
40 #endif  // CEF_LIBCEF_BROWSER_SSL_STATUS_IMPL_H_
41