// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef EXTENSIONS_COMMON_PERMISSIONS_SET_DISJUNCTION_PERMISSION_H_ #define EXTENSIONS_COMMON_PERMISSIONS_SET_DISJUNCTION_PERMISSION_H_ #include <stddef.h> #include <memory> #include <set> #include <string> #include <utility> #include "base/json/json_writer.h" #include "base/ranges/algorithm.h" #include "base/stl_util.h" #include "base/values.h" #include "extensions/common/permissions/api_permission.h" namespace extensions { // An abstract base class for permissions that are represented by the // disjunction of a set of conditions. Each condition is represented by a // |PermissionDataType| (e.g. SocketPermissionData). If an // APIPermission::CheckParam matches any of the conditions in the set, the // permission is granted. // // For an example of how to use this class, see SocketPermission. template <class PermissionDataType, class DerivedType> class SetDisjunctionPermission : public APIPermission { … }; } // namespace extensions #endif // EXTENSIONS_COMMON_PERMISSIONS_SET_DISJUNCTION_PERMISSION_H_