summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-07 15:39:55 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-07 15:39:55 +0000
commit2799c02a46d0d8d2726f19c8b100ff67504a7349 (patch)
tree184426e3ce12615457a274e62ab3abcdf2152d81 /chrome/browser/automation
parent2fa7c5c06d6fd30d23af3e71942d18d91eaf9b58 (diff)
downloadchromium_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/browser/automation')
-rw-r--r--chrome/browser/automation/url_request_automation_job.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/browser/automation/url_request_automation_job.cc b/chrome/browser/automation/url_request_automation_job.cc
index ead7aab..fdd680f 100644
--- a/chrome/browser/automation/url_request_automation_job.cc
+++ b/chrome/browser/automation/url_request_automation_job.cc
@@ -92,9 +92,17 @@ URLRequestJob* URLRequestAutomationJob::Factory(URLRequest* request,
ResourceDispatcherHostRequestInfo* request_info =
ResourceDispatcherHost::InfoForRequest(request);
if (request_info) {
+ int child_id = request_info->child_id();
+ int route_id = request_info->route_id();
+
+ if (request_info->process_type() == ChildProcessInfo::PLUGIN_PROCESS) {
+ child_id = request_info->host_renderer_id();
+ route_id = request_info->host_render_view_id();
+ }
+
AutomationResourceMessageFilter::AutomationDetails details;
if (AutomationResourceMessageFilter::LookupRegisteredRenderView(
- request_info->child_id(), request_info->route_id(), &details)) {
+ child_id, route_id, &details)) {
URLRequestAutomationJob* job = new URLRequestAutomationJob(request,
details.tab_handle, request_info->request_id(), details.filter);
return job;