0

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
This commit is contained in:
kalman@chromium.org
2013-10-30 20:37:23 +00:00
parent 4cb66f7bf2
commit 99f8f48da9
10 changed files with 40 additions and 6 deletions
chrome
extensions/common/permissions

@@ -29,16 +29,14 @@
] ]
}, },
"app.runtime": { "app.runtime": {
"channel": "stable", "noparent": true,
"contexts": ["blessed_extension"], "contexts": ["blessed_extension"],
"extension_types": ["platform_app"], "dependencies": ["permission:app.runtime"]
"noparent": true
}, },
"app.window": { "app.window": {
"channel": "stable", "noparent": true,
"contexts": ["blessed_extension"], "contexts": ["blessed_extension"],
"extension_types": ["platform_app"], "dependencies": ["permission:app.window"]
"noparent": true
}, },
"app.currentWindowInternal": { "app.currentWindowInternal": {
"noparent": true, "noparent": true,

@@ -29,6 +29,14 @@
"extension_types": ["extension", "legacy_packaged_app", "platform_app"], "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"min_manifest_version": 2 "min_manifest_version": 2
}, },
"app.runtime": {
"channel": "stable",
"extension_types": ["platform_app"]
},
"app.window": {
"channel": "stable",
"extension_types": ["platform_app"]
},
"audio": [ "audio": [
{ {
"channel": "dev", "channel": "dev",

@@ -281,6 +281,9 @@ std::vector<APIPermissionInfo*> ChromeAPIPermissions::GetAllPermissions()
APIPermissionInfo::kFlagCannotBeOptional, 0, APIPermissionInfo::kFlagCannotBeOptional, 0,
PermissionMessage::kNone, &CreateAPIPermission<SocketPermission> }, PermissionMessage::kNone, &CreateAPIPermission<SocketPermission> },
{ APIPermission::kSocketsUdp, "sockets.udp" }, { APIPermission::kSocketsUdp, "sockets.udp" },
{ APIPermission::kAppCurrentWindowInternal, "app.currentWindowInternal" },
{ APIPermission::kAppRuntime, "app.runtime" },
{ APIPermission::kAppWindow, "app.window" },
{ APIPermission::kAudioCapture, "audioCapture", { APIPermission::kAudioCapture, "audioCapture",
APIPermissionInfo::kFlagNone, APIPermissionInfo::kFlagNone,
IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE, IDS_EXTENSION_PROMPT_WARNING_AUDIO_CAPTURE,

@@ -640,6 +640,9 @@ TEST(PermissionsTest, PermissionMessages) {
skip.insert(APIPermission::kActiveTab); skip.insert(APIPermission::kActiveTab);
skip.insert(APIPermission::kAdView); skip.insert(APIPermission::kAdView);
skip.insert(APIPermission::kAlarms); skip.insert(APIPermission::kAlarms);
skip.insert(APIPermission::kAppCurrentWindowInternal);
skip.insert(APIPermission::kAppRuntime);
skip.insert(APIPermission::kAppWindow);
skip.insert(APIPermission::kAudio); skip.insert(APIPermission::kAudio);
skip.insert(APIPermission::kBrowsingData); skip.insert(APIPermission::kBrowsingData);
skip.insert(APIPermission::kContextMenus); skip.insert(APIPermission::kContextMenus);

@@ -579,6 +579,18 @@ bool PermissionsData::ParsePermissions(Extension* extension, string16* error) {
return false; 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); initial_optional_permissions_.reset(new InitialPermissions);
if (!ParseHelper(extension, if (!ParseHelper(extension,
keys::kOptionalPermissions, keys::kOptionalPermissions,

@@ -2,6 +2,9 @@
"name": "Extension for testing that apps-only things are blocked", "name": "Extension for testing that apps-only things are blocked",
"version": "0.5", "version": "0.5",
"manifest_version": 2, "manifest_version": 2,
"permissions": [
"app.window"
],
"background": { "background": {
"scripts": ["background.js"] "scripts": ["background.js"]
} }

@@ -2,6 +2,7 @@
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChIkos4QMuz7xmtnVIPCRZmcKzLyyvChW508KvpVWhdJZjnMShxVqH5QwrEzwtRhK1bTX/Y+7kmKGb9z49O//4KY/gFZQyiRNDnqv85L7fz7ceobLozwQWkhTFafYS39VMs00G0FvgQvEM1gO/Kg3eWVTFRUJCHHrMkO1De2Xd+wIDAQAB", "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChIkos4QMuz7xmtnVIPCRZmcKzLyyvChW508KvpVWhdJZjnMShxVqH5QwrEzwtRhK1bTX/Y+7kmKGb9z49O//4KY/gFZQyiRNDnqv85L7fz7ceobLozwQWkhTFafYS39VMs00G0FvgQvEM1gO/Kg3eWVTFRUJCHHrMkO1De2Xd+wIDAQAB",
"name": "Messaging Test App 1", "name": "Messaging Test App 1",
"version": "0.5", "version": "0.5",
"permissions": [ "app.runtime" ],
"app": { "app": {
"background": { "background": {
"scripts": ["background.js"] "scripts": ["background.js"]

@@ -2,6 +2,7 @@
"key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDbh1pj7Q+vZzotbfPfe1Q4AIeJc3gU1xhTSMtjB0UZH+G3ckScJYTnFCTkFAn/mEOtn7e+SZ9rhDf4k6X7Qf6BzK3PLNn3+2Hb/F0NC57hiWI2UyhXY2dl2ry6VENkuyo1QpEMGH5FB5tC2rcuivG8ipBbUWLoQLMbegUdOLXoNK4tGvKwlGa1B0QPAMIkEw3ZlerckC8e+tWC38WvHxy1EM5VeK8k4GcrDEltoVByprTe/8VTzvEsFFYljpIzbSTi6mKOhY2sdl0EfCpXT4dSCeSe81O8liMU1yYKBQCbzguASV7yzZMX08tb96MOpx0NYbYXt03Zyj3xlbep5n4l", "key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDbh1pj7Q+vZzotbfPfe1Q4AIeJc3gU1xhTSMtjB0UZH+G3ckScJYTnFCTkFAn/mEOtn7e+SZ9rhDf4k6X7Qf6BzK3PLNn3+2Hb/F0NC57hiWI2UyhXY2dl2ry6VENkuyo1QpEMGH5FB5tC2rcuivG8ipBbUWLoQLMbegUdOLXoNK4tGvKwlGa1B0QPAMIkEw3ZlerckC8e+tWC38WvHxy1EM5VeK8k4GcrDEltoVByprTe/8VTzvEsFFYljpIzbSTi6mKOhY2sdl0EfCpXT4dSCeSe81O8liMU1yYKBQCbzguASV7yzZMX08tb96MOpx0NYbYXt03Zyj3xlbep5n4l",
"name": "Messaging Test App 2", "name": "Messaging Test App 2",
"version": "0.5", "version": "0.5",
"permissions": [ "app.runtime" ],
"app": { "app": {
"background": { "background": {
"scripts": ["background.js"] "scripts": ["background.js"]

@@ -12,6 +12,8 @@
"permissions": [ "permissions": [
"activeTab", "activeTab",
"alarms", "alarms",
"app.runtime",
"app.window",
"audioCapture", "audioCapture",
"autotestPrivate", "autotestPrivate",
"background", "background",

@@ -39,6 +39,9 @@ class APIPermission {
kActivityLogPrivate, kActivityLogPrivate,
kAdView, kAdView,
kAlarms, kAlarms,
kAppCurrentWindowInternal,
kAppRuntime,
kAppWindow,
kAudio, kAudio,
kAudioCapture, kAudioCapture,
kAutoTestPrivate, kAutoTestPrivate,