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

Unified Diff: remoting/signaling/delegating_signal_strategy.cc

Issue 2384063008: Enables delegating signal strategy for It2Me Host. (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: remoting/signaling/delegating_signal_strategy.cc
diff --git a/remoting/client/plugin/delegating_signal_strategy.cc b/remoting/signaling/delegating_signal_strategy.cc
similarity index 57%
rename from remoting/client/plugin/delegating_signal_strategy.cc
rename to remoting/signaling/delegating_signal_strategy.cc
index bc86f41b0d38faddf42816735e5312d80899d654..8a212a337c97d283a12101f4fe030c9d155f4eb6 100644
--- a/remoting/client/plugin/delegating_signal_strategy.cc
+++ b/remoting/signaling/delegating_signal_strategy.cc
@@ -2,25 +2,38 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "remoting/client/plugin/delegating_signal_strategy.h"
+#include "remoting/signaling/delegating_signal_strategy.h"
+#include "base/bind.h"
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
#include "third_party/webrtc/libjingle/xmllite/xmlelement.h"
+#include "third_party/webrtc/libjingle/xmpp/constants.h"
namespace remoting {
DelegatingSignalStrategy::DelegatingSignalStrategy(
std::string local_jid,
+ scoped_refptr<base::SingleThreadTaskRunner> delegate_task_runner,
+ scoped_refptr<base::SingleThreadTaskRunner> client_task_runner,
const SendIqCallback& send_iq_callback)
: local_jid_(local_jid),
+ delegate_task_runner_(delegate_task_runner),
+ client_task_runner_(client_task_runner),
send_iq_callback_(send_iq_callback) {
}
-DelegatingSignalStrategy::~DelegatingSignalStrategy() {
-}
+DelegatingSignalStrategy::~DelegatingSignalStrategy() {}
void DelegatingSignalStrategy::OnIncomingMessage(const std::string& message) {
+ if (!client_task_runner_->BelongsToCurrentThread()) {
+ client_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&DelegatingSignalStrategy::OnIncomingMessage,
+ base::Unretained(this), message));
Sergey Ulanov 2016/10/05 21:49:07 base::Unretained() is not safe here. Use a weak pt
kelvinp 2016/10/06 00:43:05 Done.
+ return;
+ }
+
std::unique_ptr<buzz::XmlElement> stanza(buzz::XmlElement::ForStr(message));
if (!stanza.get()) {
LOG(WARNING) << "Malformed XMPP stanza received: " << message;
@@ -36,34 +49,46 @@ void DelegatingSignalStrategy::OnIncomingMessage(const std::string& message) {
}
void DelegatingSignalStrategy::Connect() {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
Sergey Ulanov 2016/10/05 21:49:07 Here and below, please use DCHECK instead of CHECK
kelvinp 2016/10/06 00:43:05 Done.
+ FOR_EACH_OBSERVER(
+ Listener, listeners_, OnSignalStrategyStateChange(CONNECTED));
}
void DelegatingSignalStrategy::Disconnect() {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
}
SignalStrategy::State DelegatingSignalStrategy::GetState() const {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
return CONNECTED;
}
SignalStrategy::Error DelegatingSignalStrategy::GetError() const {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
return OK;
}
std::string DelegatingSignalStrategy::GetLocalJid() const {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
return local_jid_;
}
void DelegatingSignalStrategy::AddListener(Listener* listener) {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
listeners_.AddObserver(listener);
}
void DelegatingSignalStrategy::RemoveListener(Listener* listener) {
+ CHECK(client_task_runner_->BelongsToCurrentThread());
listeners_.RemoveObserver(listener);
}
bool DelegatingSignalStrategy::SendStanza(
std::unique_ptr<buzz::XmlElement> stanza) {
- send_iq_callback_.Run(stanza->Str());
+ CHECK(client_task_runner_->BelongsToCurrentThread());
+ stanza->SetAttr(buzz::QN_FROM, GetLocalJid());
+ delegate_task_runner_->PostTask(
+ FROM_HERE, base::Bind(send_iq_callback_, stanza->Str()));
return true;
}

Powered by Google App Engine
This is Rietveld 408576698