| Index: content/renderer/media/webrtc/peer_connection_dependency_factory.cc
|
| diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
|
| index 34a949b750d9181e6f154e2032cf1fef8db721cb..fb5594e2a1102dd88cf062b6a35ca26af679d64d 100644
|
| --- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
|
| +++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc
|
| @@ -656,8 +656,6 @@ void PeerConnectionDependencyFactory::TryScheduleStunProbeTrial() {
|
| if (!cmd_line->HasSwitch(switches::kWebRtcStunProbeTrialParameter))
|
| return;
|
|
|
| - GetPcFactory();
|
| -
|
| // The underneath IPC channel has to be connected before sending any IPC
|
| // message.
|
| if (!p2p_socket_dispatcher_->connected()) {
|
| @@ -669,6 +667,12 @@ void PeerConnectionDependencyFactory::TryScheduleStunProbeTrial() {
|
| return;
|
| }
|
|
|
| + // GetPcFactory could trigger an IPC message. If done before
|
| + // |p2p_socket_dispatcher_| is connected, that'll put the
|
| + // |p2p_socket_dispatcher_| in a bad state such that no other IPC message can
|
| + // be processed.
|
| + GetPcFactory();
|
| +
|
| const std::string params =
|
| cmd_line->GetSwitchValueASCII(switches::kWebRtcStunProbeTrialParameter);
|
|
|
| @@ -682,10 +686,10 @@ void PeerConnectionDependencyFactory::TryScheduleStunProbeTrial() {
|
|
|
| void PeerConnectionDependencyFactory::StartStunProbeTrialOnWorkerThread(
|
| const std::string& params) {
|
| + DCHECK(network_manager_);
|
| DCHECK(chrome_worker_thread_.task_runner()->BelongsToCurrentThread());
|
| - rtc::NetworkManager::NetworkList networks;
|
| - network_manager_->GetNetworks(&networks);
|
| - stun_prober_ = StartStunProbeTrial(networks, params, socket_factory_.get());
|
| + stun_trial_.reset(
|
| + new StunProberTrial(network_manager_, params, socket_factory_.get()));
|
| }
|
|
|
| void PeerConnectionDependencyFactory::CreateIpcNetworkManagerOnWorkerThread(
|
|
|