Chromium Code Reviews| Index: extensions/common/extension_messages.cc |
| diff --git a/extensions/common/extension_messages.cc b/extensions/common/extension_messages.cc |
| index ce572112d44a6b3a504836bf7a27e74a7992dce6..94a6bd0abcf7c926d22fe0d69ff3dff4f817cc12 100644 |
| --- a/extensions/common/extension_messages.cc |
| +++ b/extensions/common/extension_messages.cc |
| @@ -49,7 +49,8 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params() |
| ExtensionMsg_Loaded_Params::~ExtensionMsg_Loaded_Params() {} |
| ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( |
| - const Extension* extension) |
| + const Extension* extension, |
| + bool include_tab_permissions) |
| : manifest(extension->manifest()->value()->DeepCopy()), |
| location(extension->location()), |
| path(extension->path()), |
| @@ -58,6 +59,14 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( |
| *extension->permissions_data()->withheld_permissions()), |
| id(extension->id()), |
| creation_flags(extension->creation_flags()) { |
| + if (include_tab_permissions) { |
| + const extensions::PermissionsData::TabPermissionsMap& tab_permissions = |
| + extension->permissions_data()->tab_specific_permissions(); |
| + for (const auto& pair : tab_permissions) { |
| + tab_specific_permissions[pair.first] = |
| + ExtensionMsg_PermissionSetStruct(*pair.second); |
| + } |
| + } |
| } |
| scoped_refptr<Extension> ExtensionMsg_Loaded_Params::ConvertToExtension( |
| @@ -65,9 +74,14 @@ scoped_refptr<Extension> ExtensionMsg_Loaded_Params::ConvertToExtension( |
| scoped_refptr<Extension> extension = |
| Extension::Create(path, location, *manifest, creation_flags, error); |
| if (extension.get()) { |
| - extension->permissions_data()->SetPermissions( |
| - active_permissions.ToPermissionSet(), |
| - withheld_permissions.ToPermissionSet()); |
| + const extensions::PermissionsData* permissions_data = |
| + extension->permissions_data(); |
| + permissions_data->SetPermissions(active_permissions.ToPermissionSet(), |
| + withheld_permissions.ToPermissionSet()); |
| + for (const auto& pair : tab_specific_permissions) { |
|
not at google - send to devlin
2015/02/05 00:16:13
Should only really do this if |include_tab_permiss
Devlin
2015/02/05 19:54:50
But then we have to cache include_tab_permissions,
not at google - send to devlin
2015/02/05 22:40:22
Oh, you're not saving it... good point. Yes just s
|
| + permissions_data->UpdateTabSpecificPermissions( |
| + pair.first, pair.second.ToPermissionSet()); |
| + } |
| } |
| return extension; |
| } |