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

Unified Diff: chrome/browser/plugin_process_host.cc

Issue 149062: mac/linux: rework plugin channel file descriptor creation (Closed)
Patch Set: address review comments Created 11 years, 6 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/common/ipc_message.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/plugin_process_host.cc
diff --git a/chrome/browser/plugin_process_host.cc b/chrome/browser/plugin_process_host.cc
index d1103a065736cfeb81c7327d5b3e48d2ac0a1aa9..55885bd3d2d375311b573f457065f8d7f5464723 100644
--- a/chrome/browser/plugin_process_host.cc
+++ b/chrome/browser/plugin_process_host.cc
@@ -472,14 +472,8 @@ void PluginProcessHost::OpenChannelToPlugin(
// The channel is already in the process of being opened. Put
// this "open channel" request into a queue of requests that will
// be run once the channel is open.
- //
- // On POSIX, we'll only create the pipe when we get around to actually
- // making this request. So the socket fd is -1 for now. (On Windows,
- // socket_fd is unused.)
- int socket_fd = -1;
pending_requests_.push_back(
- ChannelRequest(renderer_message_filter, mime_type, reply_msg,
- socket_fd));
+ ChannelRequest(renderer_message_filter, mime_type, reply_msg));
return;
}
@@ -533,44 +527,28 @@ URLRequestContext* PluginProcessHost::GetRequestContext(
void PluginProcessHost::RequestPluginChannel(
ResourceMessageFilter* renderer_message_filter,
const std::string& mime_type, IPC::Message* reply_msg) {
- // We're about to send the request for a plugin channel.
- // On POSIX, we create the channel endpoints here, so we can send the
- // endpoints to the plugin and renderer.
- int plugin_fd = -1, renderer_fd = -1;
-#if defined(OS_POSIX)
- // On POSIX, we create the channel endpoints here.
- IPC::SocketPair(&plugin_fd, &renderer_fd);
-#endif
-
// We can't send any sync messages from the browser because it might lead to
// a hang. However this async messages must be answered right away by the
// 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.
PluginProcessMsg_CreateChannel* msg = new PluginProcessMsg_CreateChannel(
-#if defined(OS_POSIX)
- // Takes ownership of plugin_fd.
- base::FileDescriptor(plugin_fd, true),
-#endif
renderer_message_filter->GetProcessId(),
renderer_message_filter->off_the_record());
msg->set_unblock(true);
if (Send(msg)) {
sent_requests_.push(ChannelRequest(
- renderer_message_filter, mime_type, reply_msg, renderer_fd));
+ renderer_message_filter, mime_type, reply_msg));
} else {
ReplyToRenderer(renderer_message_filter, IPC::ChannelHandle(), FilePath(),
reply_msg);
}
}
-void PluginProcessHost::OnChannelCreated(const std::string& channel_name) {
+void PluginProcessHost::OnChannelCreated(
+ const IPC::ChannelHandle& channel_handle) {
const ChannelRequest& request = sent_requests_.front();
- IPC::ChannelHandle channel_handle(channel_name
-#if defined(OS_POSIX)
- , base::FileDescriptor(request.socket, true)
-#endif
- );
+
ReplyToRenderer(request.renderer_message_filter_.get(),
channel_handle,
info_.path,
« no previous file with comments | « chrome/browser/plugin_process_host.h ('k') | chrome/common/ipc_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698