Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: extensions/common/features/simple_feature.h

Issue 2150193002: [Extensions] Add a SimpleFeature::Validate function (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tests Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698