OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ | 5 #ifndef EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ |
6 #define EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ | 6 #define EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 30 matching lines...) Expand all Loading... | |
41 std::string* previous_id_; | 41 std::string* previous_id_; |
42 | 42 |
43 DISALLOW_COPY_AND_ASSIGN(ScopedWhitelistForTest); | 43 DISALLOW_COPY_AND_ASSIGN(ScopedWhitelistForTest); |
44 }; | 44 }; |
45 | 45 |
46 SimpleFeature(); | 46 SimpleFeature(); |
47 ~SimpleFeature() override; | 47 ~SimpleFeature() override; |
48 | 48 |
49 // Parses the JSON representation of a feature into the fields of this object. | 49 // Parses the JSON representation of a feature into the fields of this object. |
50 // Unspecified values in the JSON are not modified in the object. This allows | 50 // Unspecified values in the JSON are not modified in the object. This allows |
51 // us to implement inheritance by parsing one value after another. Returns | 51 // us to implement inheritance by parsing one value after another. Returns |
lazyboy
2016/07/15 22:53:40
This comment needs to be updated.
Also add a comm
Devlin
2016/07/18 17:51:58
Done.
| |
52 // the error found, or an empty string on success. | 52 // the error found, or an empty string on success. |
53 virtual std::string Parse(const base::DictionaryValue* dictionary); | 53 void Parse(const base::DictionaryValue* dictionary); |
54 | |
55 virtual bool Validate(std::string* error); | |
54 | 56 |
55 Availability IsAvailableToContext(const Extension* extension, | 57 Availability IsAvailableToContext(const Extension* extension, |
56 Context context) const { | 58 Context context) const { |
57 return IsAvailableToContext(extension, context, GURL()); | 59 return IsAvailableToContext(extension, context, GURL()); |
58 } | 60 } |
59 Availability IsAvailableToContext(const Extension* extension, | 61 Availability IsAvailableToContext(const Extension* extension, |
60 Context context, | 62 Context context, |
61 Platform platform) const { | 63 Platform platform) const { |
62 return IsAvailableToContext(extension, context, GURL(), platform); | 64 return IsAvailableToContext(extension, context, GURL(), platform); |
63 } | 65 } |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
146 version_info::Channel channel) const; | 148 version_info::Channel channel) const; |
147 | 149 |
148 private: | 150 private: |
149 friend class SimpleFeatureTest; | 151 friend class SimpleFeatureTest; |
150 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, ManifestFeatureTypes); | 152 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, ManifestFeatureTypes); |
151 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, PermissionFeatureTypes); | 153 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, PermissionFeatureTypes); |
152 FRIEND_TEST_ALL_PREFIXES(ExtensionAPITest, DefaultConfigurationFeatures); | 154 FRIEND_TEST_ALL_PREFIXES(ExtensionAPITest, DefaultConfigurationFeatures); |
153 FRIEND_TEST_ALL_PREFIXES(ManifestUnitTest, Extension); | 155 FRIEND_TEST_ALL_PREFIXES(ManifestUnitTest, Extension); |
154 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Blacklist); | 156 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Blacklist); |
155 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, CommandLineSwitch); | 157 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, CommandLineSwitch); |
158 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ComplexFeatureAvailability); | |
156 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Context); | 159 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Context); |
160 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, FeatureValidation); | |
157 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdBlacklist); | 161 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdBlacklist); |
158 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdWhitelist); | 162 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdWhitelist); |
159 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Inheritance); | 163 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Inheritance); |
160 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Location); | 164 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Location); |
161 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ManifestVersion); | 165 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ManifestVersion); |
162 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, PackageType); | 166 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, PackageType); |
163 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseContexts); | 167 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseContexts); |
164 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseLocation); | 168 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseLocation); |
165 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseManifestVersion); | 169 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseManifestVersion); |
166 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseNull); | 170 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseNull); |
167 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParsePackageTypes); | 171 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParsePackageTypes); |
168 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParsePlatforms); | 172 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParsePlatforms); |
169 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseWhitelist); | 173 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseWhitelist); |
170 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Platform); | 174 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Platform); |
175 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, SimpleFeatureAvailability); | |
171 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Whitelist); | 176 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Whitelist); |
172 | 177 |
173 // Holds String to Enum value mappings. | 178 // Holds String to Enum value mappings. |
174 struct Mappings; | 179 struct Mappings; |
175 | 180 |
176 static bool IsIdInList(const std::string& extension_id, | 181 static bool IsIdInList(const std::string& extension_id, |
177 const std::vector<std::string>& list); | 182 const std::vector<std::string>& list); |
178 | 183 |
179 bool MatchesManifestLocation(Manifest::Location manifest_location) const; | 184 bool MatchesManifestLocation(Manifest::Location manifest_location) const; |
180 | 185 |
(...skipping 12 matching lines...) Expand all Loading... | |
193 std::vector<Manifest::Type> extension_types_; | 198 std::vector<Manifest::Type> extension_types_; |
194 std::vector<Context> contexts_; | 199 std::vector<Context> contexts_; |
195 std::vector<Platform> platforms_; | 200 std::vector<Platform> platforms_; |
196 URLPatternSet matches_; | 201 URLPatternSet matches_; |
197 Location location_; | 202 Location location_; |
198 int min_manifest_version_; | 203 int min_manifest_version_; |
199 int max_manifest_version_; | 204 int max_manifest_version_; |
200 bool component_extensions_auto_granted_; | 205 bool component_extensions_auto_granted_; |
201 std::string command_line_switch_; | 206 std::string command_line_switch_; |
202 std::unique_ptr<version_info::Channel> channel_; | 207 std::unique_ptr<version_info::Channel> channel_; |
208 bool internal_; | |
203 | 209 |
204 DISALLOW_COPY_AND_ASSIGN(SimpleFeature); | 210 DISALLOW_COPY_AND_ASSIGN(SimpleFeature); |
205 }; | 211 }; |
206 | 212 |
207 } // namespace extensions | 213 } // namespace extensions |
208 | 214 |
209 #endif // EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ | 215 #endif // EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ |
OLD | NEW |