summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc b/chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc
new file mode 100644
index 00000000000..bf7e58714fa
--- /dev/null
+++ b/chromium/third_party/blink/renderer/core/frame/csp/require_trusted_types_for_directive.cc
@@ -0,0 +1,36 @@
+// Copyright 2020 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.
+
+#include "require_trusted_types_for_directive.h"
+
+namespace blink {
+
+RequireTrustedTypesForDirective::RequireTrustedTypesForDirective(
+ const String& name,
+ const String& value,
+ ContentSecurityPolicy* policy)
+ : CSPDirective(name, value, policy),
+ require_trusted_types_for_script_(false) {
+ Vector<String> list;
+ value.SimplifyWhiteSpace().Split(' ', false, list);
+
+ for (const String& v : list) {
+ // The only value in the sink group is 'script'.
+ // https://w3c.github.io/webappsec-trusted-types/dist/spec/#trusted-types-sink-group
+ if (v == "'script'") {
+ require_trusted_types_for_script_ = true;
+ break;
+ }
+ }
+}
+
+bool RequireTrustedTypesForDirective::require() const {
+ return require_trusted_types_for_script_;
+}
+
+void RequireTrustedTypesForDirective::Trace(Visitor* visitor) {
+ CSPDirective::Trace(visitor);
+}
+
+} // namespace blink