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

Side by Side Diff: remoting/host/daemon_process.cc

Issue 11231060: [Chromoting] The desktop process now creates a pre-connected pipe and passes (with some help of the… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « remoting/host/daemon_process.h ('k') | remoting/host/daemon_process_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "remoting/host/daemon_process.h" 5 #include "remoting/host/daemon_process.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
13 #include "remoting/base/auto_thread_task_runner.h"
13 #include "remoting/host/branding.h" 14 #include "remoting/host/branding.h"
14 #include "remoting/host/chromoting_messages.h" 15 #include "remoting/host/chromoting_messages.h"
15 #include "remoting/host/desktop_session.h" 16 #include "remoting/host/desktop_session.h"
16 17
17 namespace remoting { 18 namespace remoting {
18 19
19 DaemonProcess::~DaemonProcess() { 20 DaemonProcess::~DaemonProcess() {
20 DCHECK(!config_watcher_.get()); 21 DCHECK(!config_watcher_.get());
21 DCHECK(desktop_sessions_.empty()); 22 DCHECK(desktop_sessions_.empty());
22 } 23 }
(...skipping 10 matching lines...) Expand all
33 34
34 void DaemonProcess::OnConfigWatcherError() { 35 void DaemonProcess::OnConfigWatcherError() {
35 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 36 DCHECK(caller_task_runner()->BelongsToCurrentThread());
36 37
37 Stop(); 38 Stop();
38 } 39 }
39 40
40 void DaemonProcess::OnChannelConnected(int32 peer_pid) { 41 void DaemonProcess::OnChannelConnected(int32 peer_pid) {
41 DCHECK(caller_task_runner()->BelongsToCurrentThread()); 42 DCHECK(caller_task_runner()->BelongsToCurrentThread());
42 43
44 VLOG(1) << "IPC: daemon <- network (" << peer_pid << ")";
45
43 DeleteAllDesktopSessions(); 46 DeleteAllDesktopSessions();
44 47
45 // Reset the last known terminal ID because no IDs have been allocated 48 // Reset the last known terminal ID because no IDs have been allocated
46 // by the the newly started process yet. 49 // by the the newly started process yet.
47 next_terminal_id_ = 0; 50 next_terminal_id_ = 0;
48 51
49 // Send the configuration to the network process. 52 // Send the configuration to the network process.
50 SendToNetwork( 53 SendToNetwork(
51 new ChromotingDaemonNetworkMsg_Configuration(serialized_config_)); 54 new ChromotingDaemonNetworkMsg_Configuration(serialized_config_));
52 } 55 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 101
99 delete *i; 102 delete *i;
100 desktop_sessions_.erase(i); 103 desktop_sessions_.erase(i);
101 104
102 VLOG(1) << "Daemon: closed desktop session " << terminal_id; 105 VLOG(1) << "Daemon: closed desktop session " << terminal_id;
103 SendToNetwork( 106 SendToNetwork(
104 new ChromotingDaemonNetworkMsg_TerminalDisconnected(terminal_id)); 107 new ChromotingDaemonNetworkMsg_TerminalDisconnected(terminal_id));
105 } 108 }
106 109
107 DaemonProcess::DaemonProcess( 110 DaemonProcess::DaemonProcess(
108 scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner, 111 scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
109 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 112 scoped_refptr<AutoThreadTaskRunner> io_task_runner,
110 const base::Closure& stopped_callback) 113 const base::Closure& stopped_callback)
111 : Stoppable(caller_task_runner, stopped_callback), 114 : Stoppable(caller_task_runner, stopped_callback),
112 caller_task_runner_(caller_task_runner), 115 caller_task_runner_(caller_task_runner),
113 io_task_runner_(io_task_runner), 116 io_task_runner_(io_task_runner),
114 next_terminal_id_(0) { 117 next_terminal_id_(0) {
115 DCHECK(caller_task_runner->BelongsToCurrentThread()); 118 DCHECK(caller_task_runner->BelongsToCurrentThread());
116 } 119 }
117 120
118 bool DaemonProcess::IsTerminalIdKnown(int terminal_id) { 121 bool DaemonProcess::IsTerminalIdKnown(int terminal_id) {
119 return terminal_id < next_terminal_id_; 122 return terminal_id < next_terminal_id_;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 } 178 }
176 179
177 void DaemonProcess::DeleteAllDesktopSessions() { 180 void DaemonProcess::DeleteAllDesktopSessions() {
178 while (!desktop_sessions_.empty()) { 181 while (!desktop_sessions_.empty()) {
179 delete desktop_sessions_.front(); 182 delete desktop_sessions_.front();
180 desktop_sessions_.pop_front(); 183 desktop_sessions_.pop_front();
181 } 184 }
182 } 185 }
183 186
184 } // namespace remoting 187 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/daemon_process.h ('k') | remoting/host/daemon_process_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698