1 // Copyright 2014 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 SourceListDirective_h
6 #define SourceListDirective_h
8 #include "core/frame/csp/CSPDirective.h"
9 #include "core/frame/csp/CSPSourceList.h"
10 #include "platform/network/ContentSecurityPolicyParsers.h"
11 #include "wtf/HashSet.h"
12 #include "wtf/text/WTFString.h"
16 class ContentSecurityPolicy;
19 class SourceListDirective FINAL : public CSPDirective {
20 WTF_MAKE_NONCOPYABLE(SourceListDirective);
22 SourceListDirective(const String& name, const String& value, ContentSecurityPolicy*);
24 bool allows(const KURL&) const;
25 bool allowInline() const;
26 bool allowEval() const;
27 bool allowNonce(const String& nonce) const;
28 bool allowHash(const CSPHashValue&) const;
29 bool isHashOrNoncePresent() const;
30 uint8_t hashAlgorithmsUsed() const;
33 CSPSourceList m_sourceList;