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

Side by Side Diff: remoting/host/chromoting_host.cc

Issue 1061903002: Disable chromoting service on permanent errors. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/chromoting_host.h" 5 #include "remoting/host/chromoting_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 : desktop_environment_factory_(desktop_environment_factory), 73 : desktop_environment_factory_(desktop_environment_factory),
74 session_manager_(session_manager.Pass()), 74 session_manager_(session_manager.Pass()),
75 audio_task_runner_(audio_task_runner), 75 audio_task_runner_(audio_task_runner),
76 input_task_runner_(input_task_runner), 76 input_task_runner_(input_task_runner),
77 video_capture_task_runner_(video_capture_task_runner), 77 video_capture_task_runner_(video_capture_task_runner),
78 video_encode_task_runner_(video_encode_task_runner), 78 video_encode_task_runner_(video_encode_task_runner),
79 network_task_runner_(network_task_runner), 79 network_task_runner_(network_task_runner),
80 ui_task_runner_(ui_task_runner), 80 ui_task_runner_(ui_task_runner),
81 signal_strategy_(signal_strategy), 81 signal_strategy_(signal_strategy),
82 started_(false), 82 started_(false),
83 exit_code_(kSuccessExitCode),
83 protocol_config_(protocol::CandidateSessionConfig::CreateDefault()), 84 protocol_config_(protocol::CandidateSessionConfig::CreateDefault()),
84 login_backoff_(&kDefaultBackoffPolicy), 85 login_backoff_(&kDefaultBackoffPolicy),
85 authenticating_client_(false), 86 authenticating_client_(false),
86 reject_authenticating_client_(false), 87 reject_authenticating_client_(false),
87 enable_curtaining_(false), 88 enable_curtaining_(false),
88 weak_factory_(this) { 89 weak_factory_(this) {
89 DCHECK(network_task_runner_->BelongsToCurrentThread()); 90 DCHECK(network_task_runner_->BelongsToCurrentThread());
90 DCHECK(signal_strategy); 91 DCHECK(signal_strategy);
91 92
92 jingle_glue::JingleThreadWrapper::EnsureForCurrentMessageLoop(); 93 jingle_glue::JingleThreadWrapper::EnsureForCurrentMessageLoop();
(...skipping 10 matching lines...) Expand all
103 while (!clients_.empty()) { 104 while (!clients_.empty()) {
104 clients_.front()->DisconnectSession(); 105 clients_.front()->DisconnectSession();
105 } 106 }
106 107
107 // Destroy the session manager to make sure that |signal_strategy_| does not 108 // Destroy the session manager to make sure that |signal_strategy_| does not
108 // have any listeners registered. 109 // have any listeners registered.
109 session_manager_.reset(); 110 session_manager_.reset();
110 111
111 // Notify observers. 112 // Notify observers.
112 if (started_) 113 if (started_)
113 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, OnShutdown()); 114 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_,
115 OnShutdown(exit_code_));
114 } 116 }
115 117
116 void ChromotingHost::Start(const std::string& host_owner_email) { 118 void ChromotingHost::Start(const std::string& host_owner_email) {
117 DCHECK(CalledOnValidThread()); 119 DCHECK(CalledOnValidThread());
118 DCHECK(!started_); 120 DCHECK(!started_);
119 121
120 HOST_LOG << "Starting host"; 122 HOST_LOG << "Starting host";
121 started_ = true; 123 started_ = true;
122 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_, 124 FOR_EACH_OBSERVER(HostStatusObserver, status_observers_,
123 OnStart(host_owner_email)); 125 OnStart(host_owner_email));
124 126
125 // Start the SessionManager, supplying this ChromotingHost as the listener. 127 // Start the SessionManager, supplying this ChromotingHost as the listener.
126 session_manager_->Init(signal_strategy_, this); 128 session_manager_->Init(signal_strategy_, this);
127 } 129 }
128 130
131 void ChromotingHost::SetExitCode(HostExitCodes exit_code) {
132 exit_code_ = exit_code;
133 }
134
129 void ChromotingHost::AddStatusObserver(HostStatusObserver* observer) { 135 void ChromotingHost::AddStatusObserver(HostStatusObserver* observer) {
130 DCHECK(CalledOnValidThread()); 136 DCHECK(CalledOnValidThread());
131 status_observers_.AddObserver(observer); 137 status_observers_.AddObserver(observer);
132 } 138 }
133 139
134 void ChromotingHost::RemoveStatusObserver(HostStatusObserver* observer) { 140 void ChromotingHost::RemoveStatusObserver(HostStatusObserver* observer) {
135 DCHECK(CalledOnValidThread()); 141 DCHECK(CalledOnValidThread());
136 status_observers_.RemoveObserver(observer); 142 status_observers_.RemoveObserver(observer);
137 } 143 }
138 144
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 DCHECK(CalledOnValidThread()); 337 DCHECK(CalledOnValidThread());
332 338
333 while (!clients_.empty()) { 339 while (!clients_.empty()) {
334 size_t size = clients_.size(); 340 size_t size = clients_.size();
335 clients_.front()->DisconnectSession(); 341 clients_.front()->DisconnectSession();
336 CHECK_EQ(clients_.size(), size - 1); 342 CHECK_EQ(clients_.size(), size - 1);
337 } 343 }
338 } 344 }
339 345
340 } // namespace remoting 346 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698