#include "libcef_dll/cpptoc/sslstatus_cpptoc.h"
#include "libcef_dll/cpptoc/x509certificate_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
int CEF_CALLBACK sslstatus_is_secure_connection(struct _cef_sslstatus_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefSSLStatusCppToC::Get(self)->IsSecureConnection();
return _retval;
}
cef_cert_status_t CEF_CALLBACK
sslstatus_get_cert_status(struct _cef_sslstatus_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return CERT_STATUS_NONE;
cef_cert_status_t _retval = CefSSLStatusCppToC::Get(self)->GetCertStatus();
return _retval;
}
cef_ssl_version_t CEF_CALLBACK
sslstatus_get_sslversion(struct _cef_sslstatus_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return SSL_CONNECTION_VERSION_UNKNOWN;
cef_ssl_version_t _retval = CefSSLStatusCppToC::Get(self)->GetSSLVersion();
return _retval;
}
cef_ssl_content_status_t CEF_CALLBACK
sslstatus_get_content_status(struct _cef_sslstatus_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return SSL_CONTENT_NORMAL_CONTENT;
cef_ssl_content_status_t _retval =
CefSSLStatusCppToC::Get(self)->GetContentStatus();
return _retval;
}
struct _cef_x509certificate_t* CEF_CALLBACK
sslstatus_get_x509certificate(struct _cef_sslstatus_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefRefPtr<CefX509Certificate> _retval =
CefSSLStatusCppToC::Get(self)->GetX509Certificate();
return CefX509CertificateCppToC::Wrap(_retval);
}
}
CefSSLStatusCppToC::CefSSLStatusCppToC() {
GetStruct()->is_secure_connection = sslstatus_is_secure_connection;
GetStruct()->get_cert_status = sslstatus_get_cert_status;
GetStruct()->get_sslversion = sslstatus_get_sslversion;
GetStruct()->get_content_status = sslstatus_get_content_status;
GetStruct()->get_x509certificate = sslstatus_get_x509certificate;
}
CefSSLStatusCppToC::~CefSSLStatusCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefSSLStatus>
CefCppToCRefCounted<CefSSLStatusCppToC, CefSSLStatus, cef_sslstatus_t>::
UnwrapDerived(CefWrapperType type, cef_sslstatus_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCppToCRefCounted<CefSSLStatusCppToC,
CefSSLStatus,
cef_sslstatus_t>::kWrapperType =
WT_SSLSTATUS;