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

Unified Diff: remoting/host/host_signaling_manager.cc

Issue 910403002: Suspend (rather than shut down) the host upon policy errors. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mistyped-policies
Patch Set: Rebasing... Created 5 years, 10 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
« no previous file with comments | « remoting/host/host_signaling_manager.h ('k') | remoting/host/policy_watcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/host_signaling_manager.cc
diff --git a/remoting/host/host_signaling_manager.cc b/remoting/host/host_signaling_manager.cc
index 20abbd135b6463c608669036fbd23a09aef862a7..99ad431bca7969a676873002b05e5af852295e70 100644
--- a/remoting/host/host_signaling_manager.cc
+++ b/remoting/host/host_signaling_manager.cc
@@ -19,21 +19,16 @@
namespace remoting {
HostSignalingManager::HostSignalingManager(
- scoped_ptr<base::WeakPtrFactory<Listener>> weak_factory_for_listener,
- const scoped_refptr<AutoThreadTaskRunner>& network_task_runner,
scoped_ptr<SignalStrategy> signal_strategy,
scoped_ptr<SignalingConnector> signaling_connector,
scoped_ptr<HeartbeatSender> heartbeat_sender)
- : weak_factory_for_listener_(weak_factory_for_listener.Pass()),
- network_task_runner_(network_task_runner),
- signal_strategy_(signal_strategy.Pass()),
+ : signal_strategy_(signal_strategy.Pass()),
signaling_connector_(signaling_connector.Pass()),
heartbeat_sender_(heartbeat_sender.Pass()) {
}
scoped_ptr<HostSignalingManager> HostSignalingManager::Create(
Listener* listener,
- const scoped_refptr<AutoThreadTaskRunner>& network_task_runner,
const scoped_refptr<net::URLRequestContextGetter>&
url_request_context_getter,
const XmppSignalStrategy::XmppServerConfig& xmpp_server_config,
@@ -42,11 +37,6 @@ scoped_ptr<HostSignalingManager> HostSignalingManager::Create(
const scoped_refptr<const RsaKeyPair>& host_key_pair,
const std::string& directory_bot_jid,
scoped_ptr<OAuthTokenGetter::OAuthCredentials> oauth_credentials) {
- DCHECK(network_task_runner->BelongsToCurrentThread());
-
- scoped_ptr<base::WeakPtrFactory<Listener>> weak_factory(
- new base::WeakPtrFactory<Listener>(listener));
-
scoped_ptr<XmppSignalStrategy> signal_strategy(
new XmppSignalStrategy(net::ClientSocketFactory::GetDefaultFactory(),
url_request_context_getter, xmpp_server_config));
@@ -56,7 +46,7 @@ scoped_ptr<HostSignalingManager> HostSignalingManager::Create(
scoped_ptr<SignalingConnector> signaling_connector(new SignalingConnector(
signal_strategy.get(), dns_blackhole_checker.Pass(),
- base::Bind(&Listener::OnAuthFailed, weak_factory->GetWeakPtr())));
+ base::Bind(&Listener::OnAuthFailed, base::Unretained(listener))));
if (!oauth_credentials->refresh_token.empty()) {
scoped_ptr<OAuthTokenGetter> oauth_token_getter(new OAuthTokenGetter(
@@ -66,45 +56,27 @@ scoped_ptr<HostSignalingManager> HostSignalingManager::Create(
}
scoped_ptr<HeartbeatSender> heartbeat_sender(new HeartbeatSender(
- base::Bind(&Listener::OnHeartbeatSuccessful, weak_factory->GetWeakPtr()),
- base::Bind(&Listener::OnUnknownHostIdError, weak_factory->GetWeakPtr()),
+ base::Bind(&Listener::OnHeartbeatSuccessful, base::Unretained(listener)),
+ base::Bind(&Listener::OnUnknownHostIdError, base::Unretained(listener)),
host_id, signal_strategy.get(), host_key_pair, directory_bot_jid));
return scoped_ptr<HostSignalingManager>(new HostSignalingManager(
- weak_factory.Pass(), network_task_runner, signal_strategy.Pass(),
- signaling_connector.Pass(), heartbeat_sender.Pass()));
+ signal_strategy.Pass(), signaling_connector.Pass(),
+ heartbeat_sender.Pass()));
}
HostSignalingManager::~HostSignalingManager() {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
+ DCHECK(thread_checker_.CalledOnValidThread());
}
-void HostSignalingManager::SendHostOfflineReasonAndDelete(
+void HostSignalingManager::SendHostOfflineReason(
const std::string& host_offline_reason,
- const base::TimeDelta& timeout) {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
-
- HOST_LOG << "SendHostOfflineReason: sending " << host_offline_reason;
-
- // Ensure that any subsequent callbacks from the HeartbeatSender or
- // SignalingConnector don't touch the Listener.
- weak_factory_for_listener_->InvalidateWeakPtrs();
-
- heartbeat_sender_->SetHostOfflineReason(
- host_offline_reason, timeout,
- base::Bind(&HostSignalingManager::OnHostOfflineReasonAck,
- base::Unretained(this)));
-}
-
-void HostSignalingManager::OnHostOfflineReasonAck(bool success) {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
- if (success) {
- HOST_LOG << "SendHostOfflineReason: succeeded";
- } else {
- HOST_LOG << "SendHostOfflineReason: timed out";
- }
-
- delete this;
+ const base::TimeDelta& timeout,
+ const base::Callback<void(bool success)>& ack_callback) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ HOST_LOG << "SendHostOfflineReason: sending " << host_offline_reason << ".";
+ heartbeat_sender_->SetHostOfflineReason(host_offline_reason, timeout,
+ ack_callback);
}
} // namespace remoting
« no previous file with comments | « remoting/host/host_signaling_manager.h ('k') | remoting/host/policy_watcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698