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 EXTENSIONS_COMMON_API_DECLARATIVE_NET_REQUEST_CONSTANTS_H_
6 #define EXTENSIONS_COMMON_API_DECLARATIVE_NET_REQUEST_CONSTANTS_H_
7 
8 #include "base/util/type_safety/id_type.h"
9 
10 namespace extensions {
11 namespace declarative_net_request {
12 
13 // Permission name.
14 extern const char kAPIPermission[];
15 
16 // Feedback permission name.
17 extern const char kFeedbackAPIPermission[];
18 
19 // Minimum valid value of a declarative rule ID.
20 constexpr int kMinValidID = 1;
21 
22 // Minimum valid value of a declarative rule priority.
23 constexpr int kMinValidPriority = 1;
24 
25 using RulesetID =
26     ::util::IdType<class RulesetIDTag, int, -1 /* invalid value */>;
27 
28 constexpr RulesetID kMinValidStaticRulesetID(1);
29 constexpr RulesetID kDynamicRulesetID(0);
30 
31 // Default priority used for rules when the priority is not explicity provided
32 // by an extension.
33 constexpr int kDefaultPriority = 1;
34 
35 // Keys used in rules.
36 extern const char kIDKey[];
37 extern const char kPriorityKey[];
38 extern const char kRuleConditionKey[];
39 extern const char kRuleActionKey[];
40 extern const char kUrlFilterKey[];
41 extern const char kRegexFilterKey[];
42 extern const char kIsUrlFilterCaseSensitiveKey[];
43 extern const char kDomainsKey[];
44 extern const char kExcludedDomainsKey[];
45 extern const char kResourceTypesKey[];
46 extern const char kExcludedResourceTypesKey[];
47 extern const char kDomainTypeKey[];
48 extern const char kRuleActionTypeKey[];
49 extern const char kRedirectPath[];
50 extern const char kExtensionPathPath[];
51 extern const char kTransformSchemePath[];
52 extern const char kTransformPortPath[];
53 extern const char kTransformQueryPath[];
54 extern const char kTransformFragmentPath[];
55 extern const char kTransformQueryTransformPath[];
56 extern const char kRedirectKey[];
57 extern const char kExtensionPathKey[];
58 extern const char kRedirectUrlKey[];
59 extern const char kRedirectUrlPath[];
60 extern const char kTransformKey[];
61 extern const char kTransformSchemeKey[];
62 extern const char kTransformHostKey[];
63 extern const char kTransformPortKey[];
64 extern const char kTransformPathKey[];
65 extern const char kTransformQueryKey[];
66 extern const char kTransformQueryTransformKey[];
67 extern const char kTransformFragmentKey[];
68 extern const char kTransformUsernameKey[];
69 extern const char kTransformPasswordKey[];
70 extern const char kQueryTransformRemoveParamsKey[];
71 extern const char kQueryTransformAddReplaceParamsKey[];
72 extern const char kQueryKeyKey[];
73 extern const char kQueryValueKey[];
74 extern const char kRegexSubstitutionKey[];
75 extern const char kRegexSubstitutionPath[];
76 extern const char kRequestHeadersKey[];
77 extern const char kResponseHeadersKey[];
78 extern const char kRequestHeadersPath[];
79 extern const char kResponseHeadersPath[];
80 extern const char kHeaderNameKey[];
81 extern const char kHeaderOperationKey[];
82 extern const char kHeaderValueKey[];
83 
84 }  // namespace declarative_net_request
85 }  // namespace extensions
86 
87 #endif  // EXTENSIONS_COMMON_API_DECLARATIVE_NET_REQUEST_CONSTANTS_H_
88