| OLD | NEW |
| 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" |
| 11 #include "extensions/common/permissions/permission_message.h" | 11 #include "extensions/common/permissions/permission_message.h" |
| 12 #include "extensions/common/permissions/permissions_info.h" | 12 #include "extensions/common/permissions/permissions_info.h" |
| 13 #include "extensions/strings/grit/extensions_strings.h" | 13 #include "extensions/strings/grit/extensions_strings.h" |
| 14 | 14 |
| 15 namespace extensions { | 15 namespace extensions { |
| 16 | 16 |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 const char kOldAlwaysOnTopWindowsPermission[] = "alwaysOnTopWindows"; | |
| 20 const char kOldFullscreenPermission[] = "fullscreen"; | |
| 21 const char kOldOverrideEscFullscreenPermission[] = "overrideEscFullscreen"; | |
| 22 const char kOldUnlimitedStoragePermission[] = "unlimited_storage"; | 19 const char kOldUnlimitedStoragePermission[] = "unlimited_storage"; |
| 23 const char kWindowsPermission[] = "windows"; | 20 const char kWindowsPermission[] = "windows"; |
| 24 | 21 |
| 25 template<typename T> APIPermission* CreateAPIPermission( | 22 template<typename T> APIPermission* CreateAPIPermission( |
| 26 const APIPermissionInfo* permission) { | 23 const APIPermissionInfo* permission) { |
| 27 return new T(permission); | 24 return new T(permission); |
| 28 } | 25 } |
| 29 | 26 |
| 30 } // namespace | 27 } // namespace |
| 31 | 28 |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 APIPermissionInfo::kFlagImpliesFullAccess | | 286 APIPermissionInfo::kFlagImpliesFullAccess | |
| 290 APIPermissionInfo::kFlagCannotBeOptional | | 287 APIPermissionInfo::kFlagCannotBeOptional | |
| 291 APIPermissionInfo::kFlagInternal, | 288 APIPermissionInfo::kFlagInternal, |
| 292 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, | 289 IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS, |
| 293 PermissionMessage::kFullAccess}, | 290 PermissionMessage::kFullAccess}, |
| 294 {APIPermission::kProxy, "proxy", | 291 {APIPermission::kProxy, "proxy", |
| 295 APIPermissionInfo::kFlagImpliesFullURLAccess | | 292 APIPermissionInfo::kFlagImpliesFullURLAccess | |
| 296 APIPermissionInfo::kFlagCannotBeOptional}, | 293 APIPermissionInfo::kFlagCannotBeOptional}, |
| 297 | 294 |
| 298 // Platform-app permissions. | 295 // Platform-app permissions. |
| 299 {APIPermission::kAlwaysOnTopWindows, "app.window.alwaysOnTop"}, | 296 |
| 300 // The permission string for "fileSystem" is only shown when | 297 // The permission string for "fileSystem" is only shown when |
| 301 // "write" or "directory" is present. Read-only access is only | 298 // "write" or "directory" is present. Read-only access is only |
| 302 // granted after the user has been shown a file or directory | 299 // granted after the user has been shown a file or directory |
| 303 // chooser dialog and selected a file or directory. Selecting | 300 // chooser dialog and selected a file or directory. Selecting |
| 304 // the file or directory is considered consent to read it. | 301 // the file or directory is considered consent to read it. |
| 305 {APIPermission::kFileSystem, "fileSystem"}, | 302 {APIPermission::kFileSystem, "fileSystem"}, |
| 306 {APIPermission::kFileSystemDirectory, "fileSystem.directory", | 303 {APIPermission::kFileSystemDirectory, "fileSystem.directory", |
| 307 APIPermissionInfo::kFlagNone, | 304 APIPermissionInfo::kFlagNone, |
| 308 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY, | 305 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_DIRECTORY, |
| 309 PermissionMessage::kFileSystemDirectory}, | 306 PermissionMessage::kFileSystemDirectory}, |
| 310 {APIPermission::kFileSystemProvider, "fileSystemProvider"}, | 307 {APIPermission::kFileSystemProvider, "fileSystemProvider"}, |
| 311 {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"}, | 308 {APIPermission::kFileSystemRetainEntries, "fileSystem.retainEntries"}, |
| 312 {APIPermission::kFileSystemWrite, "fileSystem.write"}, | 309 {APIPermission::kFileSystemWrite, "fileSystem.write"}, |
| 313 {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory", | 310 {APIPermission::kFileSystemWriteDirectory, "fileSystem.writeDirectory", |
| 314 APIPermissionInfo::kFlagNone, | 311 APIPermissionInfo::kFlagNone, |
| 315 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, | 312 IDS_EXTENSION_PROMPT_WARNING_FILE_SYSTEM_WRITE_DIRECTORY, |
| 316 PermissionMessage::kFileSystemWriteDirectory}, | 313 PermissionMessage::kFileSystemWriteDirectory}, |
| 317 // Because warning messages for the "mediaGalleries" permission | 314 // Because warning messages for the "mediaGalleries" permission |
| 318 // vary based on the permissions parameters, no message ID or | 315 // vary based on the permissions parameters, no message ID or |
| 319 // message text is specified here. The message ID and text used | 316 // message text is specified here. The message ID and text used |
| 320 // will be determined at run-time in the | 317 // will be determined at run-time in the |
| 321 // |MediaGalleriesPermission| class. | 318 // |MediaGalleriesPermission| class. |
| 322 {APIPermission::kMediaGalleries, "mediaGalleries", | 319 {APIPermission::kMediaGalleries, "mediaGalleries", |
| 323 APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone, | 320 APIPermissionInfo::kFlagNone, 0, PermissionMessage::kNone, |
| 324 &CreateAPIPermission<MediaGalleriesPermission>}, | 321 &CreateAPIPermission<MediaGalleriesPermission>}, |
| 325 {APIPermission::kPushMessaging, "pushMessaging", | 322 {APIPermission::kPushMessaging, "pushMessaging", |
| 326 APIPermissionInfo::kFlagCannotBeOptional}, | 323 APIPermissionInfo::kFlagCannotBeOptional}, |
| 327 {APIPermission::kPointerLock, "pointerLock"}, | 324 {APIPermission::kPointerLock, "pointerLock"}, |
| 328 {APIPermission::kFullscreen, "app.window.fullscreen"}, | |
| 329 {APIPermission::kAudio, "audio"}, | 325 {APIPermission::kAudio, "audio"}, |
| 330 {APIPermission::kCastStreaming, "cast.streaming"}, | 326 {APIPermission::kCastStreaming, "cast.streaming"}, |
| 331 {APIPermission::kOverrideEscFullscreen, | |
| 332 "app.window.fullscreen.overrideEsc"}, | |
| 333 {APIPermission::kWindowShape, "app.window.shape"}, | |
| 334 {APIPermission::kAlphaEnabled, "app.window.alpha"}, | |
| 335 {APIPermission::kBrowser, "browser"}, | 327 {APIPermission::kBrowser, "browser"}, |
| 336 | 328 |
| 337 // Settings override permissions. | 329 // Settings override permissions. |
| 338 {APIPermission::kHomepage, "homepage", | 330 {APIPermission::kHomepage, "homepage", |
| 339 APIPermissionInfo::kFlagCannotBeOptional | | 331 APIPermissionInfo::kFlagCannotBeOptional | |
| 340 APIPermissionInfo::kFlagInternal, | 332 APIPermissionInfo::kFlagInternal, |
| 341 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE, | 333 IDS_EXTENSION_PROMPT_WARNING_HOME_PAGE_SETTING_OVERRIDE, |
| 342 PermissionMessage::kHomepage}, | 334 PermissionMessage::kHomepage}, |
| 343 {APIPermission::kSearchProvider, "searchProvider", | 335 {APIPermission::kSearchProvider, "searchProvider", |
| 344 APIPermissionInfo::kFlagCannotBeOptional | | 336 APIPermissionInfo::kFlagCannotBeOptional | |
| (...skipping 12 matching lines...) Expand all Loading... |
| 357 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(permissions_to_register); ++i) | 349 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(permissions_to_register); ++i) |
| 358 permissions.push_back(new APIPermissionInfo(permissions_to_register[i])); | 350 permissions.push_back(new APIPermissionInfo(permissions_to_register[i])); |
| 359 return permissions; | 351 return permissions; |
| 360 } | 352 } |
| 361 | 353 |
| 362 std::vector<PermissionsProvider::AliasInfo> | 354 std::vector<PermissionsProvider::AliasInfo> |
| 363 ChromeAPIPermissions::GetAllAliases() const { | 355 ChromeAPIPermissions::GetAllAliases() const { |
| 364 // Register aliases. | 356 // Register aliases. |
| 365 std::vector<PermissionsProvider::AliasInfo> aliases; | 357 std::vector<PermissionsProvider::AliasInfo> aliases; |
| 366 aliases.push_back(PermissionsProvider::AliasInfo( | 358 aliases.push_back(PermissionsProvider::AliasInfo( |
| 367 "app.window.alwaysOnTop", kOldAlwaysOnTopWindowsPermission)); | |
| 368 aliases.push_back(PermissionsProvider::AliasInfo("app.window.fullscreen", | |
| 369 kOldFullscreenPermission)); | |
| 370 aliases.push_back( | |
| 371 PermissionsProvider::AliasInfo("app.window.fullscreen.overrideEsc", | |
| 372 kOldOverrideEscFullscreenPermission)); | |
| 373 aliases.push_back(PermissionsProvider::AliasInfo( | |
| 374 "unlimitedStorage", kOldUnlimitedStoragePermission)); | 359 "unlimitedStorage", kOldUnlimitedStoragePermission)); |
| 375 aliases.push_back(PermissionsProvider::AliasInfo( | 360 aliases.push_back(PermissionsProvider::AliasInfo( |
| 376 "tabs", kWindowsPermission)); | 361 "tabs", kWindowsPermission)); |
| 377 return aliases; | 362 return aliases; |
| 378 } | 363 } |
| 379 | 364 |
| 380 } // namespace extensions | 365 } // namespace extensions |
| OLD | NEW |