diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-07 15:39:55 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-07 15:39:55 +0000 |
commit | 2799c02a46d0d8d2726f19c8b100ff67504a7349 (patch) | |
tree | 184426e3ce12615457a274e62ab3abcdf2152d81 /chrome/common/plugin_messages.h | |
parent | 2fa7c5c06d6fd30d23af3e71942d18d91eaf9b58 (diff) | |
download | chromium_src-2799c02a46d0d8d2726f19c8b100ff67504a7349.zip chromium_src-2799c02a46d0d8d2726f19c8b100ff67504a7349.tar.gz chromium_src-2799c02a46d0d8d2726f19c8b100ff67504a7349.tar.bz2 |
Amit, please review everything.
jam, please review changes to the plugin create channel IPCs.
mpcomplete, please review changes to chrome_plugin_host.cc
ChromeFrame needs to intercept URL requests issued directly by plugins like gears to ensure that they
get routed through the host browser network stack. We decide whether or not a request is to be handled
based on the renderer process id and the render view id (routing id), which get passed in the
ViewHostMsg_RequestResource IPC. If this request is issued by Gears then the routing id comes in as
MSG_ROUTING_NONE, which causes the request to go through the chrome network stack.
Fix is to pass the host render view id to the plugin in the PluginMsg_Init IPC. The plugin already
receives the renderer process id. Both these ids now come back in the ViewHostMsg_RequestResource
IPC.
This fixes an issue with wave when rendered in full tab mode in ChromeFrame, where dropping a file into
a wave would cause the renderer to hang.
Fixes bug http://code.google.com/p/chromium/issues/detail?id=23992
Bug=23992
Review URL: http://codereview.chromium.org/370007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31387 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/plugin_messages.h')
-rw-r--r-- | chrome/common/plugin_messages.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/chrome/common/plugin_messages.h b/chrome/common/plugin_messages.h index 60984d0..6ce53b8 100644 --- a/chrome/common/plugin_messages.h +++ b/chrome/common/plugin_messages.h @@ -38,6 +38,7 @@ struct PluginMsg_Init_Params { std::vector<std::string> arg_names; std::vector<std::string> arg_values; bool load_manually; + int host_render_view_routing_id; }; struct PluginHostMsg_URLRequest_Params { @@ -121,6 +122,7 @@ struct ParamTraits<PluginMsg_Init_Params> { WriteParam(m, p.arg_names); WriteParam(m, p.arg_values); WriteParam(m, p.load_manually); + WriteParam(m, p.host_render_view_routing_id); } static bool Read(const Message* m, void** iter, param_type* p) { return ReadParam(m, iter, &p->containing_window) && @@ -128,7 +130,8 @@ struct ParamTraits<PluginMsg_Init_Params> { ReadParam(m, iter, &p->page_url) && ReadParam(m, iter, &p->arg_names) && ReadParam(m, iter, &p->arg_values) && - ReadParam(m, iter, &p->load_manually); + ReadParam(m, iter, &p->load_manually) && + ReadParam(m, iter, &p->host_render_view_routing_id); } static void Log(const param_type& p, std::wstring* l) { l->append(L"("); @@ -143,6 +146,8 @@ struct ParamTraits<PluginMsg_Init_Params> { LogParam(p.arg_values, l); l->append(L", "); LogParam(p.load_manually, l); + l->append(L", "); + LogParam(p.host_render_view_routing_id, l); l->append(L")"); } }; |