// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/common/apps/platform_apps/chrome_apps_api_permissions.h"

#include "chrome/common/apps/platform_apps/media_galleries_permission.h"

namespace chrome_apps_api_permissions {
namespace {

template <typename T>
extensions::APIPermission* CreateAPIPermission(
    const extensions::APIPermissionInfo* permission) {
  return new T(permission);
}

// WARNING: If you are modifying a permission message in this list, be sure to
// add the corresponding permission message rule to
// ChromePermissionMessageProvider::GetPermissionMessages as well.
constexpr extensions::APIPermissionInfo::InitInfo permissions_to_register[] = {
    {extensions::APIPermission::kBrowser, "browser"},
    {extensions::APIPermission::kMusicManagerPrivate, "musicManagerPrivate",
     extensions::APIPermissionInfo::kFlagCannotBeOptional},
    {extensions::APIPermission::kMediaGalleries, "mediaGalleries",
     extensions::APIPermissionInfo::kFlagNone,
     &CreateAPIPermission<chrome_apps::MediaGalleriesPermission>},
    {extensions::APIPermission::kSyncFileSystem, "syncFileSystem"},
    {extensions::APIPermission::kWebstoreWidgetPrivate, "webstoreWidgetPrivate",
     extensions::APIPermissionInfo::kFlagCannotBeOptional},
};

}  // namespace

base::span<const extensions::APIPermissionInfo::InitInfo> GetPermissionInfos() {
  return base::make_span(permissions_to_register);
}

}  // namespace chrome_apps_api_permissions
