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

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

Issue 2255613003: Introduce session type parameter to extension features (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Introduce session type parameter to extension features Created 4 years, 4 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 <initializer_list> 10 #include <initializer_list>
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698