diff options
Diffstat (limited to 'chrome/common/common_param_traits.cc')
-rw-r--r-- | chrome/common/common_param_traits.cc | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/chrome/common/common_param_traits.cc b/chrome/common/common_param_traits.cc index 165224c..3564780 100644 --- a/chrome/common/common_param_traits.cc +++ b/chrome/common/common_param_traits.cc @@ -232,25 +232,36 @@ void ParamTraits<WebApplicationInfo>::Write(Message* m, WriteParam(m, p.title); WriteParam(m, p.description); WriteParam(m, p.app_url); + WriteParam(m, p.launch_container); WriteParam(m, p.icons.size()); + WriteParam(m, p.permissions.size()); + for (size_t i = 0; i < p.icons.size(); ++i) { WriteParam(m, p.icons[i].url); WriteParam(m, p.icons[i].width); WriteParam(m, p.icons[i].height); WriteParam(m, p.icons[i].data); } + + for (size_t i = 0; i < p.permissions.size(); ++i) + WriteParam(m, p.permissions[i]); } bool ParamTraits<WebApplicationInfo>::Read( const Message* m, void** iter, WebApplicationInfo* r) { - size_t icon_count; + size_t icon_count = 0; + size_t permissions_count = 0; + bool result = ReadParam(m, iter, &r->title) && ReadParam(m, iter, &r->description) && ReadParam(m, iter, &r->app_url) && - ReadParam(m, iter, &icon_count); + ReadParam(m, iter, &r->launch_container) && + ReadParam(m, iter, &icon_count) && + ReadParam(m, iter, &permissions_count); if (!result) return false; + for (size_t i = 0; i < icon_count; ++i) { param_type::IconInfo icon_info; result = @@ -262,6 +273,14 @@ bool ParamTraits<WebApplicationInfo>::Read( return false; r->icons.push_back(icon_info); } + + for (size_t i = 0; i < permissions_count; ++i) { + std::string permission; + if (!ReadParam(m, iter, &permission)) + return false; + r->permissions.push_back(permission); + } + return true; } |