Index: remoting/signaling/xmpp_signal_strategy.cc |
diff --git a/remoting/signaling/xmpp_signal_strategy.cc b/remoting/signaling/xmpp_signal_strategy.cc |
index 46133761e1c44f34f7422e0cfbd35b86ec351c71..2dad2f71616a44104d95ab1d173ed4aa5c5bf736 100644 |
--- a/remoting/signaling/xmpp_signal_strategy.cc |
+++ b/remoting/signaling/xmpp_signal_strategy.cc |
@@ -141,7 +141,7 @@ class XmppSignalStrategy::Core : public XmppLoginHandler::Delegate { |
base::ObserverList<Listener, true> listeners_; |
- base::Timer keep_alive_timer_; |
+ base::RepeatingTimer keep_alive_timer_; |
base::ThreadChecker thread_checker_; |
@@ -154,16 +154,12 @@ XmppSignalStrategy::Core::Core( |
const XmppSignalStrategy::XmppServerConfig& xmpp_server_config) |
: socket_factory_(socket_factory), |
request_context_getter_(request_context_getter), |
- xmpp_server_config_(xmpp_server_config), |
- keep_alive_timer_( |
- FROM_HERE, |
- base::TimeDelta::FromSeconds(kKeepAliveIntervalSeconds), |
- base::Bind(&Core::SendKeepAlive, base::Unretained(this)), |
- true) { |
+ xmpp_server_config_(xmpp_server_config) { |
#if defined(NDEBUG) |
// Non-secure connections are allowed only for debugging. |
CHECK(xmpp_server_config_.use_tls); |
#endif |
+ thread_checker_.DetachFromThread(); |
} |
XmppSignalStrategy::Core::~Core() { |
@@ -187,6 +183,11 @@ void XmppSignalStrategy::Core::Connect() { |
int result = socket_->Connect(base::Bind( |
&Core::OnSocketConnected, base::Unretained(this))); |
+ |
+ keep_alive_timer_.Start( |
+ FROM_HERE, base::TimeDelta::FromSeconds(kKeepAliveIntervalSeconds), |
+ base::Bind(&Core::SendKeepAlive, base::Unretained(this))); |
+ |
if (result != net::ERR_IO_PENDING) |
OnSocketConnected(result); |
} |