Chromium Code Reviews| 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) { |
|
Yoyo Zhou
2014/04/14 23:21:53
This also changes the behavior - I think it's more
|
| + 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; |