1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file.
4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef MediaListDirective_h
6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define MediaListDirective_h
7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
8d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/frame/csp/CSPDirective.h"
9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "platform/network/ContentSecurityPolicyParsers.h"
10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "wtf/HashSet.h"
11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "wtf/text/WTFString.h"
12d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
13c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class ContentSecurityPolicy;
16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
17d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class MediaListDirective FINAL : public CSPDirective {
18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    WTF_MAKE_NONCOPYABLE(MediaListDirective);
19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public:
20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    MediaListDirective(const String& name, const String& value, ContentSecurityPolicy*);
21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    bool allows(const String& type);
22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private:
24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    void parse(const UChar* begin, const UChar* end);
25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)    HashSet<String> m_pluginTypes;
27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)};
28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
29c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)
31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif
32