Index: extensions/common/extension_messages.cc |
diff --git a/extensions/common/extension_messages.cc b/extensions/common/extension_messages.cc |
index 054b2fa24f33d61bd9a1d46cb512d55e474ae36d..129c0ff01c6bed7b0319b6b36a56a3ee58f0a2a3 100644 |
--- a/extensions/common/extension_messages.cc |
+++ b/extensions/common/extension_messages.cc |
@@ -22,6 +22,26 @@ using extensions::ManifestPermissionSet; |
using extensions::PermissionSet; |
using extensions::URLPatternSet; |
+ExtensionMsg_PermissionSetStruct::ExtensionMsg_PermissionSetStruct() { |
+} |
+ |
+ExtensionMsg_PermissionSetStruct::ExtensionMsg_PermissionSetStruct( |
+ const PermissionSet* permissions) |
+ : apis(permissions->apis()), |
+ manifest_permissions(permissions->manifest_permissions()), |
+ explicit_hosts(permissions->explicit_hosts()), |
+ scriptable_hosts(permissions->scriptable_hosts()) { |
+} |
+ |
+ExtensionMsg_PermissionSetStruct::~ExtensionMsg_PermissionSetStruct() { |
+} |
+ |
+scoped_refptr<const PermissionSet> |
+ExtensionMsg_PermissionSetStruct::ToPermissionSet() const { |
+ return new PermissionSet( |
+ apis, manifest_permissions, explicit_hosts, scriptable_hosts); |
+} |
+ |
ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params() |
: location(Manifest::INVALID_LOCATION), |
creation_flags(Extension::NO_FLAGS) {} |
@@ -33,16 +53,9 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( |
: manifest(extension->manifest()->value()->DeepCopy()), |
location(extension->location()), |
path(extension->path()), |
- apis(extension->permissions_data()->active_permissions()->apis()), |
- manifest_permissions(extension->permissions_data() |
- ->active_permissions() |
- ->manifest_permissions()), |
- explicit_hosts(extension->permissions_data() |
- ->active_permissions() |
- ->explicit_hosts()), |
- scriptable_hosts(extension->permissions_data() |
- ->active_permissions() |
- ->scriptable_hosts()), |
+ active_permissions(extension->permissions_data()->active_permissions()), |
+ withheld_permissions( |
+ extension->permissions_data()->withheld_permissions()), |
id(extension->id()), |
creation_flags(extension->creation_flags()) { |
} |
@@ -52,8 +65,9 @@ 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()->SetActivePermissions(new PermissionSet( |
- apis, manifest_permissions, explicit_hosts, scriptable_hosts)); |
+ extension->permissions_data()->SetPermissions( |
+ active_permissions.ToPermissionSet(), |
+ withheld_permissions.ToPermissionSet()); |
} |
return extension; |
} |
@@ -221,28 +235,50 @@ void ParamTraits<ManifestPermissionSet>::Log( |
LogParam(p.map(), l); |
} |
+void ParamTraits<ExtensionMsg_PermissionSetStruct>::Write(Message* m, |
+ const param_type& p) { |
+ WriteParam(m, p.apis); |
+ WriteParam(m, p.manifest_permissions); |
+ WriteParam(m, p.explicit_hosts); |
+ WriteParam(m, p.scriptable_hosts); |
+} |
+ |
+bool ParamTraits<ExtensionMsg_PermissionSetStruct>::Read(const Message* m, |
+ PickleIterator* iter, |
+ param_type* p) { |
+ return ReadParam(m, iter, &p->apis) && |
+ ReadParam(m, iter, &p->manifest_permissions) && |
+ ReadParam(m, iter, &p->explicit_hosts) && |
+ ReadParam(m, iter, &p->scriptable_hosts); |
+} |
+ |
+void ParamTraits<ExtensionMsg_PermissionSetStruct>::Log(const param_type& p, |
+ std::string* l) { |
+ LogParam(p.apis, l); |
+ LogParam(p.manifest_permissions, l); |
+ LogParam(p.explicit_hosts, l); |
+ LogParam(p.scriptable_hosts, l); |
+} |
+ |
void ParamTraits<ExtensionMsg_Loaded_Params>::Write(Message* m, |
const param_type& p) { |
WriteParam(m, p.location); |
WriteParam(m, p.path); |
WriteParam(m, *(p.manifest)); |
WriteParam(m, p.creation_flags); |
- WriteParam(m, p.apis); |
- WriteParam(m, p.explicit_hosts); |
- WriteParam(m, p.scriptable_hosts); |
+ WriteParam(m, p.active_permissions); |
+ WriteParam(m, p.withheld_permissions); |
} |
bool ParamTraits<ExtensionMsg_Loaded_Params>::Read(const Message* m, |
PickleIterator* iter, |
param_type* p) { |
p->manifest.reset(new base::DictionaryValue()); |
- return ReadParam(m, iter, &p->location) && |
- ReadParam(m, iter, &p->path) && |
+ return ReadParam(m, iter, &p->location) && ReadParam(m, iter, &p->path) && |
ReadParam(m, iter, p->manifest.get()) && |
ReadParam(m, iter, &p->creation_flags) && |
- ReadParam(m, iter, &p->apis) && |
- ReadParam(m, iter, &p->explicit_hosts) && |
- ReadParam(m, iter, &p->scriptable_hosts); |
+ ReadParam(m, iter, &p->active_permissions) && |
+ ReadParam(m, iter, &p->withheld_permissions); |
} |
void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, |