extensions_api_permissions.cc revision 010d83a9304c5a91596085d917d248abff47903a
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 3// found in the LICENSE file. 4 5#include "extensions/common/permissions/extensions_api_permissions.h" 6 7#include "extensions/common/permissions/api_permission.h" 8#include "extensions/common/permissions/permission_message.h" 9#include "extensions/common/permissions/socket_permission.h" 10#include "grit/extensions_strings.h" 11 12namespace extensions { 13 14namespace { 15 16template <typename T> 17APIPermission* CreateAPIPermission(const APIPermissionInfo* permission) { 18 return new T(permission); 19} 20 21} // namespace 22 23std::vector<APIPermissionInfo*> ExtensionsAPIPermissions::GetAllPermissions() 24 const { 25 APIPermissionInfo::InitInfo permissions_to_register[] = { 26 {APIPermission::kDns, "dns"}, 27 // Because warning messages for the "socket" permission vary based 28 // on the permissions parameters, no message ID or message text is 29 // specified here. The message ID and text used will be 30 // determined at run-time in the |SocketPermission| class. 31 {APIPermission::kSocket, "socket", 32 APIPermissionInfo::kFlagCannotBeOptional, 0, PermissionMessage::kNone, 33 &CreateAPIPermission<SocketPermission>}, 34 {APIPermission::kStorage, "storage"}, 35 {APIPermission::kUsb, "usb", APIPermissionInfo::kFlagNone, 36 IDS_EXTENSION_PROMPT_WARNING_USB, PermissionMessage::kUsb}, 37 }; 38 39 std::vector<APIPermissionInfo*> permissions; 40 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(permissions_to_register); ++i) 41 permissions.push_back(new APIPermissionInfo(permissions_to_register[i])); 42 return permissions; 43} 44 45std::vector<PermissionsProvider::AliasInfo> 46ExtensionsAPIPermissions::GetAllAliases() const { 47 return std::vector<PermissionsProvider::AliasInfo>(); 48} 49 50} // namespace extensions 51