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

Unified Diff: remoting/webapp/crd/js/me2me_activity.js

Issue 1101613003: [Webapp Refactor] Reliably cancels a connection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ImproveUnittest
Patch Set: Reviewer's feedback 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 side-by-side diff with in-line comments
Download patch
Index: remoting/webapp/crd/js/me2me_activity.js
diff --git a/remoting/webapp/crd/js/me2me_activity.js b/remoting/webapp/crd/js/me2me_activity.js
index 7d2b090e1b6095b86fdb3fa4ebd46ff7ca05bacb..d71f07f0cb5cccbb5f24685f22903b63bcb2a79a 100644
--- a/remoting/webapp/crd/js/me2me_activity.js
+++ b/remoting/webapp/crd/js/me2me_activity.js
@@ -11,14 +11,17 @@ var remoting = remoting || {};
/**
* @param {remoting.Host} host
+ * @param {remoting.HostList} hostList
*
* @constructor
* @implements {remoting.Activity}
*/
-remoting.Me2MeActivity = function(host) {
+remoting.Me2MeActivity = function(host, hostList) {
/** @private */
this.host_ = host;
/** @private */
+ this.hostList_ = hostList;
+ /** @private */
this.pinDialog_ =
new remoting.PinDialog(document.getElementById('pin-dialog'), host);
/** @private */
@@ -48,11 +51,11 @@ remoting.Me2MeActivity.prototype.start = function() {
return that.host_.options.load();
}).then(function() {
that.connect_(true);
- }).catch(function(/** remoting.Error */ error) {
+ }).catch(remoting.Error.handler(function(/** remoting.Error */ error) {
if (error.hasTag(remoting.Error.Tag.CANCELLED)) {
remoting.setMode(remoting.AppMode.HOME);
}
- });
+ }));
};
remoting.Me2MeActivity.prototype.stop = function() {
@@ -69,9 +72,9 @@ remoting.Me2MeActivity.prototype.getDesktopActivity = function() {
* @private
*/
remoting.Me2MeActivity.prototype.connect_ = function(suppressHostOfflineError) {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
base.dispose(this.desktopActivity_);
this.desktopActivity_ = new remoting.DesktopRemotingActivity(this);
+ this.desktopActivity_.getConnectingDialog().show();
remoting.app.setConnectionMode(remoting.Application.Mode.ME2ME);
this.desktopActivity_.start(this.host_, this.createCredentialsProvider_(),
suppressHostOfflineError);
@@ -104,13 +107,15 @@ remoting.Me2MeActivity.prototype.createCredentialsProvider_ = function() {
* @param {function(string):void} onPinFetched
*/
var requestPin = function(supportsPairing, onPinFetched) {
+ that.desktopActivity_.getConnectingDialog().hide();
that.pinDialog_.show(supportsPairing).then(function(/** string */ pin) {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
+ that.desktopActivity_.getConnectingDialog().show();
onPinFetched(pin);
- }).catch(function(/** remoting.Error */ error) {
+ }).catch(remoting.Error.handler(function(/** remoting.Error */ error) {
base.debug.assert(error.hasTag(remoting.Error.Tag.CANCELLED));
remoting.setMode(remoting.AppMode.HOME);
- });
+ that.stop();
+ }));
};
return new remoting.CredentialsProvider({
@@ -131,7 +136,7 @@ remoting.Me2MeActivity.prototype.onConnectionFailed = function(error) {
var onHostListRefresh = function(/** boolean */ success) {
if (success) {
// Get the host from the hostList for the refreshed JID.
- that.host_ = remoting.hostList.getHostForId(that.host_.hostId);
+ that.host_ = that.hostList_.getHostForId(that.host_.hostId);
that.connect_(false);
return;
}
@@ -141,9 +146,12 @@ remoting.Me2MeActivity.prototype.onConnectionFailed = function(error) {
// The plugin will be re-created when the host finished refreshing
remoting.hostList.refresh(onHostListRefresh);
Jamie 2015/04/24 17:59:18 this.hostList_?
kelvinp 2015/04/24 19:03:52 Done.
- } else {
+ } else if (!error.isNone()) {
this.onError(error);
}
+
+ base.dispose(this.desktopActivity_);
+ this.desktopActivity_ = null;
};
/**
@@ -162,6 +170,7 @@ remoting.Me2MeActivity.prototype.onConnected = function(connectionInfo) {
base.dispose(this.reconnector_);
this.reconnector_ = new remoting.SmartReconnector(
+ this.desktopActivity_.getConnectingDialog(),
this.connect_.bind(this, false),
this.stop.bind(this),
connectionInfo.session());
@@ -201,6 +210,9 @@ remoting.Me2MeActivity.prototype.showFinishDialog_ = function(mode) {
that.connect_(true);
}
});
+
+ base.dispose(this.desktopActivity_);
+ this.desktopActivity_ = null;
};
/**

Powered by Google App Engine
This is Rietveld 408576698