Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: chrome/common/extensions/permissions/chrome_api_permissions.cc

Issue 1240283002: Implementation of the device attributes API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extension_api
Patch Set: Fixed build. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/common/extensions/permissions/chrome_api_permissions.h" 5 #include "chrome/common/extensions/permissions/chrome_api_permissions.h"
6 6
7 #include "chrome/grit/generated_resources.h" 7 #include "chrome/grit/generated_resources.h"
8 #include "extensions/common/permissions/api_permission.h" 8 #include "extensions/common/permissions/api_permission.h"
9 #include "extensions/common/permissions/api_permission_set.h" 9 #include "extensions/common/permissions/api_permission_set.h"
10 #include "extensions/common/permissions/media_galleries_permission.h" 10 #include "extensions/common/permissions/media_galleries_permission.h"
(...skipping 19 matching lines...) Expand all
30 // WARNING: If you are modifying a permission message in this list, be sure to 30 // WARNING: If you are modifying a permission message in this list, be sure to
31 // add the corresponding permission message rule to 31 // add the corresponding permission message rule to
32 // ChromePermissionMessageProvider::GetCoalescedPermissionMessages as well. 32 // ChromePermissionMessageProvider::GetCoalescedPermissionMessages as well.
33 // TODO(sashab): Remove all permission messages from this list, once 33 // TODO(sashab): Remove all permission messages from this list, once
34 // GetCoalescedPermissionMessages() is the only way of generating permission 34 // GetCoalescedPermissionMessages() is the only way of generating permission
35 // messages. 35 // messages.
36 APIPermissionInfo::InitInfo permissions_to_register[] = { 36 APIPermissionInfo::InitInfo permissions_to_register[] = {
37 // Register permissions for all extension types. 37 // Register permissions for all extension types.
38 {APIPermission::kBackground, "background"}, 38 {APIPermission::kBackground, "background"},
39 {APIPermission::kDeclarativeContent, "declarativeContent"}, 39 {APIPermission::kDeclarativeContent, "declarativeContent"},
40 {APIPermission::kDesktopCapture, 40 {APIPermission::kDesktopCapture, "desktopCapture",
41 "desktopCapture",
42 APIPermissionInfo::kFlagNone, 41 APIPermissionInfo::kFlagNone,
43 IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE, 42 IDS_EXTENSION_PROMPT_WARNING_DESKTOP_CAPTURE,
44 PermissionMessage::kDesktopCapture}, 43 PermissionMessage::kDesktopCapture},
45 {APIPermission::kDesktopCapturePrivate, "desktopCapturePrivate"}, 44 {APIPermission::kDesktopCapturePrivate, "desktopCapturePrivate"},
46 {APIPermission::kDownloads, 45 {APIPermission::kDownloads, "downloads", APIPermissionInfo::kFlagNone,
47 "downloads", 46 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS, PermissionMessage::kDownloads},
48 APIPermissionInfo::kFlagNone, 47 {APIPermission::kDownloadsOpen, "downloads.open",
49 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS,
50 PermissionMessage::kDownloads},
51 {APIPermission::kDownloadsOpen,
52 "downloads.open",
53 APIPermissionInfo::kFlagNone, 48 APIPermissionInfo::kFlagNone,
54 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN, 49 IDS_EXTENSION_PROMPT_WARNING_DOWNLOADS_OPEN,
55 PermissionMessage::kDownloadsOpen}, 50 PermissionMessage::kDownloadsOpen},
56 {APIPermission::kDownloadsShelf, "downloads.shelf"}, 51 {APIPermission::kDownloadsShelf, "downloads.shelf"},
57 {APIPermission::kEasyUnlockPrivate, "easyUnlockPrivate"}, 52 {APIPermission::kEasyUnlockPrivate, "easyUnlockPrivate"},
58 {APIPermission::kIdentity, "identity"}, 53 {APIPermission::kIdentity, "identity"},
59 {APIPermission::kIdentityEmail, 54 {APIPermission::kIdentityEmail, "identity.email",
60 "identity.email",
61 APIPermissionInfo::kFlagNone, 55 APIPermissionInfo::kFlagNone,
62 IDS_EXTENSION_PROMPT_WARNING_IDENTITY_EMAIL, 56 IDS_EXTENSION_PROMPT_WARNING_IDENTITY_EMAIL,
63 PermissionMessage::kIdentityEmail}, 57 PermissionMessage::kIdentityEmail},
64 {APIPermission::kExperimental, 58 {APIPermission::kExperimental, "experimental",
65 "experimental",
66 APIPermissionInfo::kFlagCannotBeOptional}, 59 APIPermissionInfo::kFlagCannotBeOptional},
67 {APIPermission::kEmbeddedExtensionOptions, 60 {APIPermission::kEmbeddedExtensionOptions, "embeddedExtensionOptions",
68 "embeddedExtensionOptions",
69 APIPermissionInfo::kFlagCannotBeOptional}, 61 APIPermissionInfo::kFlagCannotBeOptional},
70 {APIPermission::kGeolocation, 62 {APIPermission::kGeolocation, "geolocation",
71 "geolocation",
72 APIPermissionInfo::kFlagCannotBeOptional, 63 APIPermissionInfo::kFlagCannotBeOptional,
73 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION, 64 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
74 PermissionMessage::kGeolocation}, 65 PermissionMessage::kGeolocation},
75 {APIPermission::kNotifications, "notifications"}, 66 {APIPermission::kNotifications, "notifications"},
76 {APIPermission::kGcdPrivate, "gcdPrivate"}, 67 {APIPermission::kGcdPrivate, "gcdPrivate"},
77 {APIPermission::kGcm, "gcm"}, 68 {APIPermission::kGcm, "gcm"},
78 {APIPermission::kNotificationProvider, "notificationProvider"}, 69 {APIPermission::kNotificationProvider, "notificationProvider"},
79 70
80 // Register extension permissions. 71 // Register extension permissions.
81 {APIPermission::kAccessibilityFeaturesModify, 72 {APIPermission::kAccessibilityFeaturesModify,
82 "accessibilityFeatures.modify", 73 "accessibilityFeatures.modify", APIPermissionInfo::kFlagNone,
83 APIPermissionInfo::kFlagNone,
84 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY, 74 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_MODIFY,
85 PermissionMessage::kAccessibilityFeaturesModify}, 75 PermissionMessage::kAccessibilityFeaturesModify},
86 {APIPermission::kAccessibilityFeaturesRead, 76 {APIPermission::kAccessibilityFeaturesRead, "accessibilityFeatures.read",
87 "accessibilityFeatures.read",
88 APIPermissionInfo::kFlagNone, 77 APIPermissionInfo::kFlagNone,
89 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ, 78 IDS_EXTENSION_PROMPT_WARNING_ACCESSIBILITY_FEATURES_READ,
90 PermissionMessage::kAccessibilityFeaturesRead}, 79 PermissionMessage::kAccessibilityFeaturesRead},
91 {APIPermission::kAccessibilityPrivate, 80 {APIPermission::kAccessibilityPrivate, "accessibilityPrivate",
92 "accessibilityPrivate",
93 APIPermissionInfo::kFlagCannotBeOptional}, 81 APIPermissionInfo::kFlagCannotBeOptional},
94 {APIPermission::kActiveTab, "activeTab"}, 82 {APIPermission::kActiveTab, "activeTab"},
95 {APIPermission::kAudioModem, "audioModem"}, 83 {APIPermission::kAudioModem, "audioModem"},
96 {APIPermission::kBookmark, 84 {APIPermission::kBookmark, "bookmarks", APIPermissionInfo::kFlagNone,
97 "bookmarks", 85 IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS, PermissionMessage::kBookmarks},
98 APIPermissionInfo::kFlagNone, 86 {APIPermission::kBrailleDisplayPrivate, "brailleDisplayPrivate",
99 IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS,
100 PermissionMessage::kBookmarks},
101 {APIPermission::kBrailleDisplayPrivate,
102 "brailleDisplayPrivate",
103 APIPermissionInfo::kFlagCannotBeOptional}, 87 APIPermissionInfo::kFlagCannotBeOptional},
104 {APIPermission::kBrowsingData, "browsingData"}, 88 {APIPermission::kBrowsingData, "browsingData"},
105 {APIPermission::kContentSettings, 89 {APIPermission::kContentSettings, "contentSettings",
106 "contentSettings",
107 APIPermissionInfo::kFlagNone, 90 APIPermissionInfo::kFlagNone,
108 IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS, 91 IDS_EXTENSION_PROMPT_WARNING_CONTENT_SETTINGS,
109 PermissionMessage::kContentSettings}, 92 PermissionMessage::kContentSettings},
110 {APIPermission::kContextMenus, "contextMenus"}, 93 {APIPermission::kContextMenus, "contextMenus"},
111 {APIPermission::kCookie, "cookies"}, 94 {APIPermission::kCookie, "cookies"},
112 {APIPermission::kCopresence, 95 {APIPermission::kCopresence, "copresence", APIPermissionInfo::kFlagNone,
113 "copresence", 96 IDS_EXTENSION_PROMPT_WARNING_COPRESENCE, PermissionMessage::kCopresence},
114 APIPermissionInfo::kFlagNone,
115 IDS_EXTENSION_PROMPT_WARNING_COPRESENCE,
116 PermissionMessage::kCopresence},
117 {APIPermission::kCopresencePrivate, "copresencePrivate"}, 97 {APIPermission::kCopresencePrivate, "copresencePrivate"},
118 {APIPermission::kCryptotokenPrivate, "cryptotokenPrivate"}, 98 {APIPermission::kCryptotokenPrivate, "cryptotokenPrivate"},
119 {APIPermission::kDataReductionProxy, 99 {APIPermission::kDataReductionProxy, "dataReductionProxy",
120 "dataReductionProxy",
121 APIPermissionInfo::kFlagImpliesFullURLAccess | 100 APIPermissionInfo::kFlagImpliesFullURLAccess |
122 APIPermissionInfo::kFlagCannotBeOptional}, 101 APIPermissionInfo::kFlagCannotBeOptional},
102 {APIPermission::kEnterpriseDeviceAttributes,
103 "enterprise.deviceAttributes"},
123 {APIPermission::kEnterprisePlatformKeys, "enterprise.platformKeys"}, 104 {APIPermission::kEnterprisePlatformKeys, "enterprise.platformKeys"},
124 {APIPermission::kFileBrowserHandler, 105 {APIPermission::kFileBrowserHandler, "fileBrowserHandler",
125 "fileBrowserHandler", 106 APIPermissionInfo::kFlagCannotBeOptional},
126 APIPermissionInfo::kFlagCannotBeOptional}, 107 {APIPermission::kFontSettings, "fontSettings",
127 {APIPermission::kFontSettings, 108 APIPermissionInfo::kFlagCannotBeOptional},
128 "fontSettings", 109 {APIPermission::kHistory, "history", APIPermissionInfo::kFlagNone,
129 APIPermissionInfo::kFlagCannotBeOptional},
130 {APIPermission::kHistory,
131 "history",
132 APIPermissionInfo::kFlagNone,
133 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, 110 IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
134 PermissionMessage::kBrowsingHistory}, 111 PermissionMessage::kBrowsingHistory},
135 {APIPermission::kIdltest, "idltest"}, 112 {APIPermission::kIdltest, "idltest"},
136 {APIPermission::kInput, 113 {APIPermission::kInput, "input", APIPermissionInfo::kFlagNone,
137 "input", 114 IDS_EXTENSION_PROMPT_WARNING_INPUT, PermissionMessage::kInput},
138 APIPermissionInfo::kFlagNone, 115 {APIPermission::kLocation, "location",
139 IDS_EXTENSION_PROMPT_WARNING_INPUT,
140 PermissionMessage::kInput},
141 {APIPermission::kLocation,
142 "location",
143 APIPermissionInfo::kFlagCannotBeOptional, 116 APIPermissionInfo::kFlagCannotBeOptional,
144 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION, 117 IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION,
145 PermissionMessage::kGeolocation}, 118 PermissionMessage::kGeolocation},
146 {APIPermission::kManagement, 119 {APIPermission::kManagement, "management", APIPermissionInfo::kFlagNone,
147 "management", 120 IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, PermissionMessage::kManagement},
148 APIPermissionInfo::kFlagNone, 121 {APIPermission::kMDns, "mdns", APIPermissionInfo::kFlagCannotBeOptional,
149 IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT, 122 IDS_EXTENSION_PROMPT_WARNING_MDNS, PermissionMessage::kMDns},
150 PermissionMessage::kManagement}, 123 {APIPermission::kNativeMessaging, "nativeMessaging",
151 {APIPermission::kMDns,
152 "mdns",
153 APIPermissionInfo::kFlagCannotBeOptional,
154 IDS_EXTENSION_PROMPT_WARNING_MDNS,
155 PermissionMessage::kMDns},
156 {APIPermission::kNativeMessaging,
157 "nativeMessaging",
158 APIPermissionInfo::kFlagNone, 124 APIPermissionInfo::kFlagNone,
159 IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING, 125 IDS_EXTENSION_PROMPT_WARNING_NATIVE_MESSAGING,
160 PermissionMessage::kNativeMessaging}, 126 PermissionMessage::kNativeMessaging},
161 {APIPermission::kPlatformKeys, 127 {APIPermission::kPlatformKeys, "platformKeys",
162 "platformKeys", 128 APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_PLATFORMKEYS,
163 APIPermissionInfo::kFlagNone,
164 IDS_EXTENSION_PROMPT_WARNING_PLATFORMKEYS,
165 PermissionMessage::kPlatformKeys}, 129 PermissionMessage::kPlatformKeys},
166 {APIPermission::kPrivacy, 130 {APIPermission::kPrivacy, "privacy", APIPermissionInfo::kFlagNone,
167 "privacy", 131 IDS_EXTENSION_PROMPT_WARNING_PRIVACY, PermissionMessage::kPrivacy},
168 APIPermissionInfo::kFlagNone, 132 {APIPermission::kProcesses, "processes", APIPermissionInfo::kFlagNone,
169 IDS_EXTENSION_PROMPT_WARNING_PRIVACY, 133 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
170 PermissionMessage::kPrivacy},
171 {APIPermission::kProcesses,
172 "processes",
173 APIPermissionInfo::kFlagNone,
174 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
175 PermissionMessage::kTabs},
176 {APIPermission::kSessions, "sessions"}, 134 {APIPermission::kSessions, "sessions"},
177 {APIPermission::kSignedInDevices, 135 {APIPermission::kSignedInDevices, "signedInDevices",
178 "signedInDevices",
179 APIPermissionInfo::kFlagNone, 136 APIPermissionInfo::kFlagNone,
180 IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES, 137 IDS_EXTENSION_PROMPT_WARNING_SIGNED_IN_DEVICES,
181 PermissionMessage::kSignedInDevices}, 138 PermissionMessage::kSignedInDevices},
182 {APIPermission::kSyncFileSystem, 139 {APIPermission::kSyncFileSystem, "syncFileSystem",
183 "syncFileSystem",
184 APIPermissionInfo::kFlagNone, 140 APIPermissionInfo::kFlagNone,
185 IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM, 141 IDS_EXTENSION_PROMPT_WARNING_SYNCFILESYSTEM,
186 PermissionMessage::kSyncFileSystem}, 142 PermissionMessage::kSyncFileSystem},
187 {APIPermission::kTab, 143 {APIPermission::kTab, "tabs", APIPermissionInfo::kFlagNone,
188 "tabs", 144 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, PermissionMessage::kTabs},
189 APIPermissionInfo::kFlagNone, 145 {APIPermission::kTopSites, "topSites", APIPermissionInfo::kFlagNone,
190 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, 146 IDS_EXTENSION_PROMPT_WARNING_TOPSITES, PermissionMessage::kTopSites},
147 {APIPermission::kTts, "tts", 0, APIPermissionInfo::kFlagCannotBeOptional},
148 {APIPermission::kTtsEngine, "ttsEngine",
149 APIPermissionInfo::kFlagCannotBeOptional,
150 IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE, PermissionMessage::kTtsEngine},
151 {APIPermission::kWallpaper, "wallpaper",
152 APIPermissionInfo::kFlagCannotBeOptional,
153 IDS_EXTENSION_PROMPT_WARNING_WALLPAPER, PermissionMessage::kWallpaper},
154 {APIPermission::kWebNavigation, "webNavigation",
155 APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
191 PermissionMessage::kTabs}, 156 PermissionMessage::kTabs},
192 {APIPermission::kTopSites,
193 "topSites",
194 APIPermissionInfo::kFlagNone,
195 IDS_EXTENSION_PROMPT_WARNING_TOPSITES,
196 PermissionMessage::kTopSites},
197 {APIPermission::kTts, "tts", 0, APIPermissionInfo::kFlagCannotBeOptional},
198 {APIPermission::kTtsEngine,
199 "ttsEngine",
200 APIPermissionInfo::kFlagCannotBeOptional,
201 IDS_EXTENSION_PROMPT_WARNING_TTS_ENGINE,
202 PermissionMessage::kTtsEngine},
203 {APIPermission::kWallpaper,
204 "wallpaper",
205 APIPermissionInfo::kFlagCannotBeOptional,
206 IDS_EXTENSION_PROMPT_WARNING_WALLPAPER,
207 PermissionMessage::kWallpaper},
208 {APIPermission::kWebNavigation,
209 "webNavigation",
210 APIPermissionInfo::kFlagNone,
211 IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
212 PermissionMessage::kTabs},
213 157
214 // Register private permissions. 158 // Register private permissions.
215 {APIPermission::kScreenlockPrivate, 159 {APIPermission::kScreenlockPrivate, "screenlockPrivate",
216 "screenlockPrivate",
217 APIPermissionInfo::kFlagCannotBeOptional, 160 APIPermissionInfo::kFlagCannotBeOptional,
218 IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE, 161 IDS_EXTENSION_PROMPT_WARNING_SCREENLOCK_PRIVATE,
219 PermissionMessage::kScreenlockPrivate}, 162 PermissionMessage::kScreenlockPrivate},
220 {APIPermission::kActivityLogPrivate, 163 {APIPermission::kActivityLogPrivate, "activityLogPrivate",
221 "activityLogPrivate",
222 APIPermissionInfo::kFlagCannotBeOptional, 164 APIPermissionInfo::kFlagCannotBeOptional,
223 IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE, 165 IDS_EXTENSION_PROMPT_WARNING_ACTIVITY_LOG_PRIVATE,
224 PermissionMessage::kActivityLogPrivate}, 166 PermissionMessage::kActivityLogPrivate},
225 {APIPermission::kAutoTestPrivate, 167 {APIPermission::kAutoTestPrivate, "autotestPrivate",
226 "autotestPrivate", 168 APIPermissionInfo::kFlagCannotBeOptional},
227 APIPermissionInfo::kFlagCannotBeOptional}, 169 {APIPermission::kBookmarkManagerPrivate, "bookmarkManagerPrivate",
228 {APIPermission::kBookmarkManagerPrivate,
229 "bookmarkManagerPrivate",
230 APIPermissionInfo::kFlagCannotBeOptional}, 170 APIPermissionInfo::kFlagCannotBeOptional},
231 {APIPermission::kCast, "cast", APIPermissionInfo::kFlagCannotBeOptional}, 171 {APIPermission::kCast, "cast", APIPermissionInfo::kFlagCannotBeOptional},
232 {APIPermission::kChromeosInfoPrivate, 172 {APIPermission::kChromeosInfoPrivate, "chromeosInfoPrivate",
233 "chromeosInfoPrivate", 173 APIPermissionInfo::kFlagCannotBeOptional},
234 APIPermissionInfo::kFlagCannotBeOptional}, 174 {APIPermission::kCommandsAccessibility, "commands.accessibility",
235 {APIPermission::kCommandsAccessibility, 175 APIPermissionInfo::kFlagCannotBeOptional},
236 "commands.accessibility", 176 {APIPermission::kCommandLinePrivate, "commandLinePrivate",
237 APIPermissionInfo::kFlagCannotBeOptional}, 177 APIPermissionInfo::kFlagCannotBeOptional},
238 {APIPermission::kCommandLinePrivate, 178 {APIPermission::kDeveloperPrivate, "developerPrivate",
239 "commandLinePrivate",
240 APIPermissionInfo::kFlagCannotBeOptional},
241 {APIPermission::kDeveloperPrivate,
242 "developerPrivate",
243 APIPermissionInfo::kFlagCannotBeOptional}, 179 APIPermissionInfo::kFlagCannotBeOptional},
244 {APIPermission::kDial, "dial", APIPermissionInfo::kFlagCannotBeOptional}, 180 {APIPermission::kDial, "dial", APIPermissionInfo::kFlagCannotBeOptional},
245 {APIPermission::kDownloadsInternal, "downloadsInternal"}, 181 {APIPermission::kDownloadsInternal, "downloadsInternal"},
246 {APIPermission::kExperienceSamplingPrivate, 182 {APIPermission::kExperienceSamplingPrivate, "experienceSamplingPrivate",
247 "experienceSamplingPrivate",
248 APIPermissionInfo::kFlagCannotBeOptional, 183 APIPermissionInfo::kFlagCannotBeOptional,
249 IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE, 184 IDS_EXTENSION_PROMPT_WARNING_EXPERIENCE_SAMPLING_PRIVATE,
250 PermissionMessage::kExperienceSamplingPrivate}, 185 PermissionMessage::kExperienceSamplingPrivate},
251 {APIPermission::kFileBrowserHandlerInternal, 186 {APIPermission::kFileBrowserHandlerInternal, "fileBrowserHandlerInternal",
252 "fileBrowserHandlerInternal", 187 APIPermissionInfo::kFlagCannotBeOptional},
253 APIPermissionInfo::kFlagCannotBeOptional}, 188 {APIPermission::kFileManagerPrivate, "fileManagerPrivate",
254 {APIPermission::kFileManagerPrivate, 189 APIPermissionInfo::kFlagCannotBeOptional},
255 "fileManagerPrivate", 190 {APIPermission::kHotwordPrivate, "hotwordPrivate",
256 APIPermissionInfo::kFlagCannotBeOptional}, 191 APIPermissionInfo::kFlagCannotBeOptional},
257 {APIPermission::kHotwordPrivate, 192 {APIPermission::kIdentityPrivate, "identityPrivate",
258 "hotwordPrivate", 193 APIPermissionInfo::kFlagCannotBeOptional},
259 APIPermissionInfo::kFlagCannotBeOptional}, 194 {APIPermission::kLogPrivate, "logPrivate",
260 {APIPermission::kIdentityPrivate,
261 "identityPrivate",
262 APIPermissionInfo::kFlagCannotBeOptional},
263 {APIPermission::kLogPrivate,
264 "logPrivate",
265 APIPermissionInfo::kFlagCannotBeOptional}, 195 APIPermissionInfo::kFlagCannotBeOptional},
266 {APIPermission::kWebcamPrivate, "webcamPrivate"}, 196 {APIPermission::kWebcamPrivate, "webcamPrivate"},
267 {APIPermission::kMediaPlayerPrivate, 197 {APIPermission::kMediaPlayerPrivate, "mediaPlayerPrivate",
268 "mediaPlayerPrivate", 198 APIPermissionInfo::kFlagCannotBeOptional},
269 APIPermissionInfo::kFlagCannotBeOptional}, 199 {APIPermission::kMediaRouterPrivate, "mediaRouterPrivate",
270 {APIPermission::kMediaRouterPrivate, 200 APIPermissionInfo::kFlagCannotBeOptional},
271 "mediaRouterPrivate", 201 {APIPermission::kMetricsPrivate, "metricsPrivate",
272 APIPermissionInfo::kFlagCannotBeOptional}, 202 APIPermissionInfo::kFlagCannotBeOptional},
273 {APIPermission::kMetricsPrivate, 203 {APIPermission::kMusicManagerPrivate, "musicManagerPrivate",
274 "metricsPrivate",
275 APIPermissionInfo::kFlagCannotBeOptional},
276 {APIPermission::kMusicManagerPrivate,
277 "musicManagerPrivate",
278 APIPermissionInfo::kFlagCannotBeOptional, 204 APIPermissionInfo::kFlagCannotBeOptional,
279 IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE, 205 IDS_EXTENSION_PROMPT_WARNING_MUSIC_MANAGER_PRIVATE,
280 PermissionMessage::kMusicManagerPrivate}, 206 PermissionMessage::kMusicManagerPrivate},
281 {APIPermission::kPreferencesPrivate, 207 {APIPermission::kPreferencesPrivate, "preferencesPrivate",
282 "preferencesPrivate", 208 APIPermissionInfo::kFlagCannotBeOptional},
283 APIPermissionInfo::kFlagCannotBeOptional}, 209 {APIPermission::kSystemPrivate, "systemPrivate",
284 {APIPermission::kSystemPrivate, 210 APIPermissionInfo::kFlagCannotBeOptional},
285 "systemPrivate", 211 {APIPermission::kCloudPrintPrivate, "cloudPrintPrivate",
286 APIPermissionInfo::kFlagCannotBeOptional}, 212 APIPermissionInfo::kFlagCannotBeOptional},
287 {APIPermission::kCloudPrintPrivate, 213 {APIPermission::kInputMethodPrivate, "inputMethodPrivate",
288 "cloudPrintPrivate", 214 APIPermissionInfo::kFlagCannotBeOptional},
289 APIPermissionInfo::kFlagCannotBeOptional}, 215 {APIPermission::kEchoPrivate, "echoPrivate",
290 {APIPermission::kInputMethodPrivate, 216 APIPermissionInfo::kFlagCannotBeOptional},
291 "inputMethodPrivate", 217 {APIPermission::kFeedbackPrivate, "feedbackPrivate",
292 APIPermissionInfo::kFlagCannotBeOptional}, 218 APIPermissionInfo::kFlagCannotBeOptional},
293 {APIPermission::kEchoPrivate, 219 {APIPermission::kImageWriterPrivate, "imageWriterPrivate",
294 "echoPrivate", 220 APIPermissionInfo::kFlagCannotBeOptional},
295 APIPermissionInfo::kFlagCannotBeOptional}, 221 {APIPermission::kReadingListPrivate, "readingListPrivate",
296 {APIPermission::kFeedbackPrivate, 222 APIPermissionInfo::kFlagCannotBeOptional},
297 "feedbackPrivate", 223 {APIPermission::kRtcPrivate, "rtcPrivate",
298 APIPermissionInfo::kFlagCannotBeOptional}, 224 APIPermissionInfo::kFlagCannotBeOptional},
299 {APIPermission::kImageWriterPrivate, 225 {APIPermission::kTerminalPrivate, "terminalPrivate",
300 "imageWriterPrivate", 226 APIPermissionInfo::kFlagCannotBeOptional},
301 APIPermissionInfo::kFlagCannotBeOptional}, 227 {APIPermission::kVirtualKeyboardPrivate, "virtualKeyboardPrivate",
302 {APIPermission::kReadingListPrivate, 228 APIPermissionInfo::kFlagCannotBeOptional},
303 "readingListPrivate", 229 {APIPermission::kWallpaperPrivate, "wallpaperPrivate",
304 APIPermissionInfo::kFlagCannotBeOptional}, 230 APIPermissionInfo::kFlagCannotBeOptional},
305 {APIPermission::kRtcPrivate, 231 {APIPermission::kWebstorePrivate, "webstorePrivate",
306 "rtcPrivate", 232 APIPermissionInfo::kFlagCannotBeOptional},
307 APIPermissionInfo::kFlagCannotBeOptional}, 233 {APIPermission::kStreamsPrivate, "streamsPrivate",
308 {APIPermission::kTerminalPrivate,
309 "terminalPrivate",
310 APIPermissionInfo::kFlagCannotBeOptional},
311 {APIPermission::kVirtualKeyboardPrivate,
312 "virtualKeyboardPrivate",
313 APIPermissionInfo::kFlagCannotBeOptional},
314 {APIPermission::kWallpaperPrivate,
315 "wallpaperPrivate",
316 APIPermissionInfo::kFlagCannotBeOptional},
317 {APIPermission::kWebstorePrivate,
318 "webstorePrivate",
319 APIPermissionInfo::kFlagCannotBeOptional},
320 {APIPermission::kStreamsPrivate,
321 "streamsPrivate",
322 APIPermissionInfo::kFlagCannotBeOptional}, 234 APIPermissionInfo::kFlagCannotBeOptional},
323 {APIPermission::kEnterprisePlatformKeysPrivate, 235 {APIPermission::kEnterprisePlatformKeysPrivate,
324 "enterprise.platformKeysPrivate", 236 "enterprise.platformKeysPrivate",
325 APIPermissionInfo::kFlagCannotBeOptional}, 237 APIPermissionInfo::kFlagCannotBeOptional},
326 {APIPermission::kWebrtcAudioPrivate, 238 {APIPermission::kWebrtcAudioPrivate, "webrtcAudioPrivate",
327 "webrtcAudioPrivate",
328 APIPermissionInfo::kFlagCannotBeOptional}, 239 APIPermissionInfo::kFlagCannotBeOptional},
329 {APIPermission::kWebrtcDesktopCapturePrivate, 240 {APIPermission::kWebrtcDesktopCapturePrivate,
330 "webrtcDesktopCapturePrivate", 241 "webrtcDesktopCapturePrivate", APIPermissionInfo::kFlagCannotBeOptional},
331 APIPermissionInfo::kFlagCannotBeOptional}, 242 {APIPermission::kWebrtcLoggingPrivate, "webrtcLoggingPrivate",
332 {APIPermission::kWebrtcLoggingPrivate, 243 APIPermissionInfo::kFlagCannotBeOptional},
333 "webrtcLoggingPrivate", 244 {APIPermission::kPrincipalsPrivate, "principalsPrivate",
334 APIPermissionInfo::kFlagCannotBeOptional}, 245 APIPermissionInfo::kFlagCannotBeOptional},
335 {APIPermission::kPrincipalsPrivate, 246 {APIPermission::kFirstRunPrivate, "firstRunPrivate",
336 "principalsPrivate",
337 APIPermissionInfo::kFlagCannotBeOptional},
338 {APIPermission::kFirstRunPrivate,
339 "firstRunPrivate",
340 APIPermissionInfo::kFlagCannotBeOptional}, 247 APIPermissionInfo::kFlagCannotBeOptional},
341 {APIPermission::kInlineInstallPrivate, "inlineInstallPrivate"}, 248 {APIPermission::kInlineInstallPrivate, "inlineInstallPrivate"},
342 {APIPermission::kSettingsPrivate, 249 {APIPermission::kSettingsPrivate, "settingsPrivate",
343 "settingsPrivate",
344 APIPermissionInfo::kFlagCannotBeOptional, 250 APIPermissionInfo::kFlagCannotBeOptional,
345 IDS_EXTENSION_PROMPT_WARNING_SETTINGS_PRIVATE, 251 IDS_EXTENSION_PROMPT_WARNING_SETTINGS_PRIVATE,
346 PermissionMessage::kSettingsPrivate}, 252 PermissionMessage::kSettingsPrivate},
347 {APIPermission::kSearchEnginesPrivate, 253 {APIPermission::kSearchEnginesPrivate, "searchEnginesPrivate",
348 "searchEnginesPrivate",
349 APIPermissionInfo::kFlagCannotBeOptional, 254 APIPermissionInfo::kFlagCannotBeOptional,
350 IDS_EXTENSION_PROMPT_WARNING_SEARCH_ENGINES_PRIVATE, 255 IDS_EXTENSION_PROMPT_WARNING_SEARCH_ENGINES_PRIVATE,
351 PermissionMessage::kSearchEnginesPrivate}, 256 PermissionMessage::kSearchEnginesPrivate},
352 {APIPermission::kAutofillPrivate, 257 {APIPermission::kAutofillPrivate, "autofillPrivate",
353 "autofillPrivate",
354 APIPermissionInfo::kFlagCannotBeOptional, 258 APIPermissionInfo::kFlagCannotBeOptional,
355 IDS_EXTENSION_PROMPT_WARNING_AUTOFILL_PRIVATE, 259 IDS_EXTENSION_PROMPT_WARNING_AUTOFILL_PRIVATE,
356 PermissionMessage::kAutofillPrivate}, 260 PermissionMessage::kAutofillPrivate},
357 {APIPermission::kWebstoreWidgetPrivate, 261 {APIPermission::kWebstoreWidgetPrivate, "webstoreWidgetPrivate",
358 "webstoreWidgetPrivate", 262 APIPermissionInfo::kFlagCannotBeOptional},
359 APIPermissionInfo::kFlagCannotBeOptional}, 263 {APIPermission::kPasswordsPrivate, "passwordsPrivate",
360 {APIPermission::kPasswordsPrivate,
361 "passwordsPrivate",
362 APIPermissionInfo::kFlagCannotBeOptional, 264 APIPermissionInfo::kFlagCannotBeOptional,
363 IDS_EXTENSION_PROMPT_WARNING_PASSWORDS_PRIVATE, 265 IDS_EXTENSION_PROMPT_WARNING_PASSWORDS_PRIVATE,
364 PermissionMessage::kPasswordsPrivate}, 266 PermissionMessage::kPasswordsPrivate},
365 {APIPermission::kUsersPrivate, 267 {APIPermission::kUsersPrivate, "usersPrivate",
366 "usersPrivate",
367 APIPermissionInfo::kFlagCannotBeOptional, 268 APIPermissionInfo::kFlagCannotBeOptional,
368 IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE, 269 IDS_EXTENSION_PROMPT_WARNING_USERS_PRIVATE,
369 PermissionMessage::kUsersPrivate}, 270 PermissionMessage::kUsersPrivate},
370 {APIPermission::kLanguageSettingsPrivate, 271 {APIPermission::kLanguageSettingsPrivate, "languageSettingsPrivate",
371 "languageSettingsPrivate",
372 APIPermissionInfo::kFlagCannotBeOptional}, 272 APIPermissionInfo::kFlagCannotBeOptional},
373 273
374 // Full url access permissions. 274 // Full url access permissions.
375 {APIPermission::kDebugger, 275 {APIPermission::kDebugger, "debugger",
376 "debugger",
377 APIPermissionInfo::kFlagImpliesFullURLAccess | 276 APIPermissionInfo::kFlagImpliesFullURLAccess |
378 APIPermissionInfo::kFlagCannotBeOptional, 277 APIPermissionInfo::kFlagCannotBeOptional,
379 IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, 278 IDS_EXTENSION_PROMPT_WARNING_DEBUGGER, PermissionMessage::kDebugger},
380 PermissionMessage::kDebugger}, 279 {APIPermission::kDevtools, "devtools",
381 {APIPermission::kDevtools,
382 "devtools",
383 APIPermissionInfo::kFlagImpliesFullURLAccess | 280 APIPermissionInfo::kFlagImpliesFullURLAccess |
384 APIPermissionInfo::kFlagCannotBeOptional | 281 APIPermissionInfo::kFlagCannotBeOptional |
385 APIPermissionInfo::kFlagInternal}, 282 APIPermissionInfo::kFlagInternal},
386 {APIPermission::kPageCapture, 283 {APIPermission::kPageCapture, "pageCapture",
387 "pageCapture",
388 APIPermissionInfo::kFlagImpliesFullURLAccess}, 284 APIPermissionInfo::kFlagImpliesFullURLAccess},
389 {APIPermission::kTabCapture, 285 {APIPermission::kTabCapture, "tabCapture",
390 "tabCapture",
391 APIPermissionInfo::kFlagImpliesFullURLAccess}, 286 APIPermissionInfo::kFlagImpliesFullURLAccess},
392 {APIPermission::kTabCaptureForTab, 287 {APIPermission::kTabCaptureForTab, "tabCaptureForTab",
393 "tabCaptureForTab",
394 APIPermissionInfo::kFlagInternal}, 288 APIPermissionInfo::kFlagInternal},
395 {APIPermission::kPlugin, 289 {APIPermission::kPlugin, "plugin",
396 "plugin",
397 APIPermissionInfo::kFlagImpliesFullURLAccess | 290 APIPermissionInfo::kFlagImpliesFullURLAccess |
398 APIPermissionInfo::kFlagImpliesFullAccess | 291 APIPermissionInfo::kFlagImpliesFullAccess |
399 APIPermissionInfo::kFlagCannotBeOptional | 292 APIPermissionInfo::kFlagCannotBeOptional |
400 APIPermissionInfo::kFlagInternal, 293 APIPermissionInfo::kFlagInternal,
401 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, 294 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS,
402 PermissionMessage::kFullAccess}, 295 PermissionMessage::kFullAccess},
403 {APIPermission::kProxy, 296 {APIPermission::kProxy, "proxy",
404 "proxy",
405 APIPermissionInfo::kFlagImpliesFullURLAccess | 297 APIPermissionInfo::kFlagImpliesFullURLAccess |
406 APIPermissionInfo::kFlagCannotBeOptional}, 298 APIPermissionInfo::kFlagCannotBeOptional},
407 299
408 // Platform-app permissions. 300 // Platform-app permissions.
409 301
410 // The permission string for "fileSystem" is only shown when 302 // The permission string for "fileSystem" is only shown when
411 // "write" or "directory" is present. Read-only access is only 303 // "write" or "directory" is present. Read-only access is only
412 // granted after the user has been shown a file or directory 304 // granted after the user has been shown a file or directory
413 // chooser dialog and selected a file or directory. Selecting 305 // chooser dialog and selected a file or directory. Selecting
414 // the file or directory is considered consent to read it. 306 // the file or directory is considered consent to read it.
415 {APIPermission::kFileSystem, "fileSystem"}, 307 {APIPermission::kFileSystem, "fileSystem"},
416 {APIPermission::kFileSystemDirectory, 308 {APIPermission::kFileSystemDirectory, "fileSystem.directory",
417 "fileSystem.directory",
418 APIPermissionInfo::kFlagNone, 309 APIPermissionInfo::kFlagNone,
419 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY, 310 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY,
420 PermissionMessage::kFileSystemDirectory}, 311 PermissionMessage::kFileSystemDirectory},
421 {APIPermission::kFileSystemProvider, "fileSystemProvider"}, 312 {APIPermission::kFileSystemProvider, "fileSystemProvider"},
422 {APIPermission::kFileSystemRequestFileSystem, 313 {APIPermission::kFileSystemRequestFileSystem,
423 "fileSystem.requestFileSystem"}, 314 "fileSystem.requestFileSystem"},
424 {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"}, 315 {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"},
425 {APIPermission::kFileSystemWrite, "fileSystem.write"}, 316 {APIPermission::kFileSystemWrite, "fileSystem.write"},
426 {APIPermission::kFileSystemWriteDirectory, 317 {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory",
427 "fileSystem.writeDirectory",
428 APIPermissionInfo::kFlagNone, 318 APIPermissionInfo::kFlagNone,
429 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, 319 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY,
430 PermissionMessage::kFileSystemWriteDirectory}, 320 PermissionMessage::kFileSystemWriteDirectory},
431 // Because warning messages for the "mediaGalleries" permission 321 // Because warning messages for the "mediaGalleries" permission
432 // vary based on the permissions parameters, no message ID or 322 // vary based on the permissions parameters, no message ID or
433 // message text is specified here. The message ID and text used 323 // message text is specified here. The message ID and text used
434 // will be determined at run-time in the 324 // will be determined at run-time in the
435 // |MediaGalleriesPermission| class. 325 // |MediaGalleriesPermission| class.
436 {APIPermission::kMediaGalleries, 326 {APIPermission::kMediaGalleries, "mediaGalleries",
437 "mediaGalleries", 327 APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone,
438 APIPermissionInfo::kFlagNone,
439 0,
440 PermissionMessage::kNone,
441 &CreateAPIPermission<MediaGalleriesPermission>}, 328 &CreateAPIPermission<MediaGalleriesPermission>},
442 {APIPermission::kPointerLock, "pointerLock"}, 329 {APIPermission::kPointerLock, "pointerLock"},
443 {APIPermission::kCastStreaming, "cast.streaming"}, 330 {APIPermission::kCastStreaming, "cast.streaming"},
444 {APIPermission::kBrowser, "browser"}, 331 {APIPermission::kBrowser, "browser"},
445 {APIPermission::kInterceptAllKeys, 332 {APIPermission::kInterceptAllKeys, "app.window.interceptAllKeys",
446 "app.window.interceptAllKeys",
447 APIPermissionInfo::kFlagNone, 333 APIPermissionInfo::kFlagNone,
448 IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS, 334 IDS_EXTENSION_PROMPT_WARNING_INTERCEPT_ALL_KEYS,
449 PermissionMessage::kInterceptAllKeys}, 335 PermissionMessage::kInterceptAllKeys},
450 {APIPermission::kLauncherSearchProvider, "launcherSearchProvider"}, 336 {APIPermission::kLauncherSearchProvider, "launcherSearchProvider"},
451 337
452 // Settings override permissions. 338 // Settings override permissions.
453 {APIPermission::kHomepage, 339 {APIPermission::kHomepage, "homepage",
454 "homepage",
455 APIPermissionInfo::kFlagCannotBeOptional | 340 APIPermissionInfo::kFlagCannotBeOptional |
456 APIPermissionInfo::kFlagInternal, 341 APIPermissionInfo::kFlagInternal,
457 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE, 342 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE,
458 PermissionMessage::kHomepage}, 343 PermissionMessage::kHomepage},
459 {APIPermission::kSearchProvider, 344 {APIPermission::kSearchProvider, "searchProvider",
460 "searchProvider",
461 APIPermissionInfo::kFlagCannotBeOptional | 345 APIPermissionInfo::kFlagCannotBeOptional |
462 APIPermissionInfo::kFlagInternal, 346 APIPermissionInfo::kFlagInternal,
463 IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE, 347 IDS_EXTENSION_PROMPT_WARNING_SEARCH_SETTINGS_OVERRIDE,
464 PermissionMessage::kSearchProvider}, 348 PermissionMessage::kSearchProvider},
465 {APIPermission::kStartupPages, 349 {APIPermission::kStartupPages, "startupPages",
466 "startupPages",
467 APIPermissionInfo::kFlagCannotBeOptional | 350 APIPermissionInfo::kFlagCannotBeOptional |
468 APIPermissionInfo::kFlagInternal, 351 APIPermissionInfo::kFlagInternal,
469 IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE, 352 IDS_EXTENSION_PROMPT_WARNING_START_PAGE_SETTING_OVERRIDE,
470 PermissionMessage::kStartupPages}, 353 PermissionMessage::kStartupPages},
471 }; 354 };
472 355
473 std::vector<APIPermissionInfo*> permissions; 356 std::vector<APIPermissionInfo*> permissions;
474 357
475 for (size_t i = 0; i < arraysize(permissions_to_register); ++i) 358 for (size_t i = 0; i < arraysize(permissions_to_register); ++i)
476 permissions.push_back(new APIPermissionInfo(permissions_to_register[i])); 359 permissions.push_back(new APIPermissionInfo(permissions_to_register[i]));
477 return permissions; 360 return permissions;
478 } 361 }
479 362
480 std::vector<PermissionsProvider::AliasInfo> 363 std::vector<PermissionsProvider::AliasInfo>
481 ChromeAPIPermissions::GetAllAliases() const { 364 ChromeAPIPermissions::GetAllAliases() const {
482 // Register aliases. 365 // Register aliases.
483 std::vector<PermissionsProvider::AliasInfo> aliases; 366 std::vector<PermissionsProvider::AliasInfo> aliases;
484 aliases.push_back(PermissionsProvider::AliasInfo("tabs", kWindowsPermission)); 367 aliases.push_back(PermissionsProvider::AliasInfo("tabs", kWindowsPermission));
485 return aliases; 368 return aliases;
486 } 369 }
487 370
488 } // namespace extensions 371 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698