OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <sstream> | 5 #include <sstream> |
6 #include "base/strings/string_split.h" | 6 #include "base/strings/string_split.h" |
7 #include "base/strings/string_util.h" | 7 #include "base/strings/string_util.h" |
8 #include "content/common/content_security_policy/csp_context.h" | 8 #include "content/common/content_security_policy/csp_context.h" |
9 | 9 |
10 namespace content { | 10 namespace content { |
11 | 11 |
12 namespace { | 12 namespace { |
13 | 13 |
14 static CSPDirective::Name CSPFallback(CSPDirective::Name directive) { | 14 static CSPDirective::Name CSPFallback(CSPDirective::Name directive) { |
15 switch (directive) { | 15 switch (directive) { |
16 case CSPDirective::DefaultSrc: | 16 case CSPDirective::DefaultSrc: |
17 case CSPDirective::FormAction: | 17 case CSPDirective::FormAction: |
| 18 case CSPDirective::UpgradeInsecureRequests: |
18 return CSPDirective::Unknown; | 19 return CSPDirective::Unknown; |
19 | 20 |
20 case CSPDirective::FrameSrc: | 21 case CSPDirective::FrameSrc: |
21 return CSPDirective::ChildSrc; | 22 return CSPDirective::ChildSrc; |
22 | 23 |
23 case CSPDirective::ChildSrc: | 24 case CSPDirective::ChildSrc: |
24 return CSPDirective::DefaultSrc; | 25 return CSPDirective::DefaultSrc; |
25 | 26 |
26 case CSPDirective::Unknown: | 27 case CSPDirective::Unknown: |
27 NOTREACHED(); | 28 NOTREACHED(); |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 text << "; "; | 180 text << "; "; |
180 is_first_policy = false; | 181 is_first_policy = false; |
181 text << "report-uri"; | 182 text << "report-uri"; |
182 for (const std::string& endpoint : report_endpoints) | 183 for (const std::string& endpoint : report_endpoints) |
183 text << " " << endpoint; | 184 text << " " << endpoint; |
184 } | 185 } |
185 | 186 |
186 return text.str(); | 187 return text.str(); |
187 } | 188 } |
188 | 189 |
| 190 // static |
| 191 bool ContentSecurityPolicy::ShouldUpgradeInsecureRequest( |
| 192 const ContentSecurityPolicy& policy) { |
| 193 for (const CSPDirective& directive : policy.directives) { |
| 194 if (directive.name == CSPDirective::UpgradeInsecureRequests) |
| 195 return true; |
| 196 } |
| 197 return false; |
| 198 } |
| 199 |
189 } // namespace content | 200 } // namespace content |
OLD | NEW |