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. 4 5 #ifndef SourceListDirective_h 6 #define SourceListDirective_h 7 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" 13 14 namespace blink { 15 16 class ContentSecurityPolicy; 17 class KURL; 18 19 class SourceListDirective FINAL : public CSPDirective { 20 WTF_MAKE_NONCOPYABLE(SourceListDirective); 21 public: 22 SourceListDirective(const String& name, const String& value, ContentSecurityPolicy*); 23 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; 31 32 private: 33 CSPSourceList m_sourceList; 34 }; 35 36 } // namespace blink 37 38 #endif 39