| Index: extensions/common/permissions/media_galleries_permission.cc
|
| diff --git a/extensions/common/permissions/media_galleries_permission.cc b/extensions/common/permissions/media_galleries_permission.cc
|
| index 1d7838a1f63eabf4d7c2b0ebf90811f1a0d6234a..bac5adde9b810b236314b57198e41e3cd5c4ff9b 100644
|
| --- a/extensions/common/permissions/media_galleries_permission.cc
|
| +++ b/extensions/common/permissions/media_galleries_permission.cc
|
| @@ -60,20 +60,23 @@ bool MediaGalleriesPermission::FromValue(
|
| const base::Value* value,
|
| std::string* error,
|
| std::vector<std::string>* unhandled_permissions) {
|
| - std::vector<std::string> unhandled_sub_permissions;
|
| - if (!SetDisjunctionPermission<MediaGalleriesPermissionData,
|
| - MediaGalleriesPermission>::FromValue(
|
| - value, error, &unhandled_sub_permissions)) {
|
| - unhandled_permissions->insert(unhandled_permissions->end(),
|
| - unhandled_sub_permissions.begin(),
|
| - unhandled_sub_permissions.end());
|
| - return false;
|
| - }
|
| -
|
| - for (size_t i = 0; i < unhandled_sub_permissions.size(); i++) {
|
| - unhandled_permissions->push_back(
|
| - "{\"mediaGalleries\": [" + unhandled_sub_permissions[i] + "]}");
|
| + size_t unhandled_permissions_count = 0;
|
| + if (unhandled_permissions)
|
| + unhandled_permissions_count = unhandled_permissions->size();
|
| + bool parsed_ok =
|
| + SetDisjunctionPermission<MediaGalleriesPermissionData,
|
| + MediaGalleriesPermission>::FromValue(
|
| + value, error, unhandled_permissions);
|
| + if (unhandled_permissions) {
|
| + for (size_t i = unhandled_permissions_count;
|
| + i < unhandled_permissions->size();
|
| + i++) {
|
| + (*unhandled_permissions)[i] =
|
| + "{\"mediaGalleries\": [" + (*unhandled_permissions)[i] + "]}";
|
| + }
|
| }
|
| + if (!parsed_ok)
|
| + return false;
|
|
|
| bool has_read = false;
|
| bool has_copy_to = false;
|
|
|