summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/core/frame/csp/SourceListDirective.h
blob: 38005d1383306880b8b8ea1f90c860689d77f195 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2014 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.

#ifndef SourceListDirective_h
#define SourceListDirective_h

#include "core/frame/csp/CSPDirective.h"
#include "core/frame/csp/CSPSourceList.h"
#include "platform/network/ContentSecurityPolicyParsers.h"
#include "wtf/HashSet.h"
#include "wtf/text/WTFString.h"

namespace WebCore {

class ContentSecurityPolicy;
class KURL;

class SourceListDirective FINAL : public CSPDirective {
    WTF_MAKE_NONCOPYABLE(SourceListDirective);
public:
    SourceListDirective(const String& name, const String& value, ContentSecurityPolicy*);

    bool allows(const KURL&) const;
    bool allowInline() const;
    bool allowEval() const;
    bool allowNonce(const String& nonce) const;
    bool allowHash(const CSPHashValue&) const;
    bool isHashOrNoncePresent() const;
    uint8_t hashAlgorithmsUsed() const;

private:
    CSPSourceList m_sourceList;
};

} // namespace WebCore

#endif