summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ssl/ssl_policy.h
diff options
context:
space:
mode:
authorabarth@chromium.org <abarth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-17 18:56:42 +0000
committerabarth@chromium.org <abarth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-17 18:56:42 +0000
commit425210cc4509d0339664eb142c3ae86500407bb1 (patch)
treeb04e954baa813d3cf40c11baa3642a44f4de8e30 /chrome/browser/ssl/ssl_policy.h
parent93edf7352b4c0500d1561ab0a56034d226ead456 (diff)
downloadchromium_src-425210cc4509d0339664eb142c3ae86500407bb1.zip
chromium_src-425210cc4509d0339664eb142c3ae86500407bb1.tar.gz
chromium_src-425210cc4509d0339664eb142c3ae86500407bb1.tar.bz2
SSLPolicy Fix: Step 7.
Simplify SSLPolicy to prepare for changing its algorithm. This change should not change the SSLPolicy behavior at all. R=jcampan BUG=8706 Review URL: http://codereview.chromium.org/48060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11892 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ssl/ssl_policy.h')
-rw-r--r--chrome/browser/ssl/ssl_policy.h33
1 files changed, 14 insertions, 19 deletions
diff --git a/chrome/browser/ssl/ssl_policy.h b/chrome/browser/ssl/ssl_policy.h
index 9318143..b7edea5 100644
--- a/chrome/browser/ssl/ssl_policy.h
+++ b/chrome/browser/ssl/ssl_policy.h
@@ -2,24 +2,23 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_SSL_POLICY_H__
-#define CHROME_BROWSER_SSL_POLICY_H__
+#ifndef CHROME_BROWSER_SSL_POLICY_H_
+#define CHROME_BROWSER_SSL_POLICY_H_
+#include "base/singleton.h"
#include "chrome/browser/ssl/ssl_blocking_page.h"
#include "chrome/browser/ssl/ssl_manager.h"
-// The basic SSLPolicy. This class contains default implementations of all
-// the SSLPolicy entry points. It is expected that subclasses will override
-// most of these methods to implement policy specific to certain errors or
-// situations.
+// SSLPolicy
+//
+// This class is responsible for making the security decisions that concern the
+// SSL trust indicators. It relies on the SSLManager to actually enact the
+// decisions it reaches.
+//
class SSLPolicy : public SSLManager::Delegate,
public SSLBlockingPage::Delegate {
public:
// Factory method to get the default policy.
- //
- // SSLPolicy is not meant to be instantiated itself. Only subclasses should
- // be instantiated. The default policy has more complex behavior than a
- // direct instance of SSLPolicy.
static SSLPolicy* GetDefaultPolicy();
// SSLManager::Delegate methods.
@@ -28,12 +27,7 @@ class SSLPolicy : public SSLManager::Delegate,
virtual void OnMixedContent(
NavigationController* navigation_controller,
const GURL& main_frame_url,
- SSLManager::MixedContentHandler* mixed_content_handler) {
- // So far only the default policy is expected to receive mixed-content
- // calls.
- NOTREACHED();
- }
-
+ SSLManager::MixedContentHandler* mixed_content_handler);
virtual void OnRequestStarted(SSLManager* manager,
const GURL& url,
ResourceType::Type resource_type,
@@ -53,8 +47,9 @@ class SSLPolicy : public SSLManager::Delegate,
virtual void OnAllowCertificate(SSLManager::CertError* error);
protected:
- // Allow our subclasses to construct us.
+ // Construct via |GetDefaultPolicy|.
SSLPolicy();
+ friend struct DefaultSingletonTraits<SSLPolicy>;
// Helper method for derived classes handling certificate errors that can be
// overridden by the user.
@@ -68,7 +63,7 @@ class SSLPolicy : public SSLManager::Delegate,
SSLManager::CertError* error);
private:
- DISALLOW_EVIL_CONSTRUCTORS(SSLPolicy);
+ DISALLOW_COPY_AND_ASSIGN(SSLPolicy);
};
-#endif // CHROME_BROWSER_SSL_POLICY_H__
+#endif // CHROME_BROWSER_SSL_POLICY_H_