summaryrefslogtreecommitdiffstats
path: root/remoting/signaling
diff options
context:
space:
mode:
authorsergeyu <sergeyu@chromium.org>2015-04-15 15:04:58 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-15 22:06:08 +0000
commit60afdae4bee5696a700e0468598740454c0a0c75 (patch)
tree563c0c67ac4a94b424f2f745477b7dbbde295648 /remoting/signaling
parent2e69a3cf885c23caedcbc76635afd1814baf3b6c (diff)
downloadchromium_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.cc8
-rw-r--r--remoting/signaling/fake_signal_strategy.h6
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_;