1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/permissions/chrome_api_permissions.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "chrome/grit/generated_resources.h"
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "extensions/common/permissions/api_permission.h"
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "extensions/common/permissions/api_permission_set.h"
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "extensions/common/permissions/media_galleries_permission.h"
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "extensions/common/permissions/permission_message.h"
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "extensions/common/permissions/permissions_info.h"
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "extensions/strings/grit/extensions_strings.h"
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace extensions {
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace {
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kOldUnlimitedStoragePermission[] = "unlimited_storage";
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const char kWindowsPermission[] = "windows";
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)template<typename T> APIPermission* CreateAPIPermission(
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    const APIPermissionInfo* permission) {
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return new T(permission);
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    const {
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  APIPermissionInfo::InitInfo permissions_to_register[] = {
32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Register permissions for all extension types.
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      {APIPermission::kAppView, "appview",
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch       APIPermissionInfo::kFlagCannotBeOptional},
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBackground, "background"},
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kClipboardRead, "clipboardRead",
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD,
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kClipboard},
39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kClipboardWrite, "clipboardWrite"},
40010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDeclarativeContent, "declarativeContent"},
41010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDeclarativeWebRequest, "declarativeWebRequest",
42010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST,
44010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kDeclarativeWebRequest},
45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDesktopCapture, "desktopCapture",
46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE,
48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kDesktopCapture},
49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDownloads, "downloads", APIPermissionInfo::kFlagNone,
50010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS, PermissionMessage::kDownloads},
51010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDownloadsOpen, "downloads.open",
52010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
53010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN,
54010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kDownloadsOpen},
55010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDownloadsShelf, "downloads.shelf"},
565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kEasyUnlockPrivate, "easyUnlockPrivate"},
57010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kIdentity, "identity"},
58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      {APIPermission::kIdentityEmail, "identity.email",
59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       APIPermissionInfo::kFlagNone,
60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_IDENTITY_EMAIL,
61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       PermissionMessage::kIdentityEmail},
62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kExperimental, "experimental",
63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kEmbeddedExtensionOptions, "embeddedExtensionOptions",
655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kGeolocation, "geolocation",
67010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
68010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
69010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kGeolocation},
705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kNotifications, "notifications"},
71010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kUnlimitedStorage, "unlimitedStorage",
72010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
73f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      {APIPermission::kGcdPrivate, "gcdPrivate"},
74010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kGcm, "gcm"},
755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kNotificationProvider, "notificationProvider"},
76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
77010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Register extension permissions.
78010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAccessibilityFeaturesModify,
79010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       "accessibilityFeatures.modify", APIPermissionInfo::kFlagNone,
80010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY,
81010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kAccessibilityFeaturesModify},
82010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAccessibilityFeaturesRead, "accessibilityFeatures.read",
83010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
84010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ,
85010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kAccessibilityFeaturesRead},
86010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAccessibilityPrivate, "accessibilityPrivate",
87010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
88010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kActiveTab, "activeTab"},
89010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAlarms, "alarms"},
90010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBookmark, "bookmarks", APIPermissionInfo::kFlagNone,
91010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, PermissionMessage::kBookmarks},
92010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBrailleDisplayPrivate, "brailleDisplayPrivate",
93010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
94010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBrowsingData, "browsingData"},
95010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kContentSettings, "contentSettings",
96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS,
98010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kContentSettings},
99010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kContextMenus, "contextMenus"},
100010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kCookie, "cookies"},
1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      {APIPermission::kCopresence, "copresence", APIPermissionInfo::kFlagNone,
1026e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, PermissionMessage::kCopresence},
1035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kCopresencePrivate, "copresencePrivate"},
104cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      {APIPermission::kEnterprisePlatformKeys, "enterprise.platformKeys"},
105010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileBrowserHandler, "fileBrowserHandler",
106010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
107010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFontSettings, "fontSettings",
108010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
109010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kHistory, "history", APIPermissionInfo::kFlagNone,
110f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
111010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kBrowsingHistory},
112010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kIdltest, "idltest"},
113010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kIdle, "idle"},
114010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kInfobars, "infobars"},
115010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kInput, "input", APIPermissionInfo::kFlagNone,
116010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_INPUT, PermissionMessage::kInput},
117010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kLocation, "location",
118010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
119010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
120010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kGeolocation},
121010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kManagement, "management", APIPermissionInfo::kFlagNone,
122010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, PermissionMessage::kManagement},
123010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kNativeMessaging, "nativeMessaging",
124010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
125010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING,
126010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kNativeMessaging},
127010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPrivacy, "privacy", APIPermissionInfo::kFlagNone,
128010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_PRIVACY, PermissionMessage::kPrivacy},
129010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kProcesses, "processes", APIPermissionInfo::kFlagNone,
130f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
131010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kSessions, "sessions"},
132010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kSignedInDevices, "signedInDevices",
133010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
134010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES,
135010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kSignedInDevices},
136010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kSyncFileSystem, "syncFileSystem",
137010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
138010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM,
139010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kSyncFileSystem},
140010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTab, "tabs", APIPermissionInfo::kFlagNone,
141f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
142010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTopSites, "topSites", APIPermissionInfo::kFlagNone,
1431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci       IDS_EXTENSION_PROMPT_WARNING_TOPSITES, PermissionMessage::kTopSites},
144010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTts, "tts", 0, APIPermissionInfo::kFlagCannotBeOptional},
145010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTtsEngine, "ttsEngine",
146010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
147010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, PermissionMessage::kTtsEngine},
148010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWallpaper, "wallpaper",
149010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
150010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_WALLPAPER, PermissionMessage::kWallpaper},
151010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebNavigation, "webNavigation",
152f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)       APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
153010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kTabs},
154010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebRequest, "webRequest"},
155010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebRequestBlocking, "webRequestBlocking"},
156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
157010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Register private permissions.
158010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kScreenlockPrivate, "screenlockPrivate",
159010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
160010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE,
161010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kScreenlockPrivate},
162010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kActivityLogPrivate, "activityLogPrivate",
163010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
164010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE,
165010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kActivityLogPrivate},
166010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAutoTestPrivate, "autotestPrivate",
167010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
168010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBookmarkManagerPrivate, "bookmarkManagerPrivate",
169010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
170010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kCast, "cast", APIPermissionInfo::kFlagCannotBeOptional},
171010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kChromeosInfoPrivate, "chromeosInfoPrivate",
172010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
1731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      {APIPermission::kCommandsAccessibility, "commands.accessibility",
1741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci       APIPermissionInfo::kFlagCannotBeOptional},
175010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kCommandLinePrivate, "commandLinePrivate",
176010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
177010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDeveloperPrivate, "developerPrivate",
178010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
179010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDiagnostics, "diagnostics",
180010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
181010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDial, "dial", APIPermissionInfo::kFlagCannotBeOptional},
182010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDownloadsInternal, "downloadsInternal"},
1835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kExperienceSamplingPrivate, "experienceSamplingPrivate",
1845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
1855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE,
1865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       PermissionMessage::kExperienceSamplingPrivate},
187010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileBrowserHandlerInternal, "fileBrowserHandlerInternal",
188010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
1891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      {APIPermission::kFileManagerPrivate, "fileManagerPrivate",
190010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
191010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kHotwordPrivate, "hotwordPrivate",
192010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
193010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kIdentityPrivate, "identityPrivate",
194010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
1955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      {APIPermission::kLogPrivate, "logPrivate",
1965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
197010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebcamPrivate, "webcamPrivate"},
198010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kNetworkingPrivate, "networkingPrivate",
199010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
200010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE,
201010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kNetworkingPrivate},
202010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMediaPlayerPrivate, "mediaPlayerPrivate",
203010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
204010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMetricsPrivate, "metricsPrivate",
205010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
206010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMDns, "mdns", APIPermissionInfo::kFlagCannotBeOptional},
207010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMusicManagerPrivate, "musicManagerPrivate",
208010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
209010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE,
210010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kMusicManagerPrivate},
211010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPreferencesPrivate, "preferencesPrivate",
212010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
213010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kSystemPrivate, "systemPrivate",
214010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
215010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kCloudPrintPrivate, "cloudPrintPrivate",
216010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
217010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kInputMethodPrivate, "inputMethodPrivate",
218010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
219010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kEchoPrivate, "echoPrivate",
220010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
221010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFeedbackPrivate, "feedbackPrivate",
222010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
223010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kImageWriterPrivate, "imageWriterPrivate",
224010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
225010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kReadingListPrivate, "readingListPrivate",
226010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
227010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kRtcPrivate, "rtcPrivate",
228010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
229cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      {APIPermission::kSyncedNotificationsPrivate,
230cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)       "syncedNotificationsPrivate"},
231010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTerminalPrivate, "terminalPrivate",
232010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
233010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kVirtualKeyboardPrivate, "virtualKeyboardPrivate",
234010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
235010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWallpaperPrivate, "wallpaperPrivate",
236010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
237010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebstorePrivate, "webstorePrivate",
238010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
239010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMediaGalleriesPrivate, "mediaGalleriesPrivate",
240010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
241010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kStreamsPrivate, "streamsPrivate",
242010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
243010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kEnterprisePlatformKeysPrivate,
244010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       "enterprise.platformKeysPrivate",
245010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
246010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebrtcAudioPrivate, "webrtcAudioPrivate",
247010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
248010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kWebrtcLoggingPrivate, "webrtcLoggingPrivate",
249010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
250010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPrincipalsPrivate, "principalsPrivate",
251010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
252010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFirstRunPrivate, "firstRunPrivate",
253010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
254010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBluetoothPrivate, "bluetoothPrivate",
255010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional,
256010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE,
257010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kBluetoothPrivate},
258c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
259010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Full url access permissions.
260010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDebugger, "debugger",
261010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess |
262010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagCannotBeOptional,
263010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, PermissionMessage::kDebugger},
264010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kDevtools, "devtools",
265010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess |
266010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagCannotBeOptional |
267010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagInternal},
268010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPageCapture, "pageCapture",
269010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess},
270010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTabCapture, "tabCapture",
271010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess},
272010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kTabCaptureForTab, "tabCaptureForTab",
273010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagInternal},
274010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPlugin, "plugin",
275010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess |
276010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagImpliesFullAccess |
277010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagCannotBeOptional |
278010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagInternal,
279010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
280010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kFullAccess},
281010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kProxy, "proxy",
282010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagImpliesFullURLAccess |
283010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagCannotBeOptional},
284c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
285010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Platform-app permissions.
2861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
287010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // The permission string for "fileSystem" is only shown when
288010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // "write" or "directory" is present. Read-only access is only
289010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // granted after the user has been shown a file or directory
290010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // chooser dialog and selected a file or directory. Selecting
291010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // the file or directory is considered consent to read it.
292010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystem, "fileSystem"},
293010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystemDirectory, "fileSystem.directory",
294010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
295010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY,
296010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kFileSystemDirectory},
297010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystemProvider, "fileSystemProvider"},
298010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"},
299010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystemWrite, "fileSystem.write"},
300010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory",
301010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone,
302010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY,
303010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kFileSystemWriteDirectory},
304010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Because warning messages for the "mediaGalleries" permission
305010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // vary based on the permissions parameters, no message ID or
306010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // message text is specified here.  The message ID and text used
307010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // will be determined at run-time in the
308010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // |MediaGalleriesPermission| class.
309010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kMediaGalleries, "mediaGalleries",
310010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone,
311010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       &CreateAPIPermission<MediaGalleriesPermission>},
312010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPushMessaging, "pushMessaging",
313010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional},
314010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kPointerLock, "pointerLock"},
315010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kAudio, "audio"},
316010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kCastStreaming, "cast.streaming"},
317010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kBrowser, "browser"},
318f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
319010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      // Settings override permissions.
320010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kHomepage, "homepage",
321010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional |
322010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagInternal,
323010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE,
324010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kHomepage},
325010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kSearchProvider, "searchProvider",
326010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional |
327010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagInternal,
328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE,
329010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kSearchProvider},
330010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)      {APIPermission::kStartupPages, "startupPages",
331010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       APIPermissionInfo::kFlagCannotBeOptional |
332010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)           APIPermissionInfo::kFlagInternal,
333010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE,
334010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)       PermissionMessage::kStartupPages},
335010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  };
336c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
337c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  std::vector<APIPermissionInfo*> permissions;
338c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
339010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  for (size_t i = 0; i < ARRAYSIZE_UNSAFE(permissions_to_register); ++i)
340010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    permissions.push_back(new APIPermissionInfo(permissions_to_register[i]));
341c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return permissions;
342c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
343c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
344ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochstd::vector<PermissionsProvider::AliasInfo>
345ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben MurdochChromeAPIPermissions::GetAllAliases() const {
346c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  // Register aliases.
347ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  std::vector<PermissionsProvider::AliasInfo> aliases;
348ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  aliases.push_back(PermissionsProvider::AliasInfo(
349c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      "unlimitedStorage", kOldUnlimitedStoragePermission));
350ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  aliases.push_back(PermissionsProvider::AliasInfo(
351c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      "tabs", kWindowsPermission));
352c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return aliases;
353c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
354c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
355c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace extensions
356