Index: remoting/host/desktop_environment.cc |
diff --git a/remoting/host/desktop_environment.cc b/remoting/host/desktop_environment.cc |
index 874a3c8256740e3ca0ae9318408baf62d292ba9e..e3268afa392049e7d19b8bda7ab9469bfafe8556 100644 |
--- a/remoting/host/desktop_environment.cc |
+++ b/remoting/host/desktop_environment.cc |
@@ -30,6 +30,25 @@ scoped_ptr<DesktopEnvironment> DesktopEnvironment::Create( |
return scoped_ptr<DesktopEnvironment>(); |
} |
+ return scoped_ptr<DesktopEnvironment>( |
+ new DesktopEnvironment(context, |
+ capturer.Pass(), |
+ event_executor.Pass())); |
+} |
+ |
+// static |
+scoped_ptr<DesktopEnvironment> DesktopEnvironment::CreateForService( |
+ ChromotingHostContext* context) { |
+ scoped_ptr<Capturer> capturer(Capturer::Create()); |
+ scoped_ptr<protocol::HostEventStub> event_executor = |
+ EventExecutor::Create(context->desktop_message_loop(), |
+ capturer.get()); |
+ |
+ if (capturer.get() == NULL || event_executor.get() == NULL) { |
+ LOG(ERROR) << "Unable to create DesktopEnvironment"; |
+ return scoped_ptr<DesktopEnvironment>(); |
+ } |
+ |
#if defined(OS_WIN) |
event_executor.reset(new SessionEventExecutorWin( |
context->desktop_message_loop(), |