1 // Copyright 2017 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 THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_AT_RULE_DESCRIPTOR_PARSER_H_
6 #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_AT_RULE_DESCRIPTOR_PARSER_H_
7 
8 #include "third_party/blink/renderer/core/css/css_property_value.h"
9 #include "third_party/blink/renderer/core/css/parser/at_rule_descriptors.h"
10 #include "third_party/blink/renderer/platform/wtf/vector.h"
11 
12 namespace blink {
13 
14 class CSSParserContext;
15 class CSSParserTokenRange;
16 class CSSValue;
17 
18 class AtRuleDescriptorParser {
19   STATIC_ONLY(AtRuleDescriptorParser);
20 
21  public:
22   static bool ParseAtRule(AtRuleDescriptorID,
23                           CSSParserTokenRange&,
24                           const CSSParserContext&,
25                           HeapVector<CSSPropertyValue, 256>&);
26   static CSSValue* ParseFontFaceDescriptor(AtRuleDescriptorID,
27                                            CSSParserTokenRange&,
28                                            const CSSParserContext&);
29   static CSSValue* ParseFontFaceDescriptor(AtRuleDescriptorID,
30                                            const String& value,
31                                            const CSSParserContext&);
32   static CSSValue* ParseFontFaceDeclaration(CSSParserTokenRange&,
33                                             const CSSParserContext&);
34   static CSSValue* ParseAtPropertyDescriptor(AtRuleDescriptorID,
35                                              CSSParserTokenRange&,
36                                              const CSSParserContext&);
37 };
38 
39 }  // namespace blink
40 
41 #endif  // THIRD_PARTY_BLINK_RENDERER_CORE_CSS_PARSER_AT_RULE_DESCRIPTOR_PARSER_H_
42