| Index: content/browser/renderer_host/gpu_message_filter.cc
|
| ===================================================================
|
| --- content/browser/renderer_host/gpu_message_filter.cc (revision 132251)
|
| +++ content/browser/renderer_host/gpu_message_filter.cc (working copy)
|
| @@ -173,11 +173,31 @@
|
| void GpuMessageFilter::EstablishChannelCallback(
|
| IPC::Message* reply,
|
| const IPC::ChannelHandle& channel,
|
| + base::ProcessHandle gpu_process_for_browser,
|
| const content::GPUInfo& gpu_info) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
|
|
| + base::ProcessHandle renderer_process_for_gpu;
|
| + if (gpu_process_for_browser != 0) {
|
| +#if defined(OS_WIN)
|
| + // Create a process handle that the renderer process can give to the GPU
|
| + // process to give it access to its handles.
|
| + DuplicateHandle(base::GetCurrentProcessHandle(),
|
| + peer_handle(),
|
| + gpu_process_for_browser,
|
| + &renderer_process_for_gpu,
|
| + PROCESS_DUP_HANDLE,
|
| + FALSE,
|
| + 0);
|
| +#else
|
| + renderer_process_for_gpu = peer_handle();
|
| +#endif
|
| + } else {
|
| + renderer_process_for_gpu = 0;
|
| + }
|
| +
|
| GpuHostMsg_EstablishGpuChannel::WriteReplyParams(
|
| - reply, render_process_id_, channel, gpu_info);
|
| + reply, render_process_id_, channel, renderer_process_for_gpu, gpu_info);
|
| Send(reply);
|
| }
|
|
|
|
|