diff options
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.cc | 36 |
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 |