Cast: Stop logging kVideoFrameSentToEncoder and rename a couple events.
[chromium-blink-merge.git] / chrome / common / extensions / permissions / chrome_api_permissions.cc
blobaa9eaab3257982c4a1f1184629ad7b359a837c8b
1 // Copyright (c) 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.
5 #include "chrome/common/extensions/permissions/chrome_api_permissions.h"
7 #include "extensions/common/permissions/api_permission.h"
8 #include "extensions/common/permissions/api_permission_set.h"
9 #include "extensions/common/permissions/media_galleries_permission.h"
10 #include "extensions/common/permissions/permission_message.h"
11 #include "extensions/common/permissions/permissions_info.h"
12 #include "extensions/common/permissions/socket_permission.h"
13 #include "extensions/common/permissions/usb_device_permission.h"
14 #include "grit/extensions_strings.h"
15 #include "grit/generated_resources.h"
17 namespace extensions {
19 namespace {
21 const char kOldAlwaysOnTopWindowsPermission[] = "alwaysOnTopWindows";
22 const char kOldFullscreenPermission[] = "fullscreen";
23 const char kOldOverrideEscFullscreenPermission[] = "overrideEscFullscreen";
24 const char kOldUnlimitedStoragePermission[] = "unlimited_storage";
25 const char kWindowsPermission[] = "windows";
27 template<typename T> APIPermission* CreateAPIPermission(
28 const APIPermissionInfo* permission) {
29 return new T(permission);
32 } // namespace
34 std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
35 const {
36 struct PermissionRegistration {
37 APIPermission::ID id;
38 const char* name;
39 int flags;
40 int l10n_message_id;
41 PermissionMessage::ID message_id;
42 APIPermissionInfo::APIPermissionConstructor constructor;
43 } PermissionsToRegister[] = {
44 // Register permissions for all extension types.
45 {APIPermission::kBackground, "background"},
46 {APIPermission::kClipboardRead, "clipboardRead",
47 APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_CLIPBOARD,
48 PermissionMessage::kClipboard},
49 {APIPermission::kClipboardWrite, "clipboardWrite"},
50 {APIPermission::kDeclarativeContent, "declarativeContent"},
51 {APIPermission::kDeclarativeWebRequest, "declarativeWebRequest",
52 APIPermissionInfo::kFlagNone,
53 IDS_EXTENSION_PROMPT_WARNING_DECLARATIVE_WEB_REQUEST,
54 PermissionMessage::kDeclarativeWebRequest},
55 {APIPermission::kDesktopCapture, "desktopCapture",
56 APIPermissionInfo::kFlagNone,
57 IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE,
58 PermissionMessage::kDesktopCapture},
59 {APIPermission::kDns, "dns"},
60 {APIPermission::kDownloads, "downloads", APIPermissionInfo::kFlagNone,
61 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS, PermissionMessage::kDownloads},
62 {APIPermission::kDownloadsOpen, "downloads.open",
63 APIPermissionInfo::kFlagNone,
64 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN,
65 PermissionMessage::kDownloadsOpen},
66 {APIPermission::kDownloadsShelf, "downloads.shelf"},
67 {APIPermission::kIdentity, "identity"},
68 {APIPermission::kExperimental, "experimental",
69 APIPermissionInfo::kFlagCannotBeOptional},
70 // NOTE(kalman): this is provided by a manifest property but needs to
71 // appear in the install permission dialogue, so we need a fake
72 // permission for it. See http://crbug.com/247857.
73 {APIPermission::kWebConnectable, "webConnectable",
74 APIPermissionInfo::kFlagCannotBeOptional |
75 APIPermissionInfo::kFlagInternal,
76 IDS_EXTENSION_PROMPT_WARNING_WEB_CONNECTABLE,
77 PermissionMessage::kWebConnectable},
78 {APIPermission::kGeolocation, "geolocation",
79 APIPermissionInfo::kFlagCannotBeOptional,
80 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
81 PermissionMessage::kGeolocation},
82 {APIPermission::kNotification, "notifications"},
83 {APIPermission::kUnlimitedStorage, "unlimitedStorage",
84 APIPermissionInfo::kFlagCannotBeOptional},
85 {APIPermission::kGcm, "gcm"},
87 // Register extension permissions.
88 {APIPermission::kAccessibilityFeaturesModify,
89 "accessibilityFeatures.modify", APIPermissionInfo::kFlagNone,
90 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY,
91 PermissionMessage::kAccessibilityFeaturesModify},
92 {APIPermission::kAccessibilityFeaturesRead,
93 "accessibilityFeatures.read", APIPermissionInfo::kFlagNone,
94 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ,
95 PermissionMessage::kAccessibilityFeaturesRead},
96 {APIPermission::kActiveTab, "activeTab"},
97 {APIPermission::kAdView, "adview"},
98 {APIPermission::kAlarms, "alarms"},
99 {APIPermission::kBookmark, "bookmarks", APIPermissionInfo::kFlagNone,
100 IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, PermissionMessage::kBookmarks},
101 {APIPermission::kBrailleDisplayPrivate, "brailleDisplayPrivate",
102 APIPermissionInfo::kFlagCannotBeOptional},
103 {APIPermission::kBrowsingData, "browsingData"},
104 {APIPermission::kContentSettings, "contentSettings",
105 APIPermissionInfo::kFlagNone,
106 IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS,
107 PermissionMessage::kContentSettings},
108 {APIPermission::kContextMenus, "contextMenus"},
109 {APIPermission::kCookie, "cookies"},
110 {APIPermission::kFileBrowserHandler, "fileBrowserHandler",
111 APIPermissionInfo::kFlagCannotBeOptional},
112 {APIPermission::kFontSettings, "fontSettings",
113 APIPermissionInfo::kFlagCannotBeOptional},
114 {APIPermission::kHistory, "history", APIPermissionInfo::kFlagNone,
115 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY,
116 PermissionMessage::kBrowsingHistory},
117 {APIPermission::kIdltest, "idltest"},
118 {APIPermission::kIdle, "idle"},
119 {APIPermission::kInfobars, "infobars"},
120 {APIPermission::kInput, "input", APIPermissionInfo::kFlagNone,
121 IDS_EXTENSION_PROMPT_WARNING_INPUT, PermissionMessage::kInput},
122 {APIPermission::kLocation, "location",
123 APIPermissionInfo::kFlagCannotBeOptional,
124 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
125 PermissionMessage::kGeolocation},
126 {APIPermission::kManagement, "management", APIPermissionInfo::kFlagNone,
127 IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT,
128 PermissionMessage::kManagement},
129 {APIPermission::kNativeMessaging, "nativeMessaging",
130 APIPermissionInfo::kFlagNone,
131 IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING,
132 PermissionMessage::kNativeMessaging},
133 {APIPermission::kPower, "power"},
134 {APIPermission::kPrivacy, "privacy", APIPermissionInfo::kFlagNone,
135 IDS_EXTENSION_PROMPT_WARNING_PRIVACY, PermissionMessage::kPrivacy},
136 {APIPermission::kProcesses, "processes", APIPermissionInfo::kFlagNone,
137 IDS_EXTENSION_PROMPT_WARNING_TABS, PermissionMessage::kTabs},
138 {APIPermission::kSessions, "sessions"},
139 {APIPermission::kSignedInDevices, "signedInDevices",
140 APIPermissionInfo::kFlagNone,
141 IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES,
142 PermissionMessage::kSignedInDevices},
143 {APIPermission::kStorage, "storage"},
144 {APIPermission::kSyncFileSystem, "syncFileSystem",
145 APIPermissionInfo::kFlagNone,
146 IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM,
147 PermissionMessage::kSyncFileSystem},
148 {APIPermission::kTab, "tabs", APIPermissionInfo::kFlagNone,
149 IDS_EXTENSION_PROMPT_WARNING_TABS, PermissionMessage::kTabs},
150 {APIPermission::kTopSites, "topSites", APIPermissionInfo::kFlagNone,
151 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY,
152 PermissionMessage::kBrowsingHistory},
153 {APIPermission::kTts, "tts", 0,
154 APIPermissionInfo::kFlagCannotBeOptional},
155 {APIPermission::kTtsEngine, "ttsEngine",
156 APIPermissionInfo::kFlagCannotBeOptional,
157 IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE,
158 PermissionMessage::kTtsEngine},
159 {APIPermission::kWallpaper, "wallpaper",
160 APIPermissionInfo::kFlagCannotBeOptional,
161 IDS_EXTENSION_PROMPT_WARNING_WALLPAPER, PermissionMessage::kWallpaper},
162 {APIPermission::kWebNavigation, "webNavigation",
163 APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_TABS,
164 PermissionMessage::kTabs},
165 {APIPermission::kWebRequest, "webRequest"},
166 {APIPermission::kWebRequestBlocking, "webRequestBlocking"},
167 {APIPermission::kWebView, "webview",
168 APIPermissionInfo::kFlagCannotBeOptional},
170 // Register private permissions.
171 {APIPermission::kScreenlockPrivate, "screenlockPrivate",
172 APIPermissionInfo::kFlagCannotBeOptional,
173 IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE,
174 PermissionMessage::kScreenlockPrivate},
175 {APIPermission::kActivityLogPrivate, "activityLogPrivate",
176 APIPermissionInfo::kFlagCannotBeOptional,
177 IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE,
178 PermissionMessage::kActivityLogPrivate},
179 {APIPermission::kAutoTestPrivate, "autotestPrivate",
180 APIPermissionInfo::kFlagCannotBeOptional},
181 {APIPermission::kBookmarkManagerPrivate, "bookmarkManagerPrivate",
182 APIPermissionInfo::kFlagCannotBeOptional},
183 {APIPermission::kCast, "cast",
184 APIPermissionInfo::kFlagCannotBeOptional},
185 {APIPermission::kChromeosInfoPrivate, "chromeosInfoPrivate",
186 APIPermissionInfo::kFlagCannotBeOptional},
187 {APIPermission::kCommandLinePrivate, "commandLinePrivate",
188 APIPermissionInfo::kFlagCannotBeOptional},
189 {APIPermission::kDeveloperPrivate, "developerPrivate",
190 APIPermissionInfo::kFlagCannotBeOptional},
191 {APIPermission::kDiagnostics, "diagnostics",
192 APIPermissionInfo::kFlagCannotBeOptional},
193 {APIPermission::kDial, "dial",
194 APIPermissionInfo::kFlagCannotBeOptional},
195 {APIPermission::kDownloadsInternal, "downloadsInternal"},
196 {APIPermission::kFileBrowserHandlerInternal,
197 "fileBrowserHandlerInternal",
198 APIPermissionInfo::kFlagCannotBeOptional},
199 {APIPermission::kFileBrowserPrivate, "fileBrowserPrivate",
200 APIPermissionInfo::kFlagCannotBeOptional},
201 {APIPermission::kHotwordPrivate, "hotwordPrivate",
202 APIPermissionInfo::kFlagCannotBeOptional},
203 {APIPermission::kIdentityPrivate, "identityPrivate",
204 APIPermissionInfo::kFlagCannotBeOptional},
205 {APIPermission::kLogPrivate, "logPrivate"},
206 {APIPermission::kWebcamPrivate, "webcamPrivate"},
207 {APIPermission::kNetworkingPrivate, "networkingPrivate",
208 APIPermissionInfo::kFlagCannotBeOptional,
209 IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE,
210 PermissionMessage::kNetworkingPrivate},
211 {APIPermission::kMediaPlayerPrivate, "mediaPlayerPrivate",
212 APIPermissionInfo::kFlagCannotBeOptional},
213 {APIPermission::kMetricsPrivate, "metricsPrivate",
214 APIPermissionInfo::kFlagCannotBeOptional},
215 {APIPermission::kMDns, "mdns",
216 APIPermissionInfo::kFlagCannotBeOptional},
217 {APIPermission::kMusicManagerPrivate, "musicManagerPrivate",
218 APIPermissionInfo::kFlagCannotBeOptional,
219 IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE,
220 PermissionMessage::kMusicManagerPrivate},
221 {APIPermission::kPreferencesPrivate, "preferencesPrivate",
222 APIPermissionInfo::kFlagCannotBeOptional},
223 {APIPermission::kSystemPrivate, "systemPrivate",
224 APIPermissionInfo::kFlagCannotBeOptional},
225 {APIPermission::kCloudPrintPrivate, "cloudPrintPrivate",
226 APIPermissionInfo::kFlagCannotBeOptional},
227 {APIPermission::kInputMethodPrivate, "inputMethodPrivate",
228 APIPermissionInfo::kFlagCannotBeOptional},
229 {APIPermission::kEchoPrivate, "echoPrivate",
230 APIPermissionInfo::kFlagCannotBeOptional},
231 {APIPermission::kFeedbackPrivate, "feedbackPrivate",
232 APIPermissionInfo::kFlagCannotBeOptional},
233 {APIPermission::kImageWriterPrivate, "imageWriterPrivate",
234 APIPermissionInfo::kFlagCannotBeOptional},
235 {APIPermission::kReadingListPrivate, "readingListPrivate",
236 APIPermissionInfo::kFlagCannotBeOptional},
237 {APIPermission::kRtcPrivate, "rtcPrivate",
238 APIPermissionInfo::kFlagCannotBeOptional},
239 {APIPermission::kTerminalPrivate, "terminalPrivate",
240 APIPermissionInfo::kFlagCannotBeOptional},
241 {APIPermission::kVirtualKeyboardPrivate, "virtualKeyboardPrivate",
242 APIPermissionInfo::kFlagCannotBeOptional},
243 {APIPermission::kWallpaperPrivate, "wallpaperPrivate",
244 APIPermissionInfo::kFlagCannotBeOptional},
245 {APIPermission::kWebstorePrivate, "webstorePrivate",
246 APIPermissionInfo::kFlagCannotBeOptional},
247 {APIPermission::kMediaGalleriesPrivate, "mediaGalleriesPrivate",
248 APIPermissionInfo::kFlagCannotBeOptional},
249 {APIPermission::kStreamsPrivate, "streamsPrivate",
250 APIPermissionInfo::kFlagCannotBeOptional},
251 {APIPermission::kEnterprisePlatformKeysPrivate,
252 "enterprise.platformKeysPrivate",
253 APIPermissionInfo::kFlagCannotBeOptional},
254 {APIPermission::kWebrtcAudioPrivate, "webrtcAudioPrivate",
255 APIPermissionInfo::kFlagCannotBeOptional},
256 {APIPermission::kWebrtcLoggingPrivate, "webrtcLoggingPrivate",
257 APIPermissionInfo::kFlagCannotBeOptional},
258 {APIPermission::kPrincipalsPrivate, "principalsPrivate",
259 APIPermissionInfo::kFlagCannotBeOptional},
260 {APIPermission::kFirstRunPrivate, "firstRunPrivate",
261 APIPermissionInfo::kFlagCannotBeOptional},
262 {APIPermission::kBluetoothPrivate, "bluetoothPrivate",
263 APIPermissionInfo::kFlagCannotBeOptional,
264 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE,
265 PermissionMessage::kBluetoothPrivate},
267 // Full url access permissions.
268 {APIPermission::kDebugger, "debugger",
269 APIPermissionInfo::kFlagImpliesFullURLAccess |
270 APIPermissionInfo::kFlagCannotBeOptional,
271 IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, PermissionMessage::kDebugger},
272 {APIPermission::kDevtools, "devtools",
273 APIPermissionInfo::kFlagImpliesFullURLAccess |
274 APIPermissionInfo::kFlagCannotBeOptional |
275 APIPermissionInfo::kFlagInternal},
276 {APIPermission::kPageCapture, "pageCapture",
277 APIPermissionInfo::kFlagImpliesFullURLAccess},
278 {APIPermission::kTabCapture, "tabCapture",
279 APIPermissionInfo::kFlagImpliesFullURLAccess},
280 {APIPermission::kTabCaptureForTab, "tabCaptureForTab",
281 APIPermissionInfo::kFlagInternal},
282 {APIPermission::kPlugin, "plugin",
283 APIPermissionInfo::kFlagImpliesFullURLAccess |
284 APIPermissionInfo::kFlagImpliesFullAccess |
285 APIPermissionInfo::kFlagCannotBeOptional |
286 APIPermissionInfo::kFlagInternal,
287 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
288 PermissionMessage::kFullAccess},
289 {APIPermission::kProxy, "proxy",
290 APIPermissionInfo::kFlagImpliesFullURLAccess |
291 APIPermissionInfo::kFlagCannotBeOptional},
293 // Platform-app permissions.
294 {APIPermission::kSerial, "serial", APIPermissionInfo::kFlagNone,
295 IDS_EXTENSION_PROMPT_WARNING_SERIAL, PermissionMessage::kSerial},
296 // Because warning messages for the "socket" permission vary based on
297 // the
298 // permissions parameters, no message ID or message text is specified
299 // here.
300 // The message ID and text used will be determined at run-time in the
301 // |SocketPermission| class.
302 {APIPermission::kSocket, "socket",
303 APIPermissionInfo::kFlagCannotBeOptional, 0, PermissionMessage::kNone,
304 &CreateAPIPermission<SocketPermission>},
305 {APIPermission::kAlwaysOnTopWindows, "app.window.alwaysOnTop"},
306 {APIPermission::kAudioCapture, "audioCapture",
307 APIPermissionInfo::kFlagNone,
308 IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE,
309 PermissionMessage::kAudioCapture},
310 {APIPermission::kVideoCapture, "videoCapture",
311 APIPermissionInfo::kFlagNone,
312 IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE,
313 PermissionMessage::kVideoCapture},
314 // The permission string for "fileSystem" is only shown when "write" or
315 // "directory" is present. Read-only access is only granted after the
316 // user
317 // has been shown a file or directory chooser dialog and selected a
318 // file or
319 // directory . Selecting the file or directory is considered consent to
320 // read it.
321 {APIPermission::kFileSystem, "fileSystem"},
322 {APIPermission::kFileSystemDirectory, "fileSystem.directory",
323 APIPermissionInfo::kFlagNone,
324 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY,
325 PermissionMessage::kFileSystemDirectory},
326 {APIPermission::kFileSystemProvider, "fileSystemProvider"},
327 {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"},
328 {APIPermission::kFileSystemWrite, "fileSystem.write"},
329 {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory",
330 APIPermissionInfo::kFlagNone,
331 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY,
332 PermissionMessage::kFileSystemWriteDirectory},
333 {APIPermission::kHid, "hid", APIPermissionInfo::kFlagNone,
334 IDS_EXTENSION_PROMPT_WARNING_HID, PermissionMessage::kHid},
335 // Because warning messages for the "mediaGalleries" permission vary
336 // based
337 // on the permissions parameters, no message ID or message text is
338 // specified here.
339 // The message ID and text used will be determined at run-time in the
340 // |MediaGalleriesPermission| class.
341 {APIPermission::kMediaGalleries, "mediaGalleries",
342 APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone,
343 &CreateAPIPermission<MediaGalleriesPermission>},
344 {APIPermission::kPushMessaging, "pushMessaging",
345 APIPermissionInfo::kFlagCannotBeOptional},
346 {APIPermission::kUsb, "usb", APIPermissionInfo::kFlagNone,
347 IDS_EXTENSION_PROMPT_WARNING_USB, PermissionMessage::kUsb},
348 {APIPermission::kUsbDevice, "usbDevices", APIPermissionInfo::kFlagNone,
349 0, PermissionMessage::kNone,
350 &CreateAPIPermission<UsbDevicePermission>},
351 {APIPermission::kSystemCpu, "system.cpu"},
352 {APIPermission::kSystemMemory, "system.memory"},
353 {APIPermission::kSystemNetwork, "system.network"},
354 {APIPermission::kSystemDisplay, "system.display"},
355 {APIPermission::kSystemStorage, "system.storage"},
356 {APIPermission::kPointerLock, "pointerLock"},
357 {APIPermission::kFullscreen, "app.window.fullscreen"},
358 {APIPermission::kAudio, "audio"},
359 {APIPermission::kCastStreaming, "cast.streaming"},
360 {APIPermission::kOverrideEscFullscreen,
361 "app.window.fullscreen.overrideEsc"},
362 {APIPermission::kWindowShape, "app.window.shape"},
363 {APIPermission::kBrowser, "browser"},
365 // Settings override permissions.
366 {APIPermission::kHomepage, "homepage",
367 APIPermissionInfo::kFlagCannotBeOptional |
368 APIPermissionInfo::kFlagInternal,
369 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE,
370 PermissionMessage::kHomepage},
371 {APIPermission::kSearchProvider, "searchProvider",
372 APIPermissionInfo::kFlagCannotBeOptional |
373 APIPermissionInfo::kFlagInternal,
374 IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE,
375 PermissionMessage::kSearchProvider},
376 {APIPermission::kStartupPages, "startupPages",
377 APIPermissionInfo::kFlagCannotBeOptional |
378 APIPermissionInfo::kFlagInternal,
379 IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE,
380 PermissionMessage::kStartupPages},
383 std::vector<APIPermissionInfo*> permissions;
385 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(PermissionsToRegister); ++i) {
386 const PermissionRegistration& pr = PermissionsToRegister[i];
387 permissions.push_back(new APIPermissionInfo(
388 pr.id, pr.name, pr.l10n_message_id,
389 pr.message_id ? pr.message_id : PermissionMessage::kNone,
390 pr.flags,
391 pr.constructor));
393 return permissions;
396 std::vector<PermissionsProvider::AliasInfo>
397 ChromeAPIPermissions::GetAllAliases() const {
398 // Register aliases.
399 std::vector<PermissionsProvider::AliasInfo> aliases;
400 aliases.push_back(PermissionsProvider::AliasInfo(
401 "app.window.alwaysOnTop", kOldAlwaysOnTopWindowsPermission));
402 aliases.push_back(PermissionsProvider::AliasInfo("app.window.fullscreen",
403 kOldFullscreenPermission));
404 aliases.push_back(
405 PermissionsProvider::AliasInfo("app.window.fullscreen.overrideEsc",
406 kOldOverrideEscFullscreenPermission));
407 aliases.push_back(PermissionsProvider::AliasInfo(
408 "unlimitedStorage", kOldUnlimitedStoragePermission));
409 aliases.push_back(PermissionsProvider::AliasInfo(
410 "tabs", kWindowsPermission));
411 return aliases;
414 } // namespace extensions