| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Represents the browser side of the browser <--> renderer communication | 5 // Represents the browser side of the browser <--> renderer communication |
| 6 // channel. There will be one RenderProcessHost per renderer process. | 6 // channel. There will be one RenderProcessHost per renderer process. |
| 7 | 7 |
| 8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 | 395 |
| 396 #if defined(OS_LINUX) | 396 #if defined(OS_LINUX) |
| 397 int flags = renderer_prefix.empty() ? ChildProcessHost::CHILD_ALLOW_SELF : | 397 int flags = renderer_prefix.empty() ? ChildProcessHost::CHILD_ALLOW_SELF : |
| 398 ChildProcessHost::CHILD_NORMAL; | 398 ChildProcessHost::CHILD_NORMAL; |
| 399 #else | 399 #else |
| 400 int flags = ChildProcessHost::CHILD_NORMAL; | 400 int flags = ChildProcessHost::CHILD_NORMAL; |
| 401 #endif | 401 #endif |
| 402 | 402 |
| 403 // Find the renderer before creating the channel so if this fails early we | 403 // Find the renderer before creating the channel so if this fails early we |
| 404 // return without creating the channel. | 404 // return without creating the channel. |
| 405 FilePath renderer_path = ChildProcessHost::GetChildPath(flags); | 405 base::FilePath renderer_path = ChildProcessHost::GetChildPath(flags); |
| 406 if (renderer_path.empty()) | 406 if (renderer_path.empty()) |
| 407 return false; | 407 return false; |
| 408 | 408 |
| 409 // Setup the IPC channel. | 409 // Setup the IPC channel. |
| 410 const std::string channel_id = | 410 const std::string channel_id = |
| 411 IPC::Channel::GenerateVerifiedChannelID(std::string()); | 411 IPC::Channel::GenerateVerifiedChannelID(std::string()); |
| 412 channel_.reset( | 412 channel_.reset( |
| 413 #if defined(OS_ANDROID) | 413 #if defined(OS_ANDROID) |
| 414 // Android WebView needs to be able to wait from the UI thread to support | 414 // Android WebView needs to be able to wait from the UI thread to support |
| 415 // the synchronous legacy APIs. | 415 // the synchronous legacy APIs. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 if (!renderer_prefix.empty()) | 456 if (!renderer_prefix.empty()) |
| 457 cmd_line->PrependWrapper(renderer_prefix); | 457 cmd_line->PrependWrapper(renderer_prefix); |
| 458 AppendRendererCommandLine(cmd_line); | 458 AppendRendererCommandLine(cmd_line); |
| 459 cmd_line->AppendSwitchASCII(switches::kProcessChannelID, channel_id); | 459 cmd_line->AppendSwitchASCII(switches::kProcessChannelID, channel_id); |
| 460 | 460 |
| 461 // Spawn the child process asynchronously to avoid blocking the UI thread. | 461 // Spawn the child process asynchronously to avoid blocking the UI thread. |
| 462 // As long as there's no renderer prefix, we can use the zygote process | 462 // As long as there's no renderer prefix, we can use the zygote process |
| 463 // at this stage. | 463 // at this stage. |
| 464 child_process_launcher_.reset(new ChildProcessLauncher( | 464 child_process_launcher_.reset(new ChildProcessLauncher( |
| 465 #if defined(OS_WIN) | 465 #if defined(OS_WIN) |
| 466 FilePath(), | 466 base::FilePath(), |
| 467 #elif defined(OS_POSIX) | 467 #elif defined(OS_POSIX) |
| 468 renderer_prefix.empty(), | 468 renderer_prefix.empty(), |
| 469 base::EnvironmentVector(), | 469 base::EnvironmentVector(), |
| 470 channel_->TakeClientFileDescriptor(), | 470 channel_->TakeClientFileDescriptor(), |
| 471 #endif | 471 #endif |
| 472 cmd_line, | 472 cmd_line, |
| 473 GetID(), | 473 GetID(), |
| 474 this)); | 474 this)); |
| 475 | 475 |
| 476 fast_shutdown_started_ = false; | 476 fast_shutdown_started_ = false; |
| (...skipping 1136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1613 TRACE_EVENT0("renderer_host", | 1613 TRACE_EVENT0("renderer_host", |
| 1614 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost"); | 1614 "RenderWidgetHostImpl::OnCompositorSurfaceBuffersSwappedNoHost"); |
| 1615 AcceleratedSurfaceMsg_BufferPresented_Params ack_params; | 1615 AcceleratedSurfaceMsg_BufferPresented_Params ack_params; |
| 1616 ack_params.sync_point = 0; | 1616 ack_params.sync_point = 0; |
| 1617 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id, | 1617 RenderWidgetHostImpl::AcknowledgeBufferPresent(route_id, |
| 1618 gpu_process_host_id, | 1618 gpu_process_host_id, |
| 1619 ack_params); | 1619 ack_params); |
| 1620 } | 1620 } |
| 1621 | 1621 |
| 1622 } // namespace content | 1622 } // namespace content |
| OLD | NEW |