Chromium Code Reviews| Index: chrome/common/extensions/extension_messages.cc |
| diff --git a/chrome/common/extensions/extension_messages.cc b/chrome/common/extensions/extension_messages.cc |
| index 587965f0e28b74c9b45368c73c2a3e6d6aec1cf7..065125fcee24168bef83c5070784c9dd2434efdf 100644 |
| --- a/chrome/common/extensions/extension_messages.cc |
| +++ b/chrome/common/extensions/extension_messages.cc |
| @@ -23,10 +23,14 @@ ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( |
| } |
| ExtensionMsg_Loaded_Params::ExtensionMsg_Loaded_Params( |
| - const Extension* extension) |
| + const Extension* extension, |
| + const ExtensionPermissionSet* active) |
| : manifest(new DictionaryValue()), |
| location(extension->location()), |
| path(extension->path()), |
| + apis(active->apis()), |
| + explicit_hosts(active->explicit_hosts()), |
| + scriptable_hosts(active->scriptable_hosts()), |
| id(extension->id()) { |
| // As we need more bits of extension data in the renderer, add more keys to |
| // this list. |
| @@ -63,6 +67,11 @@ scoped_refptr<Extension> |
| return extension; |
| } |
| +const ExtensionPermissionSet* |
| + ExtensionMsg_Loaded_Params::GetActivePermissions() const { |
| + return new ExtensionPermissionSet(apis, explicit_hosts, scriptable_hosts); |
| +} |
| + |
| namespace IPC { |
| template <> |
| @@ -114,9 +123,7 @@ void ParamTraits<URLPatternSet>::Write(Message* m, const param_type& p) { |
| bool ParamTraits<URLPatternSet>::Read(const Message* m, void** iter, |
| param_type* p) { |
| std::set<URLPattern> patterns; |
| - bool success = |
| - ReadParam(m, iter, &patterns); |
| - if (!success) |
| + if (!ReadParam(m, iter, &patterns)) |
| return false; |
| for (std::set<URLPattern>::iterator i = patterns.begin(); |
| @@ -129,11 +136,34 @@ void ParamTraits<URLPatternSet>::Log(const param_type& p, std::string* l) { |
| LogParam(p.patterns(), l); |
| } |
| +void ParamTraits<ExtensionAPIPermission::ID>::Write( |
| + Message* m, const param_type& p) { |
| + WriteParam(m, (int)p); |
|
Mihai Parparita -not on Chrome
2011/07/21 21:18:13
static_cast<int>(p) is the casting style preferred
jstritar
2011/07/22 19:21:55
Done.
|
| +} |
| + |
| +bool ParamTraits<ExtensionAPIPermission::ID>::Read( |
| + const Message* m, void** iter, param_type* p) { |
| + int api_id = -2; |
| + if (!ReadParam(m, iter, &api_id)) |
| + return false; |
| + |
| + *p = static_cast<ExtensionAPIPermission::ID>(api_id); |
| + return true; |
| +} |
| + |
| +void ParamTraits<ExtensionAPIPermission::ID>::Log( |
| + const param_type& p, std::string* l) { |
| + LogParam((int)p, 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.apis); |
| + WriteParam(m, p.explicit_hosts); |
| + WriteParam(m, p.scriptable_hosts); |
| } |
| bool ParamTraits<ExtensionMsg_Loaded_Params>::Read(const Message* m, |
| @@ -142,7 +172,10 @@ bool ParamTraits<ExtensionMsg_Loaded_Params>::Read(const Message* m, |
| p->manifest.reset(new DictionaryValue()); |
| return ReadParam(m, iter, &p->location) && |
| ReadParam(m, iter, &p->path) && |
| - ReadParam(m, iter, p->manifest.get()); |
| + ReadParam(m, iter, p->manifest.get()) && |
| + ReadParam(m, iter, &p->apis) && |
| + ReadParam(m, iter, &p->explicit_hosts) && |
| + ReadParam(m, iter, &p->scriptable_hosts); |
| } |
| void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, |