#ifndef IOS_WEB_SESSION_SESSION_CERTIFICATE_POLICY_CACHE_IMPL_H_
#define IOS_WEB_SESSION_SESSION_CERTIFICATE_POLICY_CACHE_IMPL_H_
#include "ios/web/public/session/session_certificate_policy_cache.h"
#include "ios/web/session/session_certificate.h"
namespace net {
class X509Certificate;
}
namespace web {
namespace proto {
class CertificatesCacheStorage;
}
class SessionCertificatePolicyCacheImpl final
: public SessionCertificatePolicyCache {
public:
explicit SessionCertificatePolicyCacheImpl(BrowserState* browser_state);
~SessionCertificatePolicyCacheImpl() final;
SessionCertificatePolicyCacheImpl(
BrowserState* browser_state,
const proto::CertificatesCacheStorage& storage);
void SerializeToProto(proto::CertificatesCacheStorage& storage) const;
void UpdateCertificatePolicyCache() const final;
void RegisterAllowedCertificate(
const scoped_refptr<net::X509Certificate>& certificate,
const std::string& host,
net::CertStatus status) final;
private:
SessionCertificateSet allowed_certs_;
};
}
#endif