summaryrefslogtreecommitdiffstats
path: root/chrome/common/render_messages_params.cc
diff options
context:
space:
mode:
authorrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-28 16:20:47 +0000
committerrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-28 16:20:47 +0000
commitb84ae679f054d846372e8e8ded5c31e8e9dc2ec8 (patch)
tree685b40227a5d08e327d2c558bc1f65ba61f640df /chrome/common/render_messages_params.cc
parent899c3e93acbd41bcd3c5ce5d09eddef8f45ab3ff (diff)
downloadchromium_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.cc26
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,