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

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

Issue 398873005: Preparations for Cast Host Extension (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added remoting_me2me_host Created 6 years, 5 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 (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 // This file implements a standalone host process for Me2Me. 5 // This file implements a standalone host process for Me2Me.
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 21 matching lines...) Expand all
32 #include "net/socket/ssl_server_socket.h" 32 #include "net/socket/ssl_server_socket.h"
33 #include "net/url_request/url_fetcher.h" 33 #include "net/url_request/url_fetcher.h"
34 #include "remoting/base/auto_thread_task_runner.h" 34 #include "remoting/base/auto_thread_task_runner.h"
35 #include "remoting/base/breakpad.h" 35 #include "remoting/base/breakpad.h"
36 #include "remoting/base/constants.h" 36 #include "remoting/base/constants.h"
37 #include "remoting/base/logging.h" 37 #include "remoting/base/logging.h"
38 #include "remoting/base/rsa_key_pair.h" 38 #include "remoting/base/rsa_key_pair.h"
39 #include "remoting/base/service_urls.h" 39 #include "remoting/base/service_urls.h"
40 #include "remoting/base/util.h" 40 #include "remoting/base/util.h"
41 #include "remoting/host/branding.h" 41 #include "remoting/host/branding.h"
42 // #include "remoting/host/cast_extension.h"
42 #include "remoting/host/chromoting_host.h" 43 #include "remoting/host/chromoting_host.h"
43 #include "remoting/host/chromoting_host_context.h" 44 #include "remoting/host/chromoting_host_context.h"
44 #include "remoting/host/chromoting_messages.h" 45 #include "remoting/host/chromoting_messages.h"
45 #include "remoting/host/config_file_watcher.h" 46 #include "remoting/host/config_file_watcher.h"
46 #include "remoting/host/config_watcher.h" 47 #include "remoting/host/config_watcher.h"
47 #include "remoting/host/desktop_environment.h" 48 #include "remoting/host/desktop_environment.h"
48 #include "remoting/host/desktop_session_connector.h" 49 #include "remoting/host/desktop_session_connector.h"
49 #include "remoting/host/dns_blackhole_checker.h" 50 #include "remoting/host/dns_blackhole_checker.h"
50 #include "remoting/host/heartbeat_sender.h" 51 #include "remoting/host/heartbeat_sender.h"
51 #include "remoting/host/host_change_notification_listener.h" 52 #include "remoting/host/host_change_notification_listener.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 const char kApplicationName[] = "chromoting"; 108 const char kApplicationName[] = "chromoting";
108 109
109 #if defined(OS_LINUX) 110 #if defined(OS_LINUX)
110 // The command line switch used to pass name of the pipe to capture audio on 111 // The command line switch used to pass name of the pipe to capture audio on
111 // linux. 112 // linux.
112 const char kAudioPipeSwitchName[] = "audio-pipe-name"; 113 const char kAudioPipeSwitchName[] = "audio-pipe-name";
113 114
114 // The command line switch used to pass name of the unix domain socket used to 115 // The command line switch used to pass name of the unix domain socket used to
115 // listen for gnubby requests. 116 // listen for gnubby requests.
116 const char kAuthSocknameSwitchName[] = "ssh-auth-sockname"; 117 const char kAuthSocknameSwitchName[] = "ssh-auth-sockname";
118
119 // The command line switch used to enable casting in linux.
120 const char kEnableCastSwitchName[] = "enable-cast";
121
117 #endif // defined(OS_LINUX) 122 #endif // defined(OS_LINUX)
118 123
119 // The command line switch used by the parent to request the host to signal it 124 // The command line switch used by the parent to request the host to signal it
120 // when it is successfully started. 125 // when it is successfully started.
121 const char kSignalParentSwitchName[] = "signal-parent"; 126 const char kSignalParentSwitchName[] = "signal-parent";
122 127
123 // Command line switch used to enable VP9 encoding. 128 // Command line switch used to enable VP9 encoding.
124 const char kEnableVp9SwitchName[] = "enable-vp9"; 129 const char kEnableVp9SwitchName[] = "enable-vp9";
125 130
126 // Value used for --host-config option to indicate that the path must be read 131 // Value used for --host-config option to indicate that the path must be read
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 scoped_ptr<ConfigWatcher> config_watcher_; 285 scoped_ptr<ConfigWatcher> config_watcher_;
281 286
282 std::string host_id_; 287 std::string host_id_;
283 protocol::SharedSecretHash host_secret_hash_; 288 protocol::SharedSecretHash host_secret_hash_;
284 scoped_refptr<RsaKeyPair> key_pair_; 289 scoped_refptr<RsaKeyPair> key_pair_;
285 std::string oauth_refresh_token_; 290 std::string oauth_refresh_token_;
286 std::string serialized_config_; 291 std::string serialized_config_;
287 std::string host_owner_; 292 std::string host_owner_;
288 bool use_service_account_; 293 bool use_service_account_;
289 bool enable_vp9_; 294 bool enable_vp9_;
295 bool enable_cast_;
290 296
291 scoped_ptr<policy_hack::PolicyWatcher> policy_watcher_; 297 scoped_ptr<policy_hack::PolicyWatcher> policy_watcher_;
292 std::string host_domain_; 298 std::string host_domain_;
293 bool host_username_match_required_; 299 bool host_username_match_required_;
294 bool allow_nat_traversal_; 300 bool allow_nat_traversal_;
295 bool allow_relay_; 301 bool allow_relay_;
296 int min_udp_port_; 302 int min_udp_port_;
297 int max_udp_port_; 303 int max_udp_port_;
298 std::string talkgadget_prefix_; 304 std::string talkgadget_prefix_;
299 bool allow_pairing_; 305 bool allow_pairing_;
(...skipping 25 matching lines...) Expand all
325 331
326 scoped_ptr<PairingRegistry::Delegate> pairing_registry_delegate_; 332 scoped_ptr<PairingRegistry::Delegate> pairing_registry_delegate_;
327 }; 333 };
328 334
329 HostProcess::HostProcess(scoped_ptr<ChromotingHostContext> context, 335 HostProcess::HostProcess(scoped_ptr<ChromotingHostContext> context,
330 int* exit_code_out) 336 int* exit_code_out)
331 : context_(context.Pass()), 337 : context_(context.Pass()),
332 state_(HOST_INITIALIZING), 338 state_(HOST_INITIALIZING),
333 use_service_account_(false), 339 use_service_account_(false),
334 enable_vp9_(false), 340 enable_vp9_(false),
341 enable_cast_(false),
335 host_username_match_required_(false), 342 host_username_match_required_(false),
336 allow_nat_traversal_(true), 343 allow_nat_traversal_(true),
337 allow_relay_(true), 344 allow_relay_(true),
338 min_udp_port_(0), 345 min_udp_port_(0),
339 max_udp_port_(0), 346 max_udp_port_(0),
340 allow_pairing_(true), 347 allow_pairing_(true),
341 curtain_required_(false), 348 curtain_required_(false),
342 enable_gnubby_auth_(false), 349 enable_gnubby_auth_(false),
343 #if defined(REMOTING_MULTI_PROCESS) 350 #if defined(REMOTING_MULTI_PROCESS)
344 desktop_session_connector_(NULL), 351 desktop_session_connector_(NULL),
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 if (!xmpp_server_valid) { 446 if (!xmpp_server_valid) {
440 LOG(ERROR) << "Invalid XMPP server: " << 447 LOG(ERROR) << "Invalid XMPP server: " <<
441 service_urls->xmpp_server_address(); 448 service_urls->xmpp_server_address();
442 return false; 449 return false;
443 } 450 }
444 xmpp_server_config_.use_tls = service_urls->xmpp_server_use_tls(); 451 xmpp_server_config_.use_tls = service_urls->xmpp_server_use_tls();
445 directory_bot_jid_ = service_urls->directory_bot_jid(); 452 directory_bot_jid_ = service_urls->directory_bot_jid();
446 453
447 signal_parent_ = cmd_line->HasSwitch(kSignalParentSwitchName); 454 signal_parent_ = cmd_line->HasSwitch(kSignalParentSwitchName);
448 455
456 #if defined(OS_LINUX)
457 enable_cast_ = cmd_line->HasSwitch(kEnableCastSwitchName);
458 #endif // !defined(OS_LINUX)
459
449 return true; 460 return true;
450 } 461 }
451 462
452 void HostProcess::OnConfigUpdated( 463 void HostProcess::OnConfigUpdated(
453 const std::string& serialized_config) { 464 const std::string& serialized_config) {
454 if (!context_->network_task_runner()->BelongsToCurrentThread()) { 465 if (!context_->network_task_runner()->BelongsToCurrentThread()) {
455 context_->network_task_runner()->PostTask(FROM_HERE, 466 context_->network_task_runner()->PostTask(FROM_HERE,
456 base::Bind(&HostProcess::OnConfigUpdated, this, serialized_config)); 467 base::Bind(&HostProcess::OnConfigUpdated, this, serialized_config));
457 return; 468 return;
458 } 469 }
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
1201 if (enable_vp9_) { 1212 if (enable_vp9_) {
1202 scoped_ptr<protocol::CandidateSessionConfig> config = 1213 scoped_ptr<protocol::CandidateSessionConfig> config =
1203 host_->protocol_config()->Clone(); 1214 host_->protocol_config()->Clone();
1204 config->EnableVideoCodec(protocol::ChannelConfig::CODEC_VP9); 1215 config->EnableVideoCodec(protocol::ChannelConfig::CODEC_VP9);
1205 host_->set_protocol_config(config.Pass()); 1216 host_->set_protocol_config(config.Pass());
1206 } 1217 }
1207 1218
1208 // TODO(simonmorris): Get the maximum session duration from a policy. 1219 // TODO(simonmorris): Get the maximum session duration from a policy.
1209 #if defined(OS_LINUX) 1220 #if defined(OS_LINUX)
1210 host_->SetMaximumSessionDuration(base::TimeDelta::FromHours(20)); 1221 host_->SetMaximumSessionDuration(base::TimeDelta::FromHours(20));
1222
1223 // Enable Cast if specified on the command-line.
1224 // TODO(aiguha): The way the enable_cast flag is propagated through to the
1225 // ChromotingHost and ClientSession could be made cleaner.
1226 if (enable_cast_) {
1227 LOG(INFO) << "Cast Enabled.";
1228 // scoped_ptr<HostExtension> extension(new CastExtension(
1229 // network_settings, context_->url_request_context_getter()));
1230 // host_->AddExtension(extension.Pass());
Wez 2014/07/17 22:56:37 You shouldn't need to do this; you can land the CL
aiguha 2014/07/18 21:30:37 Done.
1231 host_->set_enable_cast(enable_cast_);
Wez 2014/07/17 22:56:37 As implemented this CL causes the host to disable
1232 }
aiguha 2014/07/17 17:51:03 Lines 1228-1230 are commented out only so I could
1233
1211 #endif 1234 #endif
1212 1235
1213 heartbeat_sender_.reset(new HeartbeatSender( 1236 heartbeat_sender_.reset(new HeartbeatSender(
1214 this, host_id_, signal_strategy_.get(), key_pair_, 1237 this, host_id_, signal_strategy_.get(), key_pair_,
1215 directory_bot_jid_)); 1238 directory_bot_jid_));
1216 1239
1217 host_status_sender_.reset(new HostStatusSender( 1240 host_status_sender_.reset(new HostStatusSender(
1218 host_id_, signal_strategy_.get(), key_pair_, directory_bot_jid_)); 1241 host_id_, signal_strategy_.get(), key_pair_, directory_bot_jid_));
1219 1242
1220 host_change_notification_listener_.reset(new HostChangeNotificationListener( 1243 host_change_notification_listener_.reset(new HostChangeNotificationListener(
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 return exit_code; 1398 return exit_code;
1376 } 1399 }
1377 1400
1378 } // namespace remoting 1401 } // namespace remoting
1379 1402
1380 #if !defined(OS_WIN) 1403 #if !defined(OS_WIN)
1381 int main(int argc, char** argv) { 1404 int main(int argc, char** argv) {
1382 return remoting::HostMain(argc, argv); 1405 return remoting::HostMain(argc, argv);
1383 } 1406 }
1384 #endif // !defined(OS_WIN) 1407 #endif // !defined(OS_WIN)
OLDNEW
« remoting/host/client_session.cc ('K') | « remoting/host/client_session.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698