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
{
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
);
34 std::vector
<APIPermissionInfo
*> ChromeAPIPermissions::GetAllPermissions()
36 struct PermissionRegistration
{
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::kAutomation
, "automation",
100 APIPermissionInfo::kFlagCannotBeOptional
,
101 IDS_EXTENSION_PROMPT_WARNING_AUTOMATION
,
102 PermissionMessage::kAutomation
},
103 {APIPermission::kBookmark
, "bookmarks", APIPermissionInfo::kFlagNone
,
104 IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS
, PermissionMessage::kBookmarks
},
105 {APIPermission::kBrailleDisplayPrivate
, "brailleDisplayPrivate",
106 APIPermissionInfo::kFlagCannotBeOptional
},
107 {APIPermission::kBrowsingData
, "browsingData"},
108 {APIPermission::kContentSettings
, "contentSettings",
109 APIPermissionInfo::kFlagNone
,
110 IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS
,
111 PermissionMessage::kContentSettings
},
112 {APIPermission::kContextMenus
, "contextMenus"},
113 {APIPermission::kCookie
, "cookies"},
114 {APIPermission::kFileBrowserHandler
, "fileBrowserHandler",
115 APIPermissionInfo::kFlagCannotBeOptional
},
116 {APIPermission::kFontSettings
, "fontSettings",
117 APIPermissionInfo::kFlagCannotBeOptional
},
118 {APIPermission::kHistory
, "history", APIPermissionInfo::kFlagNone
,
119 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY
,
120 PermissionMessage::kBrowsingHistory
},
121 {APIPermission::kIdltest
, "idltest"},
122 {APIPermission::kIdle
, "idle"},
123 {APIPermission::kInfobars
, "infobars"},
124 {APIPermission::kInput
, "input", APIPermissionInfo::kFlagNone
,
125 IDS_EXTENSION_PROMPT_WARNING_INPUT
, PermissionMessage::kInput
},
126 {APIPermission::kLocation
, "location",
127 APIPermissionInfo::kFlagCannotBeOptional
,
128 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION
,
129 PermissionMessage::kGeolocation
},
130 {APIPermission::kManagement
, "management", APIPermissionInfo::kFlagNone
,
131 IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT
,
132 PermissionMessage::kManagement
},
133 {APIPermission::kNativeMessaging
, "nativeMessaging",
134 APIPermissionInfo::kFlagNone
,
135 IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING
,
136 PermissionMessage::kNativeMessaging
},
137 {APIPermission::kPower
, "power"},
138 {APIPermission::kPrivacy
, "privacy", APIPermissionInfo::kFlagNone
,
139 IDS_EXTENSION_PROMPT_WARNING_PRIVACY
, PermissionMessage::kPrivacy
},
140 {APIPermission::kProcesses
, "processes", APIPermissionInfo::kFlagNone
,
141 IDS_EXTENSION_PROMPT_WARNING_TABS
, PermissionMessage::kTabs
},
142 {APIPermission::kSessions
, "sessions"},
143 {APIPermission::kSignedInDevices
, "signedInDevices",
144 APIPermissionInfo::kFlagNone
,
145 IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES
,
146 PermissionMessage::kSignedInDevices
},
147 {APIPermission::kStorage
, "storage"},
148 {APIPermission::kSyncFileSystem
, "syncFileSystem",
149 APIPermissionInfo::kFlagNone
,
150 IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM
,
151 PermissionMessage::kSyncFileSystem
},
152 {APIPermission::kTab
, "tabs", APIPermissionInfo::kFlagNone
,
153 IDS_EXTENSION_PROMPT_WARNING_TABS
, PermissionMessage::kTabs
},
154 {APIPermission::kTopSites
, "topSites", APIPermissionInfo::kFlagNone
,
155 IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY
,
156 PermissionMessage::kBrowsingHistory
},
157 {APIPermission::kTts
, "tts", 0,
158 APIPermissionInfo::kFlagCannotBeOptional
},
159 {APIPermission::kTtsEngine
, "ttsEngine",
160 APIPermissionInfo::kFlagCannotBeOptional
,
161 IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE
,
162 PermissionMessage::kTtsEngine
},
163 {APIPermission::kWallpaper
, "wallpaper",
164 APIPermissionInfo::kFlagCannotBeOptional
,
165 IDS_EXTENSION_PROMPT_WARNING_WALLPAPER
, PermissionMessage::kWallpaper
},
166 {APIPermission::kWebNavigation
, "webNavigation",
167 APIPermissionInfo::kFlagNone
, IDS_EXTENSION_PROMPT_WARNING_TABS
,
168 PermissionMessage::kTabs
},
169 {APIPermission::kWebRequest
, "webRequest"},
170 {APIPermission::kWebRequestBlocking
, "webRequestBlocking"},
171 {APIPermission::kWebView
, "webview",
172 APIPermissionInfo::kFlagCannotBeOptional
},
174 // Register private permissions.
175 {APIPermission::kScreenlockPrivate
, "screenlockPrivate",
176 APIPermissionInfo::kFlagCannotBeOptional
,
177 IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE
,
178 PermissionMessage::kScreenlockPrivate
},
179 {APIPermission::kActivityLogPrivate
, "activityLogPrivate",
180 APIPermissionInfo::kFlagCannotBeOptional
,
181 IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE
,
182 PermissionMessage::kActivityLogPrivate
},
183 {APIPermission::kAutoTestPrivate
, "autotestPrivate",
184 APIPermissionInfo::kFlagCannotBeOptional
},
185 {APIPermission::kBookmarkManagerPrivate
, "bookmarkManagerPrivate",
186 APIPermissionInfo::kFlagCannotBeOptional
},
187 {APIPermission::kCast
, "cast",
188 APIPermissionInfo::kFlagCannotBeOptional
},
189 {APIPermission::kChromeosInfoPrivate
, "chromeosInfoPrivate",
190 APIPermissionInfo::kFlagCannotBeOptional
},
191 {APIPermission::kCommandLinePrivate
, "commandLinePrivate",
192 APIPermissionInfo::kFlagCannotBeOptional
},
193 {APIPermission::kDeveloperPrivate
, "developerPrivate",
194 APIPermissionInfo::kFlagCannotBeOptional
},
195 {APIPermission::kDiagnostics
, "diagnostics",
196 APIPermissionInfo::kFlagCannotBeOptional
},
197 {APIPermission::kDial
, "dial",
198 APIPermissionInfo::kFlagCannotBeOptional
},
199 {APIPermission::kDownloadsInternal
, "downloadsInternal"},
200 {APIPermission::kFileBrowserHandlerInternal
,
201 "fileBrowserHandlerInternal",
202 APIPermissionInfo::kFlagCannotBeOptional
},
203 {APIPermission::kFileBrowserPrivate
, "fileBrowserPrivate",
204 APIPermissionInfo::kFlagCannotBeOptional
},
205 {APIPermission::kHotwordPrivate
, "hotwordPrivate",
206 APIPermissionInfo::kFlagCannotBeOptional
},
207 {APIPermission::kIdentityPrivate
, "identityPrivate",
208 APIPermissionInfo::kFlagCannotBeOptional
},
209 {APIPermission::kLogPrivate
, "logPrivate"},
210 {APIPermission::kWebcamPrivate
, "webcamPrivate"},
211 {APIPermission::kNetworkingPrivate
, "networkingPrivate",
212 APIPermissionInfo::kFlagCannotBeOptional
,
213 IDS_EXTENSION_PROMPT_WARNING_NETWORKING_PRIVATE
,
214 PermissionMessage::kNetworkingPrivate
},
215 {APIPermission::kMediaPlayerPrivate
, "mediaPlayerPrivate",
216 APIPermissionInfo::kFlagCannotBeOptional
},
217 {APIPermission::kMetricsPrivate
, "metricsPrivate",
218 APIPermissionInfo::kFlagCannotBeOptional
},
219 {APIPermission::kMDns
, "mdns",
220 APIPermissionInfo::kFlagCannotBeOptional
},
221 {APIPermission::kMusicManagerPrivate
, "musicManagerPrivate",
222 APIPermissionInfo::kFlagCannotBeOptional
,
223 IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE
,
224 PermissionMessage::kMusicManagerPrivate
},
225 {APIPermission::kPreferencesPrivate
, "preferencesPrivate",
226 APIPermissionInfo::kFlagCannotBeOptional
},
227 {APIPermission::kSystemPrivate
, "systemPrivate",
228 APIPermissionInfo::kFlagCannotBeOptional
},
229 {APIPermission::kCloudPrintPrivate
, "cloudPrintPrivate",
230 APIPermissionInfo::kFlagCannotBeOptional
},
231 {APIPermission::kInputMethodPrivate
, "inputMethodPrivate",
232 APIPermissionInfo::kFlagCannotBeOptional
},
233 {APIPermission::kEchoPrivate
, "echoPrivate",
234 APIPermissionInfo::kFlagCannotBeOptional
},
235 {APIPermission::kFeedbackPrivate
, "feedbackPrivate",
236 APIPermissionInfo::kFlagCannotBeOptional
},
237 {APIPermission::kImageWriterPrivate
, "imageWriterPrivate",
238 APIPermissionInfo::kFlagCannotBeOptional
},
239 {APIPermission::kReadingListPrivate
, "readingListPrivate",
240 APIPermissionInfo::kFlagCannotBeOptional
},
241 {APIPermission::kRtcPrivate
, "rtcPrivate",
242 APIPermissionInfo::kFlagCannotBeOptional
},
243 {APIPermission::kTerminalPrivate
, "terminalPrivate",
244 APIPermissionInfo::kFlagCannotBeOptional
},
245 {APIPermission::kVirtualKeyboardPrivate
, "virtualKeyboardPrivate",
246 APIPermissionInfo::kFlagCannotBeOptional
},
247 {APIPermission::kWallpaperPrivate
, "wallpaperPrivate",
248 APIPermissionInfo::kFlagCannotBeOptional
},
249 {APIPermission::kWebstorePrivate
, "webstorePrivate",
250 APIPermissionInfo::kFlagCannotBeOptional
},
251 {APIPermission::kMediaGalleriesPrivate
, "mediaGalleriesPrivate",
252 APIPermissionInfo::kFlagCannotBeOptional
},
253 {APIPermission::kStreamsPrivate
, "streamsPrivate",
254 APIPermissionInfo::kFlagCannotBeOptional
},
255 {APIPermission::kEnterprisePlatformKeysPrivate
,
256 "enterprise.platformKeysPrivate",
257 APIPermissionInfo::kFlagCannotBeOptional
},
258 {APIPermission::kWebrtcAudioPrivate
, "webrtcAudioPrivate",
259 APIPermissionInfo::kFlagCannotBeOptional
},
260 {APIPermission::kWebrtcLoggingPrivate
, "webrtcLoggingPrivate",
261 APIPermissionInfo::kFlagCannotBeOptional
},
262 {APIPermission::kPrincipalsPrivate
, "principalsPrivate",
263 APIPermissionInfo::kFlagCannotBeOptional
},
264 {APIPermission::kFirstRunPrivate
, "firstRunPrivate",
265 APIPermissionInfo::kFlagCannotBeOptional
},
266 {APIPermission::kBluetoothPrivate
, "bluetoothPrivate",
267 APIPermissionInfo::kFlagCannotBeOptional
,
268 IDS_EXTENSION_PROMPT_WARNING_BLUETOOTH_PRIVATE
,
269 PermissionMessage::kBluetoothPrivate
},
271 // Full url access permissions.
272 {APIPermission::kDebugger
, "debugger",
273 APIPermissionInfo::kFlagImpliesFullURLAccess
|
274 APIPermissionInfo::kFlagCannotBeOptional
,
275 IDS_EXTENSION_PROMPT_WARNING_DEBUGGER
, PermissionMessage::kDebugger
},
276 {APIPermission::kDevtools
, "devtools",
277 APIPermissionInfo::kFlagImpliesFullURLAccess
|
278 APIPermissionInfo::kFlagCannotBeOptional
|
279 APIPermissionInfo::kFlagInternal
},
280 {APIPermission::kPageCapture
, "pageCapture",
281 APIPermissionInfo::kFlagImpliesFullURLAccess
},
282 {APIPermission::kTabCapture
, "tabCapture",
283 APIPermissionInfo::kFlagImpliesFullURLAccess
},
284 {APIPermission::kTabCaptureForTab
, "tabCaptureForTab",
285 APIPermissionInfo::kFlagInternal
},
286 {APIPermission::kPlugin
, "plugin",
287 APIPermissionInfo::kFlagImpliesFullURLAccess
|
288 APIPermissionInfo::kFlagImpliesFullAccess
|
289 APIPermissionInfo::kFlagCannotBeOptional
|
290 APIPermissionInfo::kFlagInternal
,
291 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS
,
292 PermissionMessage::kFullAccess
},
293 {APIPermission::kProxy
, "proxy",
294 APIPermissionInfo::kFlagImpliesFullURLAccess
|
295 APIPermissionInfo::kFlagCannotBeOptional
},
297 // Platform-app permissions.
298 {APIPermission::kSerial
, "serial", APIPermissionInfo::kFlagNone
,
299 IDS_EXTENSION_PROMPT_WARNING_SERIAL
, PermissionMessage::kSerial
},
300 // Because warning messages for the "socket" permission vary based on
302 // permissions parameters, no message ID or message text is specified
304 // The message ID and text used will be determined at run-time in the
305 // |SocketPermission| class.
306 {APIPermission::kSocket
, "socket",
307 APIPermissionInfo::kFlagCannotBeOptional
, 0, PermissionMessage::kNone
,
308 &CreateAPIPermission
<SocketPermission
>},
309 {APIPermission::kAlwaysOnTopWindows
, "app.window.alwaysOnTop"},
310 {APIPermission::kAudioCapture
, "audioCapture",
311 APIPermissionInfo::kFlagNone
,
312 IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE
,
313 PermissionMessage::kAudioCapture
},
314 {APIPermission::kVideoCapture
, "videoCapture",
315 APIPermissionInfo::kFlagNone
,
316 IDS_EXTENSION_PROMPT_WARNING_VIDEO_CAPTURE
,
317 PermissionMessage::kVideoCapture
},
318 // The permission string for "fileSystem" is only shown when "write" or
319 // "directory" is present. Read-only access is only granted after the
321 // has been shown a file or directory chooser dialog and selected a
323 // directory . Selecting the file or directory is considered consent to
325 {APIPermission::kFileSystem
, "fileSystem"},
326 {APIPermission::kFileSystemDirectory
, "fileSystem.directory",
327 APIPermissionInfo::kFlagNone
,
328 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY
,
329 PermissionMessage::kFileSystemDirectory
},
330 {APIPermission::kFileSystemProvider
, "fileSystemProvider"},
331 {APIPermission::kFileSystemRetainEntries
, "fileSystem.retainEntries"},
332 {APIPermission::kFileSystemWrite
, "fileSystem.write"},
333 {APIPermission::kFileSystemWriteDirectory
, "fileSystem.writeDirectory",
334 APIPermissionInfo::kFlagNone
,
335 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY
,
336 PermissionMessage::kFileSystemWriteDirectory
},
337 {APIPermission::kHid
, "hid", APIPermissionInfo::kFlagNone
,
338 IDS_EXTENSION_PROMPT_WARNING_HID
, PermissionMessage::kHid
},
339 // Because warning messages for the "mediaGalleries" permission vary
341 // on the permissions parameters, no message ID or message text is
343 // The message ID and text used will be determined at run-time in the
344 // |MediaGalleriesPermission| class.
345 {APIPermission::kMediaGalleries
, "mediaGalleries",
346 APIPermissionInfo::kFlagNone
, 0, PermissionMessage::kNone
,
347 &CreateAPIPermission
<MediaGalleriesPermission
>},
348 {APIPermission::kPushMessaging
, "pushMessaging",
349 APIPermissionInfo::kFlagCannotBeOptional
},
350 {APIPermission::kUsb
, "usb", APIPermissionInfo::kFlagNone
,
351 IDS_EXTENSION_PROMPT_WARNING_USB
, PermissionMessage::kUsb
},
352 {APIPermission::kUsbDevice
, "usbDevices", APIPermissionInfo::kFlagNone
,
353 0, PermissionMessage::kNone
,
354 &CreateAPIPermission
<UsbDevicePermission
>},
355 {APIPermission::kSystemCpu
, "system.cpu"},
356 {APIPermission::kSystemMemory
, "system.memory"},
357 {APIPermission::kSystemNetwork
, "system.network"},
358 {APIPermission::kSystemDisplay
, "system.display"},
359 {APIPermission::kSystemStorage
, "system.storage"},
360 {APIPermission::kPointerLock
, "pointerLock"},
361 {APIPermission::kFullscreen
, "app.window.fullscreen"},
362 {APIPermission::kAudio
, "audio"},
363 {APIPermission::kCastStreaming
, "cast.streaming"},
364 {APIPermission::kOverrideEscFullscreen
,
365 "app.window.fullscreen.overrideEsc"},
366 {APIPermission::kWindowShape
, "app.window.shape"},
367 {APIPermission::kBrowser
, "browser"},
369 // Settings override permissions.
370 {APIPermission::kHomepage
, "homepage",
371 APIPermissionInfo::kFlagCannotBeOptional
|
372 APIPermissionInfo::kFlagInternal
,
373 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE
,
374 PermissionMessage::kHomepage
},
375 {APIPermission::kSearchProvider
, "searchProvider",
376 APIPermissionInfo::kFlagCannotBeOptional
|
377 APIPermissionInfo::kFlagInternal
,
378 IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE
,
379 PermissionMessage::kSearchProvider
},
380 {APIPermission::kStartupPages
, "startupPages",
381 APIPermissionInfo::kFlagCannotBeOptional
|
382 APIPermissionInfo::kFlagInternal
,
383 IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE
,
384 PermissionMessage::kStartupPages
},
387 std::vector
<APIPermissionInfo
*> permissions
;
389 for (size_t i
= 0; i
< ARRAYSIZE_UNSAFE(PermissionsToRegister
); ++i
) {
390 const PermissionRegistration
& pr
= PermissionsToRegister
[i
];
391 permissions
.push_back(new APIPermissionInfo(
392 pr
.id
, pr
.name
, pr
.l10n_message_id
,
393 pr
.message_id
? pr
.message_id
: PermissionMessage::kNone
,
400 std::vector
<PermissionsProvider::AliasInfo
>
401 ChromeAPIPermissions::GetAllAliases() const {
403 std::vector
<PermissionsProvider::AliasInfo
> aliases
;
404 aliases
.push_back(PermissionsProvider::AliasInfo(
405 "app.window.alwaysOnTop", kOldAlwaysOnTopWindowsPermission
));
406 aliases
.push_back(PermissionsProvider::AliasInfo("app.window.fullscreen",
407 kOldFullscreenPermission
));
409 PermissionsProvider::AliasInfo("app.window.fullscreen.overrideEsc",
410 kOldOverrideEscFullscreenPermission
));
411 aliases
.push_back(PermissionsProvider::AliasInfo(
412 "unlimitedStorage", kOldUnlimitedStoragePermission
));
413 aliases
.push_back(PermissionsProvider::AliasInfo(
414 "tabs", kWindowsPermission
));
418 } // namespace extensions