Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(884)

Unified Diff: chrome/common/extensions/extension.cc

Issue 10692160: Support socket endpoint permissions for AppsV2 Socket API. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/extension.cc
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index 99ad3f7f50e243b3487c812072fbe7ea5c6ec0ec..95d6120f40ccedfc1dbb56379e0e0b79a6136f3c 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -3320,7 +3320,10 @@ bool Extension::ParsePermissions(const char* key,
for (size_t i = 0; i < permissions->GetSize(); ++i) {
std::string permission_str;
- if (!permissions->GetString(i, &permission_str)) {
+ base::ListValue *permission_list = NULL;
+ if (!permissions->GetString(i, &permission_str) &&
+ !(permissions->GetList(i, &permission_list) &&
+ permission_list->GetString(0, &permission_str))) {
*error = ExtensionErrorUtils::FormatErrorMessageUTF16(
errors::kInvalidPermission, base::IntToString(i));
return false;
@@ -3364,7 +3367,17 @@ bool Extension::ParsePermissions(const char* key,
}
}
- api_permissions->insert(permission->id());
+ scoped_refptr<APIPermissionDetail> detail = permission->CreateDetail();
+ base::Value *value = NULL;
+ if (!permission_list || !permission_list->Get(1, &value))
+ value = NULL;
miket_OOO 2012/07/31 18:18:37 Same comment as earlier. It's weird that a failing
Peng 2012/07/31 19:32:28 Done.
+ if (!detail->FromValue(value)) {
+ *error = ExtensionErrorUtils::FormatErrorMessageUTF16(
+ errors::kInvalidPermission, base::IntToString(i));
+ return false;
+ }
+
+ api_permissions->insert(detail);
continue;
}

Powered by Google App Engine
This is Rietveld 408576698