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

Side by Side Diff: remoting/host/it2me/it2me_native_messaging_host_main.cc

Issue 591463003: Remote Assistance on Chrome OS Part III - NativeMessageHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@native_messaging
Patch Set: Fix NativeMessagingBasic test on Release builds Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "remoting/host/it2me/it2me_native_messaging_host_main.h" 5 #include "remoting/host/it2me/it2me_native_messaging_host_main.h"
6 6
7 #include "base/at_exit.h" 7 #include "base/at_exit.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/i18n/icu_util.h" 9 #include "base/i18n/icu_util.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "media/base/media.h" 12 #include "media/base/media.h"
13 #include "net/socket/ssl_server_socket.h" 13 #include "net/socket/ssl_server_socket.h"
14 #include "remoting/base/breakpad.h" 14 #include "remoting/base/breakpad.h"
15 #include "remoting/base/resources.h" 15 #include "remoting/base/resources.h"
16 #include "remoting/host/host_exit_codes.h" 16 #include "remoting/host/host_exit_codes.h"
17 #include "remoting/host/it2me/it2me_native_messaging_host.h" 17 #include "remoting/host/it2me/it2me_native_messaging_host.h"
18 #include "remoting/host/logging.h" 18 #include "remoting/host/logging.h"
19 #include "remoting/host/native_messaging/native_messaging_pipe.h"
19 #include "remoting/host/native_messaging/pipe_messaging_channel.h" 20 #include "remoting/host/native_messaging/pipe_messaging_channel.h"
20 #include "remoting/host/usage_stats_consent.h" 21 #include "remoting/host/usage_stats_consent.h"
21 22
22 #if defined(OS_LINUX) 23 #if defined(OS_LINUX)
23 #include <gtk/gtk.h> 24 #include <gtk/gtk.h>
24 #include <X11/Xlib.h> 25 #include <X11/Xlib.h>
25 #endif // defined(OS_LINUX) 26 #endif // defined(OS_LINUX)
26 27
27 #if defined(OS_MACOSX) 28 #if defined(OS_MACOSX)
28 #include "base/mac/scoped_nsautorelease_pool.h" 29 #include "base/mac/scoped_nsautorelease_pool.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 111
111 base::MessageLoopForUI message_loop; 112 base::MessageLoopForUI message_loop;
112 base::RunLoop run_loop; 113 base::RunLoop run_loop;
113 114
114 scoped_refptr<AutoThreadTaskRunner> task_runner = 115 scoped_refptr<AutoThreadTaskRunner> task_runner =
115 new remoting::AutoThreadTaskRunner(message_loop.message_loop_proxy(), 116 new remoting::AutoThreadTaskRunner(message_loop.message_loop_proxy(),
116 run_loop.QuitClosure()); 117 run_loop.QuitClosure());
117 118
118 scoped_ptr<It2MeHostFactory> factory(new It2MeHostFactory()); 119 scoped_ptr<It2MeHostFactory> factory(new It2MeHostFactory());
119 120
121 scoped_ptr<NativeMessagingPipe> native_messaging_pipe(
122 new NativeMessagingPipe());
123
120 // Set up the native messaging channel. 124 // Set up the native messaging channel.
121 scoped_ptr<extensions::NativeMessagingChannel> channel( 125 scoped_ptr<extensions::NativeMessagingChannel> channel(
122 new PipeMessagingChannel(read_file.Pass(), write_file.Pass())); 126 new PipeMessagingChannel(read_file.Pass(), write_file.Pass()));
123 127
124 scoped_ptr<It2MeNativeMessagingHost> host(new It2MeNativeMessagingHost( 128 scoped_ptr<extensions::NativeMessageHost> host(new It2MeNativeMessagingHost(
125 task_runner, channel.Pass(), factory.Pass())); 129 task_runner,
126 host->Start(run_loop.QuitClosure()); 130 factory.Pass()));
131
132 host->Start(native_messaging_pipe.get());
133
134 native_messaging_pipe->Start(
135 host.Pass(), channel.Pass(), run_loop.QuitClosure());
127 136
128 // Run the loop until channel is alive. 137 // Run the loop until channel is alive.
129 run_loop.Run(); 138 run_loop.Run();
130 139
131 return kSuccessExitCode; 140 return kSuccessExitCode;
132 } 141 }
133 142
134 int It2MeNativeMessagingHostMain(int argc, char** argv) { 143 int It2MeNativeMessagingHostMain(int argc, char** argv) {
135 // This object instance is required by Chrome code (such as MessageLoop). 144 // This object instance is required by Chrome code (such as MessageLoop).
136 base::AtExitManager exit_manager; 145 base::AtExitManager exit_manager;
137 146
138 base::CommandLine::Init(argc, argv); 147 base::CommandLine::Init(argc, argv);
139 remoting::InitHostLogging(); 148 remoting::InitHostLogging();
140 149
141 return StartIt2MeNativeMessagingHost(); 150 return StartIt2MeNativeMessagingHost();
142 } 151 }
143 152
144 } // namespace remoting 153 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/it2me/it2me_native_messaging_host.cc ('k') | remoting/host/it2me/it2me_native_messaging_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698