Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4594)

Unified Diff: chrome/browser/plugin_process_host.cc

Issue 42054: Stop using renderer specific host ids in ResourceDispatcher. This allows it ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/plugin_process_host.h ('k') | chrome/browser/renderer_host/async_resource_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugin_process_host.cc
===================================================================
--- chrome/browser/plugin_process_host.cc (revision 11493)
+++ chrome/browser/plugin_process_host.cc (working copy)
@@ -372,7 +372,7 @@
PluginProcessHost::~PluginProcessHost() {
// Cancel all requests for plugin process.
PluginService::GetInstance()->resource_dispatcher_host()->
- CancelRequestsForProcess(-1);
+ CancelRequestsForProcess(pid());
#if defined(OS_WIN)
// We erase HWNDs from the plugin_parent_windows_set_ when we receive a
@@ -618,23 +618,23 @@
PluginService::GetInstance()->resource_dispatcher_host()->
BeginRequest(this, ChildProcessInfo::PLUGIN_PROCESS, handle(),
- -1, MSG_ROUTING_CONTROL, request_id,
+ pid(), MSG_ROUTING_CONTROL, request_id,
request, context, NULL);
}
void PluginProcessHost::OnCancelRequest(int request_id) {
PluginService::GetInstance()->resource_dispatcher_host()->
- CancelRequest(-1, request_id, true);
+ CancelRequest(pid(), request_id, true);
}
void PluginProcessHost::OnDataReceivedACK(int request_id) {
PluginService::GetInstance()->resource_dispatcher_host()->
- OnDataReceivedACK(-1, request_id);
+ OnDataReceivedACK(pid(), request_id);
}
void PluginProcessHost::OnUploadProgressACK(int request_id) {
PluginService::GetInstance()->resource_dispatcher_host()->
- OnUploadProgressACK(-1, request_id);
+ OnUploadProgressACK(pid(), request_id);
}
void PluginProcessHost::OnSyncLoad(
@@ -649,7 +649,7 @@
PluginService::GetInstance()->resource_dispatcher_host()->
BeginRequest(this, ChildProcessInfo::PLUGIN_PROCESS, handle(),
- -1, MSG_ROUTING_CONTROL, request_id,
+ pid(), MSG_ROUTING_CONTROL, request_id,
request, context, sync_result);
}
@@ -703,23 +703,11 @@
// plugin process (i.e. unblocks a Send() call like a sync message) otherwise
// a deadlock can occur if the plugin creation request from the renderer is
// a result of a sync message by the plugin process.
-
- // The plugin process expects to receive a handle to the renderer requesting
- // the channel. The handle has to be valid in the plugin process.
- HANDLE renderer_handle = NULL;
- BOOL result = DuplicateHandle(GetCurrentProcess(),
- renderer_message_filter->renderer_handle(),
- handle(), &renderer_handle, 0, FALSE,
- DUPLICATE_SAME_ACCESS);
- DCHECK(result);
-
- PluginProcessMsg_CreateChannel* msg =
- new PluginProcessMsg_CreateChannel(
- renderer_message_filter->render_process_host_id(), renderer_handle);
+ PluginProcessMsg_CreateChannel* msg = new PluginProcessMsg_CreateChannel();
msg->set_unblock(true);
if (Send(msg)) {
- sent_requests_.push_back(ChannelRequest(renderer_message_filter, mime_type,
- reply_msg));
+ sent_requests_.push(ChannelRequest(
+ renderer_message_filter, mime_type, reply_msg));
} else {
ReplyToRenderer(renderer_message_filter, std::wstring(), FilePath(),
reply_msg);
@@ -730,22 +718,12 @@
#endif
}
-void PluginProcessHost::OnChannelCreated(int process_id,
- const std::wstring& channel_name) {
- for (size_t i = 0; i < sent_requests_.size(); ++i) {
- if (sent_requests_[i].renderer_message_filter_->render_process_host_id()
- == process_id) {
- ReplyToRenderer(sent_requests_[i].renderer_message_filter_.get(),
- channel_name,
- info_.path,
- sent_requests_[i].reply_msg);
-
- sent_requests_.erase(sent_requests_.begin() + i);
- return;
- }
- }
-
- NOTREACHED();
+void PluginProcessHost::OnChannelCreated(const std::wstring& channel_name) {
+ ReplyToRenderer(sent_requests_.front().renderer_message_filter_.get(),
+ channel_name,
+ info_.path,
+ sent_requests_.front().reply_msg);
+ sent_requests_.pop();
}
void PluginProcessHost::OnDownloadUrl(const std::string& url,
« no previous file with comments | « chrome/browser/plugin_process_host.h ('k') | chrome/browser/renderer_host/async_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698