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

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

Issue 1054273002: [Webapp Refactor] Implements remoting.Activity. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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/desktop_remoting.js
diff --git a/remoting/webapp/crd/js/desktop_remoting.js b/remoting/webapp/crd/js/desktop_remoting.js
index 9c3156fdf9dd43292d83a64125f71cdf1c8489ca..079b6ed6783ffefaa9efacda33e2798281a11c78 100644
--- a/remoting/webapp/crd/js/desktop_remoting.js
+++ b/remoting/webapp/crd/js/desktop_remoting.js
@@ -22,16 +22,17 @@ var remoting = remoting || {};
remoting.DesktopRemoting = function(appCapabilities) {
base.inherits(this, remoting.Application, appCapabilities);
- /**
- * Whether to refresh the JID and retry the connection if the current JID
- * is offline.
- *
- * @private {boolean}
- */
- this.refreshHostJidIfOffline_ = true;
-
/** @private {remoting.DesktopConnectedView} */
this.connectedView_ = null;
+
+ /** @private {remoting.Activity} */
+ this.activity_ = null;
+};
+
+/** @private */
+remoting.DesktopRemoting.prototype.reset_ = function() {
+ base.dispose(this.connectedView_);
Jamie 2015/04/07 21:20:44 Please add a comment explaining that the activity
kelvinp 2015/04/07 22:48:19 Done.
+ this.connectedView_ = null;
};
/**
@@ -152,22 +153,6 @@ remoting.DesktopRemoting.prototype.exitApplication_ = function() {
remoting.DesktopRemoting.prototype.onConnected_ = function(connectionInfo) {
this.initSession_(connectionInfo);
- // Set the text on the buttons shown under the error message so that they are
- // easy to understand in the case where a successful connection failed, as
- // opposed to the case where a connection never succeeded.
- // TODO(garykac): Investigate to see if these need to be reverted to their
- // original values in the onDisconnected_ method.
- var button1 = document.getElementById('client-reconnect-button');
- l10n.localizeElementFromTag(button1, /*i18n-content*/'RECONNECT');
- button1.removeAttribute('autofocus');
- var button2 = document.getElementById('client-finished-me2me-button');
- l10n.localizeElementFromTag(button2, /*i18n-content*/'OK');
- button2.setAttribute('autofocus', 'autofocus');
-
- // Reset the refresh flag so that the next connection will retry if needed.
- this.refreshHostJidIfOffline_ = true;
-
- document.getElementById('access-code-entry').value = '';
remoting.setMode(remoting.AppMode.IN_SESSION);
if (!base.isAppsV2()) {
remoting.toolbar.center();
@@ -183,14 +168,6 @@ remoting.DesktopRemoting.prototype.onConnected_ = function(connectionInfo) {
connectionInfo.plugin().setRemapKeys('0x0700e4>0x0700e7');
}
- if (remoting.app.getConnectionMode() === remoting.Application.Mode.ME2ME) {
- if (remoting.app.hasCapability(remoting.ClientSession.Capability.CAST)) {
- this.sessionConnector_.registerProtocolExtension(
- new remoting.CastExtensionHandler());
- }
- this.sessionConnector_.registerProtocolExtension(
- new remoting.GnubbyAuthHandler());
- }
if (connectionInfo.session().hasCapability(
remoting.ClientSession.Capability.VIDEO_RECORDER)) {
var recorder = new remoting.VideoFrameRecorder();
@@ -198,52 +175,15 @@ remoting.DesktopRemoting.prototype.onConnected_ = function(connectionInfo) {
this.connectedView_.setVideoFrameRecorder(recorder);
}
- if (remoting.pairingRequested) {
- var that = this;
- /**
- * @param {string} clientId
- * @param {string} sharedSecret
- */
- var onPairingComplete = function(clientId, sharedSecret) {
- var connector = that.sessionConnector_;
- var host = remoting.hostList.getHostForId(connector.getHostId());
- host.options.pairingInfo.clientId = clientId;
- host.options.pairingInfo.sharedSecret = sharedSecret;
- host.options.save();
- connector.updatePairingInfo(clientId, sharedSecret);
- };
- // Use the platform name as a proxy for the local computer name.
- // TODO(jamiewalch): Use a descriptive name for the local computer, for
- // example, its Chrome Sync name.
- var clientName = '';
- if (remoting.platformIsMac()) {
- clientName = 'Mac';
- } else if (remoting.platformIsWindows()) {
- clientName = 'Windows';
- } else if (remoting.platformIsChromeOS()) {
- clientName = 'ChromeOS';
- } else if (remoting.platformIsLinux()) {
- clientName = 'Linux';
- } else {
- console.log('Unrecognized client platform. Using navigator.platform.');
- clientName = navigator.platform;
- }
- connectionInfo.session().requestPairing(clientName, onPairingComplete);
- }
+ this.activity_.onConnected(connectionInfo);
};
/**
* @override {remoting.ApplicationInterface}
*/
remoting.DesktopRemoting.prototype.onDisconnected_ = function() {
- var mode = this.getConnectionMode();
- if (mode === remoting.Application.Mode.IT2ME) {
- remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_IT2ME);
- } else {
- remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME);
- }
- base.dispose(this.connectedView_);
- this.connectedView_ = null;
+ this.activity_.onDisconnected();
+ this.reset_();
};
/**
@@ -251,30 +191,7 @@ remoting.DesktopRemoting.prototype.onDisconnected_ = function() {
* @override {remoting.ApplicationInterface}
*/
remoting.DesktopRemoting.prototype.onConnectionFailed_ = function(error) {
- var that = this;
- var onHostListRefresh = function(/** boolean */ success) {
- if (success) {
- var connector = that.sessionConnector_;
- var host = remoting.hostList.getHostForId(connector.getHostId());
- if (host) {
- connector.retryConnectMe2Me(host);
- return;
- }
- }
- that.onError_(error);
- };
-
- var mode = this.getConnectionMode();
- if (error.hasTag(remoting.Error.Tag.HOST_IS_OFFLINE) &&
- mode === remoting.Application.Mode.ME2ME &&
- this.refreshHostJidIfOffline_) {
- this.refreshHostJidIfOffline_ = false;
-
- // The plugin will be re-created when the host finished refreshing
- remoting.hostList.refresh(onHostListRefresh);
- } else {
- this.onError_(error);
- }
+ this.activity_.onConnectionFailed(error);
};
/**
@@ -283,9 +200,6 @@ remoting.DesktopRemoting.prototype.onConnectionFailed_ = function(error) {
*/
remoting.DesktopRemoting.prototype.onError_ = function(error) {
console.error('Connection failed: ' + error.toString());
- var mode = this.getConnectionMode();
- base.dispose(this.connectedView_);
- this.connectedView_ = null;
if (error.hasTag(remoting.Error.Tag.AUTHENTICATION_FAILED)) {
remoting.setMode(remoting.AppMode.HOME);
@@ -293,17 +207,8 @@ remoting.DesktopRemoting.prototype.onError_ = function(error) {
return;
}
- // Reset the refresh flag so that the next connection will retry if needed.
- this.refreshHostJidIfOffline_ = true;
-
- var errorDiv = document.getElementById('connect-error-message');
- l10n.localizeElementFromTag(errorDiv, error.getTag());
-
- if (mode == remoting.Application.Mode.IT2ME) {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_IT2ME);
- } else {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME);
- }
+ this.activity_.onError(error);
+ this.reset_();
};
/**
@@ -367,8 +272,9 @@ remoting.DesktopRemoting.prototype.getConnectedViewForTesting = function() {
*/
remoting.DesktopRemoting.prototype.connectMe2Me_ = function(hostId) {
var host = remoting.hostList.getHostForId(hostId);
- var flow = new remoting.Me2MeConnectFlow(this.sessionConnector_, host);
- flow.start();
+ base.dispose(this.activity_);
+ this.activity_ = new remoting.Me2MeActivity(this.sessionConnector_, host);
+ this.activity_.start();
};
/**
@@ -377,6 +283,7 @@ remoting.DesktopRemoting.prototype.connectMe2Me_ = function(hostId) {
* @private
*/
remoting.DesktopRemoting.prototype.connectIt2Me_ = function() {
- var flow = new remoting.It2MeConnectFlow(this.sessionConnector_);
- flow.start();
+ base.dispose(this.activity_);
+ this.activity_ = new remoting.It2MeActivity(this.sessionConnector_);
+ this.activity_.start();
};

Powered by Google App Engine
This is Rietveld 408576698