OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** @suppress {duplicate} */ | 5 /** @suppress {duplicate} */ |
6 var remoting = remoting || {}; | 6 var remoting = remoting || {}; |
7 | 7 |
8 (function() { | 8 (function() { |
9 | 9 |
10 'use strict'; | 10 'use strict'; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 if (error.hasTag(remoting.Error.Tag.HOST_IS_OFFLINE) && | 133 if (error.hasTag(remoting.Error.Tag.HOST_IS_OFFLINE) && |
134 this.retryOnHostOffline_) { | 134 this.retryOnHostOffline_) { |
135 var that = this; | 135 var that = this; |
136 var onHostListRefresh = function(/** boolean */ success) { | 136 var onHostListRefresh = function(/** boolean */ success) { |
137 if (success) { | 137 if (success) { |
138 // Get the host from the hostList for the refreshed JID. | 138 // Get the host from the hostList for the refreshed JID. |
139 that.host_ = remoting.hostList.getHostForId(that.host_.hostId); | 139 that.host_ = remoting.hostList.getHostForId(that.host_.hostId); |
140 that.connect_(false); | 140 that.connect_(false); |
141 return; | 141 return; |
142 } | 142 } |
143 that.onError(error); | 143 that.showErrorMessage_(error); |
144 }; | 144 }; |
145 this.retryOnHostOffline_ = false; | 145 this.retryOnHostOffline_ = false; |
146 | 146 |
147 // The plugin will be re-created when the host finished refreshing | 147 // The plugin will be re-created when the host finished refreshing |
148 remoting.hostList.refresh(onHostListRefresh); | 148 remoting.hostList.refresh(onHostListRefresh); |
149 } else { | 149 } else if (!error.isNone()) { |
150 this.onError(error); | 150 this.showErrorMessage_(error); |
151 } | 151 } |
| 152 |
| 153 base.dispose(this.desktopActivity_); |
| 154 this.desktopActivity_ = null; |
152 }; | 155 }; |
153 | 156 |
154 /** | 157 /** |
155 * @param {!remoting.ConnectionInfo} connectionInfo | 158 * @param {!remoting.ConnectionInfo} connectionInfo |
156 */ | 159 */ |
157 remoting.Me2MeActivity.prototype.onConnected = function(connectionInfo) { | 160 remoting.Me2MeActivity.prototype.onConnected = function(connectionInfo) { |
158 // Reset the refresh flag so that the next connection will retry if needed. | 161 // Reset the refresh flag so that the next connection will retry if needed. |
159 this.retryOnHostOffline_ = true; | 162 this.retryOnHostOffline_ = true; |
160 | 163 |
161 var plugin = connectionInfo.plugin(); | 164 var plugin = connectionInfo.plugin(); |
162 if (plugin.hasCapability(remoting.ClientSession.Capability.CAST)) { | 165 if (plugin.hasCapability(remoting.ClientSession.Capability.CAST)) { |
163 plugin.extensions().register(new remoting.CastExtensionHandler()); | 166 plugin.extensions().register(new remoting.CastExtensionHandler()); |
164 } | 167 } |
165 plugin.extensions().register(new remoting.GnubbyAuthHandler()); | 168 plugin.extensions().register(new remoting.GnubbyAuthHandler()); |
166 this.pinDialog_.requestPairingIfNecessary(connectionInfo.plugin()); | 169 this.pinDialog_.requestPairingIfNecessary(connectionInfo.plugin()); |
167 | 170 |
168 base.dispose(this.reconnector_); | 171 base.dispose(this.reconnector_); |
169 this.reconnector_ = new remoting.SmartReconnector( | 172 this.reconnector_ = new remoting.SmartReconnector( |
170 this.connect_.bind(this, false), | 173 this.connect_.bind(this, false), |
171 this.stop.bind(this), | 174 this.stop.bind(this), |
172 connectionInfo.session()); | 175 connectionInfo.session()); |
173 }; | 176 }; |
174 | 177 |
175 remoting.Me2MeActivity.prototype.onDisconnected = function() { | 178 remoting.Me2MeActivity.prototype.onDisconnected = function(error) { |
176 this.showFinishDialog_(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME); | 179 if (error.isNone()) { |
| 180 this.showFinishDialog_(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME); |
| 181 } else { |
| 182 this.reconnector_.onConnectionDropped(error); |
| 183 this.showErrorMessage_(error); |
| 184 } |
| 185 |
| 186 base.dispose(this.desktopActivity_); |
| 187 this.desktopActivity_ = null; |
177 }; | 188 }; |
178 | 189 |
179 /** | 190 /** |
180 * @param {!remoting.Error} error | 191 * @param {!remoting.Error} error |
| 192 * @private |
181 */ | 193 */ |
182 remoting.Me2MeActivity.prototype.onError = function(error) { | 194 remoting.Me2MeActivity.prototype.showErrorMessage_ = function(error) { |
183 var errorDiv = document.getElementById('connect-error-message'); | 195 var errorDiv = document.getElementById('connect-error-message'); |
184 l10n.localizeElementFromTag(errorDiv, error.getTag()); | 196 l10n.localizeElementFromTag(errorDiv, error.getTag()); |
185 this.showFinishDialog_(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); | 197 this.showFinishDialog_(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); |
186 }; | 198 }; |
187 | 199 |
188 /** | 200 /** |
189 * @param {remoting.AppMode} mode | 201 * @param {remoting.AppMode} mode |
190 * @private | 202 * @private |
191 */ | 203 */ |
192 remoting.Me2MeActivity.prototype.showFinishDialog_ = function(mode) { | 204 remoting.Me2MeActivity.prototype.showFinishDialog_ = function(mode) { |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 clientName = 'Linux'; | 330 clientName = 'Linux'; |
319 } else { | 331 } else { |
320 console.log('Unrecognized client platform. Using navigator.platform.'); | 332 console.log('Unrecognized client platform. Using navigator.platform.'); |
321 clientName = navigator.platform; | 333 clientName = navigator.platform; |
322 } | 334 } |
323 plugin.requestPairing(clientName, onPairingComplete); | 335 plugin.requestPairing(clientName, onPairingComplete); |
324 } | 336 } |
325 }; | 337 }; |
326 | 338 |
327 })(); | 339 })(); |
OLD | NEW |