1 // Copyright (c) 2010 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_host_state.h"
6
7 #include "base/logging.h"
8
SSLHostState()9 SSLHostState::SSLHostState() {
10 }
11
~SSLHostState()12 SSLHostState::~SSLHostState() {
13 }
14
HostRanInsecureContent(const std::string & host,int pid)15 void SSLHostState::HostRanInsecureContent(const std::string& host, int pid) {
16 DCHECK(CalledOnValidThread());
17 ran_insecure_content_hosts_.insert(BrokenHostEntry(host, pid));
18 }
19
DidHostRunInsecureContent(const std::string & host,int pid) const20 bool SSLHostState::DidHostRunInsecureContent(const std::string& host,
21 int pid) const {
22 DCHECK(CalledOnValidThread());
23 return !!ran_insecure_content_hosts_.count(BrokenHostEntry(host, pid));
24 }
25
DenyCertForHost(net::X509Certificate * cert,const std::string & host)26 void SSLHostState::DenyCertForHost(net::X509Certificate* cert,
27 const std::string& host) {
28 DCHECK(CalledOnValidThread());
29
30 cert_policy_for_host_[host].Deny(cert);
31 }
32
AllowCertForHost(net::X509Certificate * cert,const std::string & host)33 void SSLHostState::AllowCertForHost(net::X509Certificate* cert,
34 const std::string& host) {
35 DCHECK(CalledOnValidThread());
36
37 cert_policy_for_host_[host].Allow(cert);
38 }
39
QueryPolicy(net::X509Certificate * cert,const std::string & host)40 net::CertPolicy::Judgment SSLHostState::QueryPolicy(
41 net::X509Certificate* cert, const std::string& host) {
42 DCHECK(CalledOnValidThread());
43
44 return cert_policy_for_host_[host].Check(cert);
45 }
46