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

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

Issue 1066283002: [Webapp Refactor] Implements remoting.MessageDialog (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 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 9904e93ef4893a8797052fd89f0ed0d2abeb57b3..11f156e5b627ae192785de5ed623a9e7bacc9e6e 100644
--- a/remoting/webapp/crd/js/me2me_activity.js
+++ b/remoting/webapp/crd/js/me2me_activity.js
@@ -27,6 +27,7 @@ remoting.Me2MeActivity = function(sessionConnector, host) {
/** @private */
this.hostUpdateDialog_ = new remoting.HostNeedsUpdateDialog(
document.getElementById('host-needs-update-dialog'), this.host_);
+
/** @private */
this.retryOnHostOffline_ = true;
};
@@ -130,17 +131,40 @@ remoting.Me2MeActivity.prototype.onConnected = function(connectionInfo) {
};
remoting.Me2MeActivity.prototype.onDisconnected = function() {
- remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME);
+ this.showFinishDialog_(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME);
};
/**
* @param {!remoting.Error} error
*/
remoting.Me2MeActivity.prototype.onError = function(error) {
- this.retryOnHostOffline_ = true;
var errorDiv = document.getElementById('connect-error-message');
l10n.localizeElementFromTag(errorDiv, error.getTag());
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME);
+ this.showFinishDialog_(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME);
+};
+
+/**
+ * @param {remoting.AppMode} mode
+ * @private
+ */
+remoting.Me2MeActivity.prototype.showFinishDialog_ = function(mode) {
+ var dialog = new remoting.MessageDialog(
+ mode,
+ document.getElementById('client-finished-me2me-button'),
+ document.getElementById('client-reconnect-button'));
+
+ /** @typedef {remoting.MessageDialog.Result} */
+ var Result = remoting.MessageDialog.Result;
+ var that = this;
+
+ dialog.show().then(function(/** Result */result) {
+ if (result === Result.PRIMARY) {
+ remoting.setMode(remoting.AppMode.HOME);
+ } else {
+ that.connector_.reconnect();
+ remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
+ }
+ });
};
/**
@@ -152,11 +176,10 @@ remoting.HostNeedsUpdateDialog = function(rootElement, host) {
/** @private */
this.host_ = host;
/** @private */
- this.rootElement_ = rootElement;
- /** @private {base.Deferred} */
- this.deferred_ = null;
- /** @private {base.Disposables} */
- this.eventHooks_ = null;
+ this.dialog_ = new remoting.MessageDialog(
+ remoting.AppMode.CLIENT_HOST_NEEDS_UPGRADE,
+ rootElement.querySelector('.connect-button'),
+ rootElement.querySelector('.cancel-button'));
l10n.localizeElementFromTag(
rootElement.querySelector('.host-needs-update-message'),
@@ -177,39 +200,13 @@ remoting.HostNeedsUpdateDialog.prototype.showIfNecessary =
if (!remoting.Host.needsUpdate(this.host_, webappVersion)) {
return Promise.resolve();
}
-
- this.eventHooks_ = new base.Disposables(
- new base.DomEventHook(this.rootElement_.querySelector('.connect-button'),
- 'click', this.onOK_.bind(this), false),
- new base.DomEventHook(this.rootElement_.querySelector('.cancel-button'),
- 'click', this.onCancel_.bind(this), false));
-
- base.debug.assert(this.deferred_ === null);
- this.deferred_ = new base.Deferred();
-
- remoting.setMode(remoting.AppMode.CLIENT_HOST_NEEDS_UPGRADE);
-
- return this.deferred_.promise();
-};
-
-/** @private */
-remoting.HostNeedsUpdateDialog.prototype.cleanup_ = function() {
- base.dispose(this.eventHooks_);
- this.eventHooks_ = null;
- this.deferred_ = null;
-};
-
-
-/** @private */
-remoting.HostNeedsUpdateDialog.prototype.onOK_ = function() {
- this.deferred_.resolve();
- this.cleanup_();
-};
-
-/** @private */
-remoting.HostNeedsUpdateDialog.prototype.onCancel_ = function() {
- this.deferred_.reject(new remoting.Error(remoting.Error.Tag.CANCELLED));
- this.cleanup_();
+ /** @typedef {remoting.MessageDialog.Result} */
+ var Result = remoting.MessageDialog.Result;
+ return this.dialog_.show().then(function(/** Result */ result) {
+ if (result === Result.SECONDARY) {
+ return Promise.reject(new remoting.Error(remoting.Error.Tag.CANCELLED));
+ }
+ });
};
/**
« remoting/webapp/base/js/input_dialog.js ('K') | « remoting/webapp/crd/js/it2me_activity.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698