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

Unified Diff: remoting/signaling/delegating_signal_strategy.cc

Issue 2747743004: Fix crash when user disconnects It2Me host (Closed)
Patch Set: Created 3 years, 9 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/signaling/delegating_signal_strategy.cc b/remoting/signaling/delegating_signal_strategy.cc
index 83f23907acad2c6ab1829693b6ea91a6dc907841..c5d904e578ce3e23b779cc2184654caa73a1569e 100644
--- a/remoting/signaling/delegating_signal_strategy.cc
+++ b/remoting/signaling/delegating_signal_strategy.cc
@@ -16,7 +16,7 @@ namespace remoting {
DelegatingSignalStrategy::DelegatingSignalStrategy(
std::string local_jid,
scoped_refptr<base::SingleThreadTaskRunner> client_task_runner,
- const SendIqCallback& send_iq_callback)
+ const IqCallback& send_iq_callback)
: local_jid_(local_jid),
delegate_task_runner_(base::ThreadTaskRunnerHandle::Get()),
client_task_runner_(client_task_runner),
@@ -25,14 +25,25 @@ 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,
- weak_factory_.GetWeakPtr(), message));
- return;
- }
+DelegatingSignalStrategy::IqCallback
+DelegatingSignalStrategy::MakeIncomingMessageCallback() {
+ return base::Bind(&OnIncomingMessageFromDelegate, weak_factory_.GetWeakPtr(),
Sergey Ulanov 2017/03/14 19:20:59 use base::BindRepeating() please (base::Bind is b
kelvinp 2017/03/15 21:56:46 Done.
+ client_task_runner_);
+}
+// static
+void DelegatingSignalStrategy::OnIncomingMessageFromDelegate(
+ base::WeakPtr<DelegatingSignalStrategy> weak_ptr,
+ scoped_refptr<base::SingleThreadTaskRunner> client_task_runner,
+ const std::string& message) {
+ DCHECK(!client_task_runner->BelongsToCurrentThread());
+ client_task_runner->PostTask(
+ FROM_HERE, base::Bind(&DelegatingSignalStrategy::OnIncomingMessage,
Sergey Ulanov 2017/03/14 19:20:59 BindOnce
kelvinp 2017/03/15 21:56:46 We can't migrate yet as PostTask() expects a Closu
+ weak_ptr, message));
+}
+
+void DelegatingSignalStrategy::OnIncomingMessage(const std::string& message) {
+ DCHECK(client_task_runner_->BelongsToCurrentThread());
std::unique_ptr<buzz::XmlElement> stanza(buzz::XmlElement::ForStr(message));
if (!stanza.get()) {
LOG(WARNING) << "Malformed XMPP stanza received: " << message;

Powered by Google App Engine
This is Rietveld 408576698