summaryrefslogtreecommitdiffstats
path: root/net/base/cert_database.cc
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-13 17:20:18 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-13 17:20:18 +0000
commitc940d37d3a861790ab8aece6ba5df75a65d60427 (patch)
tree03f3dea92ecf9f27e16c9450b40c3e850bd2352e /net/base/cert_database.cc
parent7ec9b3d8a08c1127d82b605f5159d0a4c1a3e02b (diff)
downloadchromium_src-c940d37d3a861790ab8aece6ba5df75a65d60427.zip
chromium_src-c940d37d3a861790ab8aece6ba5df75a65d60427.tar.gz
chromium_src-c940d37d3a861790ab8aece6ba5df75a65d60427.tar.bz2
Fix a problem that cert trust change needs a chrome restart to be effective.
This seems to be caused by CertVerifier's verification result cache. - Added a new OnCertTrustChanged to CertDatabase::Observer; - For NSS cert database, SetCertTrust triggers OnCertTrustChanged; - Clear CertVerifier's result cache when OnCertDatabaseChanged is fired; BUG=chromium-os:7988 TEST=Verify #2 issue in chromium-os:7988 where cert trust change only takes effect after chrome restart. Review URL: http://codereview.chromium.org/6816035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81433 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/cert_database.cc')
-rw-r--r--net/base/cert_database.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/base/cert_database.cc b/net/base/cert_database.cc
index 70e7a9b..b8c9aa3 100644
--- a/net/base/cert_database.cc
+++ b/net/base/cert_database.cc
@@ -46,9 +46,15 @@ void CertDatabase::RemoveObserver(Observer* observer) {
CertDatabaseNotifier::GetInstance()->observer_list_->RemoveObserver(observer);
}
-void CertDatabase::NotifyObserversOfUserCertAdded(X509Certificate* cert) {
+void CertDatabase::NotifyObserversOfUserCertAdded(const X509Certificate* cert) {
CertDatabaseNotifier::GetInstance()->observer_list_->Notify(
&CertDatabase::Observer::OnUserCertAdded, make_scoped_refptr(cert));
}
+void CertDatabase::NotifyObserversOfCertTrustChanged(
+ const X509Certificate* cert) {
+ CertDatabaseNotifier::GetInstance()->observer_list_->Notify(
+ &CertDatabase::Observer::OnCertTrustChanged, make_scoped_refptr(cert));
+}
+
} // namespace net