1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// Copyright 2015 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.
#ifndef CHROME_BROWSER_SSL_CONNECTION_SECURITY_HELPER_H_
#define CHROME_BROWSER_SSL_CONNECTION_SECURITY_HELPER_H_
#include "base/macros.h"
namespace content {
class WebContents;
} // namespace content
// This class is responsible for computing the security level of a page.
class ConnectionSecurityHelper {
public:
// TODO(wtc): unify this enum with SecurityStyle. We
// don't need two sets of security UI levels. SECURITY_STYLE_AUTHENTICATED
// needs to be refined into three levels: warning, standard, and EV.
// See crbug.com/425728
//
// If you reorder, add, or delete values from this enum, you must also
// update the UI icons in ToolbarModelImpl::GetIconForSecurityLevel.
//
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.ssl
// GENERATED_JAVA_CLASS_NAME_OVERRIDE: ConnectionSecurityHelperSecurityLevel
enum SecurityLevel {
// HTTP/no URL
NONE,
// HTTPS with valid EV cert
EV_SECURE,
// HTTPS (non-EV)
SECURE,
// HTTPS, but unable to check certificate revocation status or with insecure
// content on the page
SECURITY_WARNING,
// HTTPS, but the certificate verification chain is anchored on a
// certificate that was installed by the system administrator
SECURITY_POLICY_WARNING,
// Attempted HTTPS and failed, page not authenticated
SECURITY_ERROR,
};
// Returns a security level describing the overall security state of
// the given |WebContents|.
static SecurityLevel GetSecurityLevelForWebContents(
content::WebContents* web_contents);
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(ConnectionSecurityHelper);
};
#endif // CHROME_BROWSER_SSL_CONNECTION_SECURITY_HELPER_H_
|