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

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

Issue 1545743002: Move ownership of Transport out of Session. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_not_pass_client
Patch Set: Created 4 years, 12 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
« no previous file with comments | « remoting/host/it2me/it2me_host.cc ('k') | remoting/protocol/connection_to_host.h » ('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 // This file implements a standalone host process for Me2Me. 5 // This file implements a standalone host process for Me2Me.
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 #include "remoting/host/single_window_desktop_environment.h" 73 #include "remoting/host/single_window_desktop_environment.h"
74 #include "remoting/host/switches.h" 74 #include "remoting/host/switches.h"
75 #include "remoting/host/third_party_auth_config.h" 75 #include "remoting/host/third_party_auth_config.h"
76 #include "remoting/host/token_validator_factory_impl.h" 76 #include "remoting/host/token_validator_factory_impl.h"
77 #include "remoting/host/usage_stats_consent.h" 77 #include "remoting/host/usage_stats_consent.h"
78 #include "remoting/host/username.h" 78 #include "remoting/host/username.h"
79 #include "remoting/host/video_frame_recorder_host_extension.h" 79 #include "remoting/host/video_frame_recorder_host_extension.h"
80 #include "remoting/protocol/authenticator.h" 80 #include "remoting/protocol/authenticator.h"
81 #include "remoting/protocol/channel_authenticator.h" 81 #include "remoting/protocol/channel_authenticator.h"
82 #include "remoting/protocol/chromium_port_allocator.h" 82 #include "remoting/protocol/chromium_port_allocator.h"
83 #include "remoting/protocol/ice_transport.h"
84 #include "remoting/protocol/jingle_session_manager.h" 83 #include "remoting/protocol/jingle_session_manager.h"
85 #include "remoting/protocol/me2me_host_authenticator_factory.h" 84 #include "remoting/protocol/me2me_host_authenticator_factory.h"
86 #include "remoting/protocol/network_settings.h" 85 #include "remoting/protocol/network_settings.h"
87 #include "remoting/protocol/pairing_registry.h" 86 #include "remoting/protocol/pairing_registry.h"
88 #include "remoting/protocol/port_range.h" 87 #include "remoting/protocol/port_range.h"
89 #include "remoting/protocol/token_validator.h" 88 #include "remoting/protocol/token_validator.h"
90 #include "remoting/protocol/transport_context.h" 89 #include "remoting/protocol/transport_context.h"
91 #include "remoting/protocol/webrtc_transport.h"
92 #include "remoting/signaling/push_notification_subscriber.h" 90 #include "remoting/signaling/push_notification_subscriber.h"
93 #include "remoting/signaling/xmpp_signal_strategy.h" 91 #include "remoting/signaling/xmpp_signal_strategy.h"
94 #include "third_party/webrtc/base/scoped_ref_ptr.h" 92 #include "third_party/webrtc/base/scoped_ref_ptr.h"
95 93
96 #if defined(OS_POSIX) 94 #if defined(OS_POSIX)
97 #include <signal.h> 95 #include <signal.h>
98 #include <sys/types.h> 96 #include <sys/types.h>
99 #include <unistd.h> 97 #include <unistd.h>
100 #include "base/file_descriptor_posix.h" 98 #include "base/file_descriptor_posix.h"
101 #include "remoting/host/pam_authorization_factory_posix.h" 99 #include "remoting/host/pam_authorization_factory_posix.h"
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 remoting::AudioCapturerLinux::InitializePipeReader( 876 remoting::AudioCapturerLinux::InitializePipeReader(
879 context_->audio_task_runner(), audio_pipe_name); 877 context_->audio_task_runner(), audio_pipe_name);
880 } 878 }
881 879
882 base::FilePath gnubby_socket_name = base::CommandLine::ForCurrentProcess()-> 880 base::FilePath gnubby_socket_name = base::CommandLine::ForCurrentProcess()->
883 GetSwitchValuePath(kAuthSocknameSwitchName); 881 GetSwitchValuePath(kAuthSocknameSwitchName);
884 if (!gnubby_socket_name.empty()) 882 if (!gnubby_socket_name.empty())
885 remoting::GnubbyAuthHandler::SetGnubbySocketName(gnubby_socket_name); 883 remoting::GnubbyAuthHandler::SetGnubbySocketName(gnubby_socket_name);
886 #endif // defined(OS_LINUX) 884 #endif // defined(OS_LINUX)
887 885
886 #if defined(NDEBUG)
887 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEnableWebrtc)) {
888 LOG(ERROR) << "WebRTC is enabled only in debug builds.";
889 ShutdownHost(kUsageExitCode);
890 return;
891 }
892 #endif // defined(NDEBUG)
893
888 // Create a desktop environment factory appropriate to the build type & 894 // Create a desktop environment factory appropriate to the build type &
889 // platform. 895 // platform.
890 #if defined(OS_WIN) 896 #if defined(OS_WIN)
891 IpcDesktopEnvironmentFactory* desktop_environment_factory = 897 IpcDesktopEnvironmentFactory* desktop_environment_factory =
892 new IpcDesktopEnvironmentFactory( 898 new IpcDesktopEnvironmentFactory(
893 context_->audio_task_runner(), 899 context_->audio_task_runner(),
894 context_->network_task_runner(), 900 context_->network_task_runner(),
895 context_->video_capture_task_runner(), 901 context_->video_capture_task_runner(),
896 context_->network_task_runner(), 902 context_->network_task_runner(),
897 daemon_channel_.get()); 903 daemon_channel_.get());
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 network_settings.port_range.min_port = NetworkSettings::kDefaultMinPort; 1506 network_settings.port_range.min_port = NetworkSettings::kDefaultMinPort;
1501 network_settings.port_range.max_port = NetworkSettings::kDefaultMaxPort; 1507 network_settings.port_range.max_port = NetworkSettings::kDefaultMaxPort;
1502 } 1508 }
1503 1509
1504 scoped_refptr<protocol::TransportContext> transport_context = 1510 scoped_refptr<protocol::TransportContext> transport_context =
1505 new protocol::TransportContext( 1511 new protocol::TransportContext(
1506 signal_strategy_.get(), 1512 signal_strategy_.get(),
1507 make_scoped_ptr(new protocol::ChromiumPortAllocatorFactory( 1513 make_scoped_ptr(new protocol::ChromiumPortAllocatorFactory(
1508 context_->url_request_context_getter())), 1514 context_->url_request_context_getter())),
1509 network_settings, protocol::TransportRole::SERVER); 1515 network_settings, protocol::TransportRole::SERVER);
1510 scoped_ptr<protocol::TransportFactory> transport_factory;
1511 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEnableWebrtc)) {
1512 #if !defined(NDEBUG)
1513 jingle_glue::JingleThreadWrapper::EnsureForCurrentMessageLoop();
1514 1516
1515 // The network thread is also used as worker thread for webrtc.
1516 //
1517 // TODO(sergeyu): Figure out if we would benefit from using a separate
1518 // thread as a worker thread.
1519 transport_factory.reset(new protocol::WebrtcTransportFactory(
1520 jingle_glue::JingleThreadWrapper::current(), transport_context));
1521 #else // !defined(NDEBUG)
1522 LOG(ERROR) << "WebRTC is enabled only in debug builds.";
1523 ShutdownHost(kUsageExitCode);
1524 return;
1525 #endif // defined(NDEBUG)
1526 } else {
1527 transport_factory.reset(
1528 new protocol::IceTransportFactory(transport_context));
1529 }
1530 scoped_ptr<protocol::SessionManager> session_manager( 1517 scoped_ptr<protocol::SessionManager> session_manager(
1531 new protocol::JingleSessionManager(std::move(transport_factory), 1518 new protocol::JingleSessionManager(signal_strategy_.get()));
1532 signal_strategy_.get()));
1533 1519
1534 scoped_ptr<protocol::CandidateSessionConfig> protocol_config = 1520 scoped_ptr<protocol::CandidateSessionConfig> protocol_config =
1535 protocol::CandidateSessionConfig::CreateDefault(); 1521 protocol::CandidateSessionConfig::CreateDefault();
1536 if (!desktop_environment_factory_->SupportsAudioCapture()) 1522 if (!desktop_environment_factory_->SupportsAudioCapture())
1537 protocol_config->DisableAudioChannel(); 1523 protocol_config->DisableAudioChannel();
1538 if (enable_vp9_) 1524 if (enable_vp9_)
1539 protocol_config->set_vp9_experiment_enabled(true); 1525 protocol_config->set_vp9_experiment_enabled(true);
1540 #if !defined(NDEBUG) 1526 #if !defined(NDEBUG)
1541 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEnableWebrtc)) { 1527 if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEnableWebrtc)) {
1542 protocol_config->set_webrtc_supported(true); 1528 protocol_config->set_webrtc_supported(true);
1543 } 1529 }
1544 #endif // !defined(NDEBUG) 1530 #endif // !defined(NDEBUG)
1545 session_manager->set_protocol_config(std::move(protocol_config)); 1531 session_manager->set_protocol_config(std::move(protocol_config));
1546 1532
1547 host_.reset(new ChromotingHost( 1533 host_.reset(new ChromotingHost(
1548 desktop_environment_factory_.get(), std::move(session_manager), 1534 desktop_environment_factory_.get(), std::move(session_manager),
1549 context_->audio_task_runner(), context_->input_task_runner(), 1535 transport_context, context_->audio_task_runner(),
1550 context_->video_capture_task_runner(), 1536 context_->input_task_runner(), context_->video_capture_task_runner(),
1551 context_->video_encode_task_runner(), context_->network_task_runner(), 1537 context_->video_encode_task_runner(), context_->network_task_runner(),
1552 context_->ui_task_runner())); 1538 context_->ui_task_runner()));
1553 1539
1554 if (frame_recorder_buffer_size_ > 0) { 1540 if (frame_recorder_buffer_size_ > 0) {
1555 scoped_ptr<VideoFrameRecorderHostExtension> frame_recorder_extension( 1541 scoped_ptr<VideoFrameRecorderHostExtension> frame_recorder_extension(
1556 new VideoFrameRecorderHostExtension()); 1542 new VideoFrameRecorderHostExtension());
1557 frame_recorder_extension->SetMaxContentBytes(frame_recorder_buffer_size_); 1543 frame_recorder_extension->SetMaxContentBytes(frame_recorder_buffer_size_);
1558 host_->AddExtension(std::move(frame_recorder_extension)); 1544 host_->AddExtension(std::move(frame_recorder_extension));
1559 } 1545 }
1560 1546
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
1752 base::TimeDelta::FromSeconds(kShutdownTimeoutSeconds)); 1738 base::TimeDelta::FromSeconds(kShutdownTimeoutSeconds));
1753 new HostProcess(std::move(context), &exit_code, &shutdown_watchdog); 1739 new HostProcess(std::move(context), &exit_code, &shutdown_watchdog);
1754 1740
1755 // Run the main (also UI) message loop until the host no longer needs it. 1741 // Run the main (also UI) message loop until the host no longer needs it.
1756 message_loop.Run(); 1742 message_loop.Run();
1757 1743
1758 return exit_code; 1744 return exit_code;
1759 } 1745 }
1760 1746
1761 } // namespace remoting 1747 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/it2me/it2me_host.cc ('k') | remoting/protocol/connection_to_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698