Index: content/app/content_main_runner.cc |
diff --git a/content/app/content_main_runner.cc b/content/app/content_main_runner.cc |
index 10f226a3f1b0775e037700ef0e0f8eb2999c1d87..e4f8812db56671c6996adc5f70bf2ad5ed1cd42c 100644 |
--- a/content/app/content_main_runner.cc |
+++ b/content/app/content_main_runner.cc |
@@ -86,7 +86,9 @@ |
#if !defined(OS_IOS) |
#include "base/power_monitor/power_monitor_device_source.h" |
#include "content/app/mac/mac_init.h" |
+#include "content/browser/browser_io_surface_manager_mac.h" |
#include "content/browser/mach_broker_mac.h" |
+#include "content/child/child_io_surface_manager_mac.h" |
#include "content/common/sandbox_init_mac.h" |
#endif // !OS_IOS |
#endif // OS_WIN |
@@ -663,6 +665,18 @@ class ContentMainRunnerImpl : public ContentMainRunner { |
(!delegate_ || delegate_->ShouldSendMachPort(process_type))) { |
MachBroker::ChildSendTaskPortToParent(); |
} |
+ |
+ if (!command_line.HasSwitch(switches::kSingleProcess) && |
+ !process_type.empty() && (process_type == switches::kRendererProcess || |
+ process_type == switches::kGpuProcess)) { |
+ base::mac::ScopedMachSendRight service_port = |
+ BrowserIOSurfaceManager::LookupServicePort(getppid()); |
+ if (service_port.is_valid()) { |
+ ChildIOSurfaceManager::GetInstance()->set_service_port( |
+ service_port.release()); |
+ IOSurfaceManager::SetInstance(ChildIOSurfaceManager::GetInstance()); |
+ } |
+ } |
#elif defined(OS_WIN) |
SetupCRT(command_line); |
#endif |