1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef EXTENSIONS_COMMON_PERMISSIONS_PERMISSIONS_PROVIDER_H_ 6#define EXTENSIONS_COMMON_PERMISSIONS_PERMISSIONS_PROVIDER_H_ 7 8#include <vector> 9 10namespace extensions { 11 12class APIPermissionInfo; 13 14// The PermissionsProvider creates the APIPermissions instances. It is only 15// needed at startup time. 16class PermissionsProvider { 17 public: 18 // An alias for a given permission |name|. 19 struct AliasInfo { 20 const char* name; 21 const char* alias; 22 23 AliasInfo(const char* name, const char* alias) 24 : name(name), alias(alias) { 25 } 26 }; 27 // Returns all the known permissions. The caller, PermissionsInfo, 28 // takes ownership of the APIPermissionInfos. 29 virtual std::vector<APIPermissionInfo*> GetAllPermissions() const = 0; 30 31 // Returns all the known permission aliases. 32 virtual std::vector<AliasInfo> GetAllAliases() const = 0; 33}; 34 35} // namespace extensions 36 37#endif // EXTENSIONS_COMMON_PERMISSIONS_PERMISSIONS_PROVIDER_H_ 38