summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjgreenwald@chromium.org <jgreenwald@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-27 00:42:02 +0000
committerjgreenwald@chromium.org <jgreenwald@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-27 00:42:02 +0000
commit39a48f74829358ee0bd82fa3133b7dfc653b6ca4 (patch)
treecc251f7dfd80325b3ce1b15d47f031eb653507bf
parent0160addb4cba6147c0fdd8d375786106f6a35e8f (diff)
downloadchromium_src-39a48f74829358ee0bd82fa3133b7dfc653b6ca4.zip
chromium_src-39a48f74829358ee0bd82fa3133b7dfc653b6ca4.tar.gz
chromium_src-39a48f74829358ee0bd82fa3133b7dfc653b6ca4.tar.bz2
Add SSlHostState::Clear()
This method is used by Chrome on Android. It allows SSL warnings to be reset so that SSL error prompts will start getting displayed against even if the user previously clicked through the warning page. BUG=115372 TEST= Review URL: https://chromiumcodereview.appspot.com/10384211 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144340 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/ssl/ssl_host_state.cc8
-rw-r--r--content/browser/ssl/ssl_host_state.h5
-rw-r--r--content/browser/ssl/ssl_host_state_unittest.cc12
3 files changed, 22 insertions, 3 deletions
diff --git a/content/browser/ssl/ssl_host_state.cc b/content/browser/ssl/ssl_host_state.cc
index e0ceea4..c47171f 100644
--- a/content/browser/ssl/ssl_host_state.cc
+++ b/content/browser/ssl/ssl_host_state.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -50,6 +50,12 @@ void SSLHostState::AllowCertForHost(net::X509Certificate* cert,
cert_policy_for_host_[host].Allow(cert);
}
+void SSLHostState::Clear() {
+ DCHECK(CalledOnValidThread());
+
+ cert_policy_for_host_.clear();
+}
+
net::CertPolicy::Judgment SSLHostState::QueryPolicy(
net::X509Certificate* cert, const std::string& host) {
DCHECK(CalledOnValidThread());
diff --git a/content/browser/ssl/ssl_host_state.h b/content/browser/ssl/ssl_host_state.h
index b051b05..5cb1200 100644
--- a/content/browser/ssl/ssl_host_state.h
+++ b/content/browser/ssl/ssl_host_state.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -51,6 +51,9 @@ class CONTENT_EXPORT SSLHostState
// Records that |cert| is not permitted to be used for |host| in the future.
void AllowCertForHost(net::X509Certificate* cert, const std::string& host);
+ // Clear all allow/deny preferences.
+ void Clear();
+
// Queries whether |cert| is allowed or denied for |host|.
net::CertPolicy::Judgment QueryPolicy(
net::X509Certificate* cert, const std::string& host);
diff --git a/content/browser/ssl/ssl_host_state_unittest.cc b/content/browser/ssl/ssl_host_state_unittest.cc
index 08a589f..15743f1 100644
--- a/content/browser/ssl/ssl_host_state_unittest.cc
+++ b/content/browser/ssl/ssl_host_state_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -151,4 +151,14 @@ TEST_F(SSLHostStateTest, QueryPolicy) {
net::CertPolicy::UNKNOWN);
EXPECT_EQ(state.QueryPolicy(google_cert.get(), "example.com"),
net::CertPolicy::DENIED);
+
+ state.Clear();
+
+ EXPECT_EQ(state.QueryPolicy(google_cert.get(), "www.google.com"),
+ net::CertPolicy::UNKNOWN);
+ EXPECT_EQ(state.QueryPolicy(google_cert.get(), "google.com"),
+ net::CertPolicy::UNKNOWN);
+ EXPECT_EQ(state.QueryPolicy(google_cert.get(), "example.com"),
+ net::CertPolicy::UNKNOWN);
+
}