1 // Copyright 2015 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.
5 #ifndef CONTENT_PUBLIC_BROWSER_SECURITY_STYLE_EXPLANATIONS_H_
6 #define CONTENT_PUBLIC_BROWSER_SECURITY_STYLE_EXPLANATIONS_H_
10 #include "content/common/content_export.h"
11 #include "content/public/browser/security_style_explanation.h"
12 #include "content/public/common/security_style.h"
16 // SecurityStyleExplanations contains information about why a particular
17 // SecurityStyle was chosen for a page. This information includes the
18 // mixed content status of the page and whether the page was loaded over
19 // a cryptographically secure transport. Additionally,
20 // SecurityStyleExplanations contains human-readable
21 // SecurityStyleExplanation objects that the embedder can use to
22 // describe embedder-specific security policies. Each
23 // SecurityStyleExplanation is a single security property of a page (for
24 // example, an expired certificate, a valid certificate, or the presence
25 // of a deprecated crypto algorithm). A single site may have multiple
26 // different explanations of "secure", "warning", and "broken" severity
28 struct SecurityStyleExplanations
{
29 CONTENT_EXPORT
SecurityStyleExplanations();
30 CONTENT_EXPORT
~SecurityStyleExplanations();
32 // True if the page ran insecure content such as scripts.
33 bool ran_insecure_content
;
34 // True if the page displayed insecure content such as images.
35 bool displayed_insecure_content
;
37 // The SecurityStyle assigned to a page that runs or displays insecure
38 // content, respectively. These values are used to convey the effect
39 // that mixed content has on the overall SecurityStyle of the page;
40 // for example, a |displayed_insecure_content_style| value of
41 // SECURITY_STYLE_UNAUTHENTICATED indicates that the page's overall
42 // SecurityStyle will be downgraded to UNAUTHENTICATED as a result of
43 // displaying insecure content.
44 SecurityStyle ran_insecure_content_style
;
45 SecurityStyle displayed_insecure_content_style
;
47 bool scheme_is_cryptographic
;
49 std::vector
<SecurityStyleExplanation
> secure_explanations
;
50 std::vector
<SecurityStyleExplanation
> warning_explanations
;
51 std::vector
<SecurityStyleExplanation
> broken_explanations
;
54 } // namespace content
56 #endif // CONTENT_PUBLIC_BROWSER_SECURITY_STYLE_EXPLANATION_H_