diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 20:37:23 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 20:37:23 +0000 |
commit | 99f8f48da9aa763a30ae727b14c4687b3dcd7c82 (patch) | |
tree | e30037770b1a0bfb027ee0df1a0a8f9116324168 | |
parent | 4cb66f7bf28c03b486e6f59302f5244303bfd1c0 (diff) | |
download | chromium_src-99f8f48da9aa763a30ae727b14c4687b3dcd7c82.zip chromium_src-99f8f48da9aa763a30ae727b14c4687b3dcd7c82.tar.gz chromium_src-99f8f48da9aa763a30ae727b14c4687b3dcd7c82.tar.bz2 |
Revert 231504 "Make app APIs implicit within _api_features.json ..."
> Make app APIs implicit within _api_features.json not _permission_features.json.
>
> BUG=310707
> R=yoz@chromium.org
> TBR=achuith@chromium.org
>
> Review URL: https://codereview.chromium.org/49333004
TBR=kalman@chromium.org
Review URL: https://codereview.chromium.org/50523011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231916 0039d316-1c4b-4281-b951-d872f2087c98
10 files changed, 40 insertions, 6 deletions
diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/extensions/api/_api_features.json index 04e624b..23199d0 100644 --- a/chrome/common/extensions/api/_api_features.json +++ b/chrome/common/extensions/api/_api_features.json @@ -29,16 +29,14 @@ ] }, "app.runtime": { - "channel": "stable", + "noparent": true, "contexts": ["blessed_extension"], - "extension_types": ["platform_app"], - "noparent": true + "dependencies": ["permission:app.runtime"] }, "app.window": { - "channel": "stable", + "noparent": true, "contexts": ["blessed_extension"], - "extension_types": ["platform_app"], - "noparent": true + "dependencies": ["permission:app.window"] }, "app.currentWindowInternal": { "noparent": true, diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json index ca2ee0c..d14021e 100644 --- a/chrome/common/extensions/api/_permission_features.json +++ b/chrome/common/extensions/api/_permission_features.json @@ -29,6 +29,14 @@ "extension_types": ["extension", "legacy_packaged_app", "platform_app"], "min_manifest_version": 2 }, + "app.runtime": { + "channel": "stable", + "extension_types": ["platform_app"] + }, + "app.window": { + "channel": "stable", + "extension_types": ["platform_app"] + }, "audio": [ { "channel": "dev", diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/chrome/common/extensions/permissions/chrome_api_permissions.cc index 80e977a..0fe74ed 100644 --- a/chrome/common/extensions/permissions/chrome_api_permissions.cc +++ b/chrome/common/extensions/permissions/chrome_api_permissions.cc @@ -281,6 +281,9 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions() APIPermissionInfo::kFlagCannotBeOptional, 0, PermissionMessage::kNone, &CreateAPIPermission<SocketPermission> }, { APIPermission::kSocketsUdp, "sockets.udp" }, + { APIPermission::kAppCurrentWindowInternal, "app.currentWindowInternal" }, + { APIPermission::kAppRuntime, "app.runtime" }, + { APIPermission::kAppWindow, "app.window" }, { APIPermission::kAudioCapture, "audioCapture", APIPermissionInfo::kFlagNone, IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE, diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc index 6897e79..ca335105a 100644 --- a/chrome/common/extensions/permissions/permission_set_unittest.cc +++ b/chrome/common/extensions/permissions/permission_set_unittest.cc @@ -640,6 +640,9 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermission::kActiveTab); skip.insert(APIPermission::kAdView); skip.insert(APIPermission::kAlarms); + skip.insert(APIPermission::kAppCurrentWindowInternal); + skip.insert(APIPermission::kAppRuntime); + skip.insert(APIPermission::kAppWindow); skip.insert(APIPermission::kAudio); skip.insert(APIPermission::kBrowsingData); skip.insert(APIPermission::kContextMenus); diff --git a/chrome/common/extensions/permissions/permissions_data.cc b/chrome/common/extensions/permissions/permissions_data.cc index 506d9b3..c9a969d 100644 --- a/chrome/common/extensions/permissions/permissions_data.cc +++ b/chrome/common/extensions/permissions/permissions_data.cc @@ -579,6 +579,18 @@ bool PermissionsData::ParsePermissions(Extension* extension, string16* error) { return false; } + // TODO(jeremya/kalman) do this via the features system by exposing the + // app.window API to platform apps, with no dependency on any permissions. + // See http://crbug.com/120069. + if (extension->is_platform_app()) { + initial_required_permissions_->api_permissions.insert( + APIPermission::kAppCurrentWindowInternal); + initial_required_permissions_->api_permissions.insert( + APIPermission::kAppRuntime); + initial_required_permissions_->api_permissions.insert( + APIPermission::kAppWindow); + } + initial_optional_permissions_.reset(new InitialPermissions); if (!ParseHelper(extension, keys::kOptionalPermissions, diff --git a/chrome/test/data/extensions/platform_apps/apps_only/manifest.json b/chrome/test/data/extensions/platform_apps/apps_only/manifest.json index 286c4f1..7272373 100644 --- a/chrome/test/data/extensions/platform_apps/apps_only/manifest.json +++ b/chrome/test/data/extensions/platform_apps/apps_only/manifest.json @@ -2,6 +2,9 @@ "name": "Extension for testing that apps-only things are blocked", "version": "0.5", "manifest_version": 2, + "permissions": [ + "app.window" + ], "background": { "scripts": ["background.js"] } diff --git a/chrome/test/data/extensions/platform_apps/messaging/app1/manifest.json b/chrome/test/data/extensions/platform_apps/messaging/app1/manifest.json index fc3a3a7..7f332ca 100644 --- a/chrome/test/data/extensions/platform_apps/messaging/app1/manifest.json +++ b/chrome/test/data/extensions/platform_apps/messaging/app1/manifest.json @@ -2,6 +2,7 @@ "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChIkos4QMuz7xmtnVIPCRZmcKzLyyvChW508KvpVWhdJZjnMShxVqH5QwrEzwtRhK1bTX/Y+7kmKGb9z49O//4KY/gFZQyiRNDnqv85L7fz7ceobLozwQWkhTFafYS39VMs00G0FvgQvEM1gO/Kg3eWVTFRUJCHHrMkO1De2Xd+wIDAQAB", "name": "Messaging Test App 1", "version": "0.5", + "permissions": [ "app.runtime" ], "app": { "background": { "scripts": ["background.js"] diff --git a/chrome/test/data/extensions/platform_apps/messaging/app2/manifest.json b/chrome/test/data/extensions/platform_apps/messaging/app2/manifest.json index e3d86d2..799ba27 100644 --- a/chrome/test/data/extensions/platform_apps/messaging/app2/manifest.json +++ b/chrome/test/data/extensions/platform_apps/messaging/app2/manifest.json @@ -2,6 +2,7 @@ "key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDbh1pj7Q+vZzotbfPfe1Q4AIeJc3gU1xhTSMtjB0UZH+G3ckScJYTnFCTkFAn/mEOtn7e+SZ9rhDf4k6X7Qf6BzK3PLNn3+2Hb/F0NC57hiWI2UyhXY2dl2ry6VENkuyo1QpEMGH5FB5tC2rcuivG8ipBbUWLoQLMbegUdOLXoNK4tGvKwlGa1B0QPAMIkEw3ZlerckC8e+tWC38WvHxy1EM5VeK8k4GcrDEltoVByprTe/8VTzvEsFFYljpIzbSTi6mKOhY2sdl0EfCpXT4dSCeSe81O8liMU1yYKBQCbzguASV7yzZMX08tb96MOpx0NYbYXt03Zyj3xlbep5n4l", "name": "Messaging Test App 2", "version": "0.5", + "permissions": [ "app.runtime" ], "app": { "background": { "scripts": ["background.js"] diff --git a/chrome/test/ext_auto/auto_provider/manifest.json b/chrome/test/ext_auto/auto_provider/manifest.json index e0f29c3..042bb2f 100644 --- a/chrome/test/ext_auto/auto_provider/manifest.json +++ b/chrome/test/ext_auto/auto_provider/manifest.json @@ -12,6 +12,8 @@ "permissions": [ "activeTab", "alarms", + "app.runtime", + "app.window", "audioCapture", "autotestPrivate", "background", diff --git a/extensions/common/permissions/api_permission.h b/extensions/common/permissions/api_permission.h index c03228d..2ff17ea 100644 --- a/extensions/common/permissions/api_permission.h +++ b/extensions/common/permissions/api_permission.h @@ -39,6 +39,9 @@ class APIPermission { kActivityLogPrivate, kAdView, kAlarms, + kAppCurrentWindowInternal, + kAppRuntime, + kAppWindow, kAudio, kAudioCapture, kAutoTestPrivate, |