summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 20:37:23 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 20:37:23 +0000
commit99f8f48da9aa763a30ae727b14c4687b3dcd7c82 (patch)
treee30037770b1a0bfb027ee0df1a0a8f9116324168
parent4cb66f7bf28c03b486e6f59302f5244303bfd1c0 (diff)
downloadchromium_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
-rw-r--r--chrome/common/extensions/api/_api_features.json10
-rw-r--r--chrome/common/extensions/api/_permission_features.json8
-rw-r--r--chrome/common/extensions/permissions/chrome_api_permissions.cc3
-rw-r--r--chrome/common/extensions/permissions/permission_set_unittest.cc3
-rw-r--r--chrome/common/extensions/permissions/permissions_data.cc12
-rw-r--r--chrome/test/data/extensions/platform_apps/apps_only/manifest.json3
-rw-r--r--chrome/test/data/extensions/platform_apps/messaging/app1/manifest.json1
-rw-r--r--chrome/test/data/extensions/platform_apps/messaging/app2/manifest.json1
-rw-r--r--chrome/test/ext_auto/auto_provider/manifest.json2
-rw-r--r--extensions/common/permissions/api_permission.h3
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,