summaryrefslogtreecommitdiffstats
path: root/extensions/common/permissions/socket_permission.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/common/permissions/socket_permission.cc')
-rw-r--r--extensions/common/permissions/socket_permission.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/extensions/common/permissions/socket_permission.cc b/extensions/common/permissions/socket_permission.cc
index c2ca223..a8e5c18 100644
--- a/extensions/common/permissions/socket_permission.cc
+++ b/extensions/common/permissions/socket_permission.cc
@@ -38,6 +38,21 @@ SocketPermission::SocketPermission(const APIPermissionInfo* info)
SocketPermission::~SocketPermission() {}
+bool SocketPermission::FromValue(
+ const base::Value* value,
+ std::string* error,
+ std::vector<std::string>* unhandled_permissions) {
+ bool parsed_ok = SetDisjunctionPermission<
+ SocketPermissionData, SocketPermission>::FromValue(value, error,
+ unhandled_permissions);
+ if (parsed_ok && data_set_.empty()) {
+ if (error)
+ *error = "NULL or empty permission list";
+ return false;
+ }
+ return parsed_ok;
+}
+
PermissionIDSet SocketPermission::GetPermissions() const {
PermissionIDSet ids;
SocketPermissionEntrySet entries = ExtractSocketEntries(data_set_);