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

Unified Diff: remoting/host/remoting_me2me_host.cc

Issue 10837291: [Chromoting] Moving the daemon IPC channel to ChromotingHostContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 4 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 | « remoting/host/desktop_environment.cc ('k') | remoting/host/session_event_executor_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/remoting_me2me_host.cc
diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc
index 53c14b356a15a20c8e0dbf7827c12a8dd7de9ca7..be25fa363bd9e0e28aa3ef1fa00777313f1a5ae9 100644
--- a/remoting/host/remoting_me2me_host.cc
+++ b/remoting/host/remoting_me2me_host.cc
@@ -24,6 +24,8 @@
#include "base/win/windows_version.h"
#include "build/build_config.h"
#include "crypto/nss_util.h"
+#include "ipc/ipc_channel.h"
+#include "ipc/ipc_channel_proxy.h"
#include "net/base/network_change_notifier.h"
#include "net/socket/ssl_server_socket.h"
#include "remoting/base/breakpad.h"
@@ -73,6 +75,9 @@ namespace {
// This is used for tagging system event logs.
const char kApplicationName[] = "chromoting";
+// The command line switch specifying the name of the Chromoting IPC channel.
+const char kDaemonIpcSwitchName[] = "chromoting-ipc";
+
// These are used for parsing the config-file locations from the command line,
// and for defining the default locations if the switches are not present.
const char kAuthConfigSwitchName[] = "auth-config";
@@ -97,7 +102,8 @@ const char kOfficialOAuth2ClientSecret[] = "Bgur6DFiOMM1h8x-AQpuTQlK";
namespace remoting {
class HostProcess
- : public HeartbeatSender::Listener {
+ : public HeartbeatSender::Listener,
+ public IPC::Listener {
public:
HostProcess()
: message_loop_(MessageLoop::TYPE_UI),
@@ -127,6 +133,21 @@ class HostProcess
}
bool InitWithCommandLine(const CommandLine* cmd_line) {
+ // Connect to the daemon process.
+ std::string channel_name =
+ cmd_line->GetSwitchValueASCII(kDaemonIpcSwitchName);
+
+#if defined(REMOTING_MULTI_PROCESS)
+ if (channel_name.empty())
+ return false;
+#endif // defined(REMOTING_MULTI_PROCESS)
+
+ if (!channel_name.empty()) {
+ daemon_channel_.reset(new IPC::ChannelProxy(
+ channel_name, IPC::Channel::MODE_CLIENT, this,
+ context_->network_task_runner()));
+ }
+
FilePath default_config_dir = remoting::GetConfigDir();
if (cmd_line->HasSwitch(kAuthConfigSwitchName)) {
FilePath path = cmd_line->GetSwitchValuePath(kAuthConfigSwitchName);
@@ -217,6 +238,11 @@ class HostProcess
host_->SetAuthenticatorFactory(factory.Pass());
}
+ // IPC::Listener implementation.
+ virtual bool OnMessageReceived(const IPC::Message& message) {
+ return false;
+ }
+
int Run() {
if (!LoadConfig()) {
return kInvalidHostConfigurationExitCode;
@@ -240,6 +266,7 @@ class HostProcess
host_user_interface_.reset();
#endif
+ daemon_channel_.reset();
base::WaitableEvent done_event(true, false);
policy_watcher_->StopWatching(&done_event);
done_event.Wait();
@@ -573,6 +600,7 @@ class HostProcess
MessageLoop message_loop_;
scoped_ptr<ChromotingHostContext> context_;
+ scoped_ptr<IPC::ChannelProxy> daemon_channel_;
scoped_ptr<net::NetworkChangeNotifier> network_change_notifier_;
FilePath host_config_path_;
« no previous file with comments | « remoting/host/desktop_environment.cc ('k') | remoting/host/session_event_executor_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698