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 <initializer_list> | 10 #include <initializer_list> |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 void set_channel(version_info::Channel channel) { | 114 void set_channel(version_info::Channel channel) { |
115 channel_.reset(new version_info::Channel(channel)); | 115 channel_.reset(new version_info::Channel(channel)); |
116 } | 116 } |
117 void set_command_line_switch(base::StringPiece command_line_switch); | 117 void set_command_line_switch(base::StringPiece command_line_switch); |
118 void set_component_extensions_auto_granted(bool granted) { | 118 void set_component_extensions_auto_granted(bool granted) { |
119 component_extensions_auto_granted_ = granted; | 119 component_extensions_auto_granted_ = granted; |
120 } | 120 } |
121 void set_contexts(std::initializer_list<Context> contexts); | 121 void set_contexts(std::initializer_list<Context> contexts); |
122 void set_dependencies(std::initializer_list<const char* const> dependencies); | 122 void set_dependencies(std::initializer_list<const char* const> dependencies); |
123 void set_extension_types(std::initializer_list<Manifest::Type> types); | 123 void set_extension_types(std::initializer_list<Manifest::Type> types); |
| 124 void set_session_types(std::initializer_list<SessionType> types); |
124 void set_internal(bool is_internal) { is_internal_ = is_internal; } | 125 void set_internal(bool is_internal) { is_internal_ = is_internal; } |
125 void set_location(Location location) { location_ = location; } | 126 void set_location(Location location) { location_ = location; } |
126 // set_matches() is an exception to pass-by-value since we construct an | 127 // set_matches() is an exception to pass-by-value since we construct an |
127 // URLPatternSet from the vector of strings. | 128 // URLPatternSet from the vector of strings. |
128 // TODO(devlin): Pass in an URLPatternSet directly. | 129 // TODO(devlin): Pass in an URLPatternSet directly. |
129 void set_matches(std::initializer_list<const char* const> matches); | 130 void set_matches(std::initializer_list<const char* const> matches); |
130 void set_max_manifest_version(int max_manifest_version) { | 131 void set_max_manifest_version(int max_manifest_version) { |
131 max_manifest_version_ = max_manifest_version; | 132 max_manifest_version_ = max_manifest_version; |
132 } | 133 } |
133 void set_min_manifest_version(int min_manifest_version) { | 134 void set_min_manifest_version(int min_manifest_version) { |
(...skipping 23 matching lines...) Expand all Loading... |
157 } | 158 } |
158 bool component_extensions_auto_granted() const { | 159 bool component_extensions_auto_granted() const { |
159 return component_extensions_auto_granted_; | 160 return component_extensions_auto_granted_; |
160 } | 161 } |
161 const URLPatternSet& matches() const { return matches_; } | 162 const URLPatternSet& matches() const { return matches_; } |
162 | 163 |
163 std::string GetAvailabilityMessage(AvailabilityResult result, | 164 std::string GetAvailabilityMessage(AvailabilityResult result, |
164 Manifest::Type type, | 165 Manifest::Type type, |
165 const GURL& url, | 166 const GURL& url, |
166 Context context, | 167 Context context, |
167 version_info::Channel channel) const; | 168 version_info::Channel channel, |
| 169 SessionType session_type) const; |
168 | 170 |
169 // Handy utilities which construct the correct availability message. | 171 // Handy utilities which construct the correct availability message. |
170 Availability CreateAvailability(AvailabilityResult result) const; | 172 Availability CreateAvailability(AvailabilityResult result) const; |
171 Availability CreateAvailability(AvailabilityResult result, | 173 Availability CreateAvailability(AvailabilityResult result, |
172 Manifest::Type type) const; | 174 Manifest::Type type) const; |
173 Availability CreateAvailability(AvailabilityResult result, | 175 Availability CreateAvailability(AvailabilityResult result, |
174 const GURL& url) const; | 176 const GURL& url) const; |
175 Availability CreateAvailability(AvailabilityResult result, | 177 Availability CreateAvailability(AvailabilityResult result, |
176 Context context) const; | 178 Context context) const; |
177 Availability CreateAvailability(AvailabilityResult result, | 179 Availability CreateAvailability(AvailabilityResult result, |
178 version_info::Channel channel) const; | 180 version_info::Channel channel) const; |
| 181 Availability CreateAvailability(AvailabilityResult result, |
| 182 SessionType session_type) const; |
179 | 183 |
180 private: | 184 private: |
181 friend struct FeatureComparator; | 185 friend struct FeatureComparator; |
182 friend class SimpleFeatureTest; | 186 friend class SimpleFeatureTest; |
183 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, ManifestFeatureTypes); | 187 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, ManifestFeatureTypes); |
184 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, PermissionFeatureTypes); | 188 FRIEND_TEST_ALL_PREFIXES(BaseFeatureProviderTest, PermissionFeatureTypes); |
185 FRIEND_TEST_ALL_PREFIXES(ExtensionAPITest, DefaultConfigurationFeatures); | 189 FRIEND_TEST_ALL_PREFIXES(ExtensionAPITest, DefaultConfigurationFeatures); |
186 FRIEND_TEST_ALL_PREFIXES(FeaturesGenerationTest, FeaturesTest); | 190 FRIEND_TEST_ALL_PREFIXES(FeaturesGenerationTest, FeaturesTest); |
187 FRIEND_TEST_ALL_PREFIXES(ManifestUnitTest, Extension); | 191 FRIEND_TEST_ALL_PREFIXES(ManifestUnitTest, Extension); |
188 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Blacklist); | 192 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Blacklist); |
189 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, CommandLineSwitch); | 193 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, CommandLineSwitch); |
190 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ComplexFeatureAvailability); | 194 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ComplexFeatureAvailability); |
191 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Context); | 195 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Context); |
| 196 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, SessionType); |
192 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, FeatureValidation); | 197 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, FeatureValidation); |
193 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdBlacklist); | 198 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdBlacklist); |
194 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdWhitelist); | 199 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, HashedIdWhitelist); |
195 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Inheritance); | 200 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Inheritance); |
196 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Location); | 201 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, Location); |
197 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ManifestVersion); | 202 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ManifestVersion); |
198 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, PackageType); | 203 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, PackageType); |
199 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseContexts); | 204 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseContexts); |
200 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseLocation); | 205 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseLocation); |
201 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseManifestVersion); | 206 FRIEND_TEST_ALL_PREFIXES(SimpleFeatureTest, ParseManifestVersion); |
(...skipping 19 matching lines...) Expand all Loading... |
221 static bool IsValidExtensionId(const std::string& extension_id); | 226 static bool IsValidExtensionId(const std::string& extension_id); |
222 | 227 |
223 // For clarity and consistency, we handle the default value of each of these | 228 // For clarity and consistency, we handle the default value of each of these |
224 // members the same way: it matches everything. It is up to the higher level | 229 // members the same way: it matches everything. It is up to the higher level |
225 // code that reads Features out of static data to validate that data and set | 230 // code that reads Features out of static data to validate that data and set |
226 // sensible defaults. | 231 // sensible defaults. |
227 std::vector<std::string> blacklist_; | 232 std::vector<std::string> blacklist_; |
228 std::vector<std::string> whitelist_; | 233 std::vector<std::string> whitelist_; |
229 std::vector<std::string> dependencies_; | 234 std::vector<std::string> dependencies_; |
230 std::vector<Manifest::Type> extension_types_; | 235 std::vector<Manifest::Type> extension_types_; |
| 236 std::vector<SessionType> session_types_; |
231 std::vector<Context> contexts_; | 237 std::vector<Context> contexts_; |
232 std::vector<Platform> platforms_; | 238 std::vector<Platform> platforms_; |
233 URLPatternSet matches_; | 239 URLPatternSet matches_; |
234 Location location_; | 240 Location location_; |
235 int min_manifest_version_; | 241 int min_manifest_version_; |
236 int max_manifest_version_; | 242 int max_manifest_version_; |
237 bool component_extensions_auto_granted_; | 243 bool component_extensions_auto_granted_; |
238 bool is_internal_; | 244 bool is_internal_; |
239 std::string command_line_switch_; | 245 std::string command_line_switch_; |
240 std::unique_ptr<version_info::Channel> channel_; | 246 std::unique_ptr<version_info::Channel> channel_; |
241 | 247 |
242 DISALLOW_COPY_AND_ASSIGN(SimpleFeature); | 248 DISALLOW_COPY_AND_ASSIGN(SimpleFeature); |
243 }; | 249 }; |
244 | 250 |
245 } // namespace extensions | 251 } // namespace extensions |
246 | 252 |
247 #endif // EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ | 253 #endif // EXTENSIONS_COMMON_FEATURES_SIMPLE_FEATURE_H_ |
OLD | NEW |