diff options
author | sergeyu <sergeyu@chromium.org> | 2015-04-15 15:04:58 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-15 22:06:08 +0000 |
commit | 60afdae4bee5696a700e0468598740454c0a0c75 (patch) | |
tree | 563c0c67ac4a94b424f2f745477b7dbbde295648 /remoting/signaling | |
parent | 2e69a3cf885c23caedcbc76635afd1814baf3b6c (diff) | |
download | chromium_src-60afdae4bee5696a700e0468598740454c0a0c75.zip chromium_src-60afdae4bee5696a700e0468598740454c0a0c75.tar.gz chromium_src-60afdae4bee5696a700e0468598740454c0a0c75.tar.bz2 |
Fix intermittent connection failure in CRD.
rtc::P2PTransportChannel expects SetRemoteIceCredentials() to be called
to set remove ICE candidate, but LibjingleTransport was never calling
it, and instead it was passing ICE credentials as part of remote
candidates. Fixed LibjingleTransport to call SetRemoteIceCredentials()
explicitly whenever it receives a new candidate.
BUG=476775
Review URL: https://codereview.chromium.org/1070233004
Cr-Commit-Position: refs/heads/master@{#325320}
Diffstat (limited to 'remoting/signaling')
-rw-r--r-- | remoting/signaling/fake_signal_strategy.cc | 8 | ||||
-rw-r--r-- | remoting/signaling/fake_signal_strategy.h | 6 |
2 files changed, 13 insertions, 1 deletions
diff --git a/remoting/signaling/fake_signal_strategy.cc b/remoting/signaling/fake_signal_strategy.cc index da5c0d0..c2a4b1e 100644 --- a/remoting/signaling/fake_signal_strategy.cc +++ b/remoting/signaling/fake_signal_strategy.cc @@ -97,7 +97,13 @@ bool FakeSignalStrategy::SendStanza(scoped_ptr<buzz::XmlElement> stanza) { stanza->SetAttr(buzz::QN_FROM, jid_); if (!peer_callback_.is_null()) { - peer_callback_.Run(stanza.Pass()); + if (send_delay_ != base::TimeDelta()) { + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, base::Bind(peer_callback_, base::Passed(&stanza)), + send_delay_); + } else { + peer_callback_.Run(stanza.Pass()); + } return true; } else { return false; diff --git a/remoting/signaling/fake_signal_strategy.h b/remoting/signaling/fake_signal_strategy.h index 7a599dc..b6c11bd 100644 --- a/remoting/signaling/fake_signal_strategy.h +++ b/remoting/signaling/fake_signal_strategy.h @@ -35,6 +35,10 @@ class FakeSignalStrategy : public SignalStrategy, return received_messages_; } + void set_send_delay(base::TimeDelta delay) { + send_delay_ = delay; + } + // Connects current FakeSignalStrategy to receive messages from |peer|. void ConnectTo(FakeSignalStrategy* peer); @@ -70,6 +74,8 @@ class FakeSignalStrategy : public SignalStrategy, int last_id_; + base::TimeDelta send_delay_; + // All received messages, includes thouse still in |pending_messages_|. std::list<buzz::XmlElement*> received_messages_; |