diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-28 16:20:47 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-28 16:20:47 +0000 |
commit | b84ae679f054d846372e8e8ded5c31e8e9dc2ec8 (patch) | |
tree | 685b40227a5d08e327d2c558bc1f65ba61f640df /chrome/common/render_messages_params.cc | |
parent | 899c3e93acbd41bcd3c5ce5d09eddef8f45ab3ff (diff) | |
download | chromium_src-b84ae679f054d846372e8e8ded5c31e8e9dc2ec8.zip chromium_src-b84ae679f054d846372e8e8ded5c31e8e9dc2ec8.tar.gz chromium_src-b84ae679f054d846372e8e8ded5c31e8e9dc2ec8.tar.bz2 |
Expose Extension Bindings to Component Applications
This patch allows component (built-in) extension apps to have extension api bindings.
Note that this patch adds browser-side api permission checking for extension requests.
This is step two along the path to exposing an extension management api to the gallery (webstore).
BUG=27431
Review URL: http://codereview.chromium.org/3163044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57788 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/render_messages_params.cc')
-rw-r--r-- | chrome/common/render_messages_params.cc | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/chrome/common/render_messages_params.cc b/chrome/common/render_messages_params.cc index 5ad995e..5e18590 100644 --- a/chrome/common/render_messages_params.cc +++ b/chrome/common/render_messages_params.cc @@ -212,6 +212,28 @@ struct ParamTraits<WindowContainerType> { } }; +template <> +struct ParamTraits<Extension::Location> { + typedef Extension::Location param_type; + static void Write(Message* m, const param_type& p) { + int val = static_cast<int>(p); + WriteParam(m, val); + } + static bool Read(const Message* m, void** iter, param_type* p) { + int val = 0; + if (!ReadParam(m, iter, &val) || + val < Extension::INVALID || + val >= Extension::EXTERNAL_PREF_DOWNLOAD) + return false; + *p = static_cast<param_type>(val); + return true; + } + static void Log(const param_type& p, std::string* l) { + ParamTraits<int>::Log(static_cast<int>(p), l); + } +}; + + void ParamTraits<ViewMsg_Navigate_Params>::Write(Message* m, const param_type& p) { WriteParam(m, p.page_id); @@ -1269,6 +1291,7 @@ void ParamTraits<ViewMsg_ExtensionRendererInfo>::Write(Message* m, WriteParam(m, p.web_extent); WriteParam(m, p.name); WriteParam(m, p.icon_url); + WriteParam(m, p.location); } bool ParamTraits<ViewMsg_ExtensionRendererInfo>::Read(const Message* m, @@ -1277,7 +1300,8 @@ bool ParamTraits<ViewMsg_ExtensionRendererInfo>::Read(const Message* m, return ReadParam(m, iter, &p->id) && ReadParam(m, iter, &p->web_extent) && ReadParam(m, iter, &p->name) && - ReadParam(m, iter, &p->icon_url); + ReadParam(m, iter, &p->icon_url) && + ReadParam(m, iter, &p->location); } void ParamTraits<ViewMsg_ExtensionRendererInfo>::Log(const param_type& p, |