summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/extension.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/extensions/extension.cc')
-rw-r--r--chrome/common/extensions/extension.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index 1ea3041d..4d9cf10 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -908,8 +908,9 @@ bool Extension::LoadIsApp(const DictionaryValue* manifest,
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kEnablePlatformApps)) {
- if (manifest->HasKey(keys::kPlatformApp))
- is_platform_app_ = true;
+ if (manifest->HasKey(keys::kPlatformApp)) {
+ manifest->GetBoolean(keys::kPlatformApp, &is_platform_app_);
+ }
}
return true;
@@ -2863,6 +2864,14 @@ bool Extension::CanSpecifyAPIPermission(
}
}
+ if (permission->is_platform_app_only()) {
+ if (!is_platform_app()) {
+ *error = ExtensionErrorUtils::FormatErrorMessage(
+ errors::kPermissionNotAllowed, permission->name());
+ return false;
+ }
+ }
+
return true;
}