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

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

Issue 779613003: [Chromoting] Create core Application interface for CRD. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync Created 6 years 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
« no previous file with comments | « remoting/webapp/base/js/application.js ('k') | remoting/webapp/crd/js/client_session.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/client_screen.js
diff --git a/remoting/webapp/crd/js/client_screen.js b/remoting/webapp/crd/js/client_screen.js
index 3b06083e9fd00a874c633a1a7eee5b9b8fcc3687..523dd32352e164a7616981682f48c302190ce316 100644
--- a/remoting/webapp/crd/js/client_screen.js
+++ b/remoting/webapp/crd/js/client_screen.js
@@ -13,12 +13,6 @@
var remoting = remoting || {};
/**
- * @type {remoting.SessionConnector} The connector object, set when a
- * connection is initiated.
- */
-remoting.connector = null;
-
-/**
* @type {remoting.ClientSession} The client session object, set once the
* connector has invoked its onOk callback.
*/
@@ -28,10 +22,10 @@ remoting.clientSession = null;
* Initiate an IT2Me connection.
*/
remoting.connectIT2Me = function() {
- remoting.ensureSessionConnector_();
+ var connector = remoting.app.getSessionConnector();
var accessCode = document.getElementById('access-code-entry').value;
remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
- remoting.connector.connectIT2Me(accessCode);
+ connector.connectIT2Me(accessCode);
};
/**
@@ -103,14 +97,14 @@ function onClientStateChange_(state) {
if (error == null) {
error = remoting.Error.UNEXPECTED;
}
- showConnectError_(error);
+ remoting.app.onError(error);
break;
default:
console.error('Unexpected client plugin state: ' + state.current);
// This should only happen if the web-app and client plugin get out of
// sync, so MISSING_PLUGIN is a suitable error.
- showConnectError_(remoting.Error.MISSING_PLUGIN);
+ remoting.app.onError(remoting.Error.MISSING_PLUGIN);
break;
}
@@ -121,45 +115,6 @@ function onClientStateChange_(state) {
}
/**
- * Show a client-side error message.
- *
- * @param {remoting.Error} errorTag The error to be localized and
- * displayed.
- * @return {void} Nothing.
- */
-function showConnectError_(errorTag) {
- console.error('Connection failed: ' + errorTag);
- var errorDiv = document.getElementById('connect-error-message');
- l10n.localizeElementFromTag(errorDiv, /** @type {string} */ (errorTag));
- remoting.accessCode = '';
- var mode = remoting.clientSession ? remoting.clientSession.getMode()
- : remoting.connector.getConnectionMode();
- if (mode == remoting.ClientSession.Mode.IT2ME) {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_IT2ME);
- remoting.hangoutSessionEvents.raiseEvent(
- remoting.hangoutSessionEvents.sessionStateChanged,
- remoting.ClientSession.State.FAILED
- );
- } else {
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME);
- }
-}
-
-/**
- * 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.
- */
-function setConnectionInterruptedButtonsText_() {
- 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');
-}
-
-/**
* Timer callback to update the statistics panel.
*/
function updateStatistics_() {
@@ -185,7 +140,7 @@ function updateStatistics_() {
remoting.connectMe2Me = function(hostId) {
var host = remoting.hostList.getHostForId(hostId);
if (!host) {
- showConnectError_(remoting.Error.HOST_IS_OFFLINE);
+ remoting.app.onError(remoting.Error.HOST_IS_OFFLINE);
return;
}
var webappVersion = chrome.runtime.getManifest().version;
@@ -225,7 +180,8 @@ remoting.connectMe2Me = function(hostId) {
* @return {void} Nothing.
*/
remoting.connectMe2MeHostVersionAcknowledged_ = function(host) {
- remoting.ensureSessionConnector_();
+ /** @type {remoting.SessionConnector} */
+ var connector = remoting.app.getSessionConnector();
remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
/**
@@ -307,87 +263,9 @@ remoting.connectMe2MeHostVersionAcknowledged_ = function(host) {
clientId = /** @type {string} */ (pairingInfo['clientId']);
sharedSecret = /** @type {string} */ (pairingInfo['sharedSecret']);
}
- remoting.connector.connectMe2Me(host, requestPin, fetchThirdPartyToken,
+ connector.connectMe2Me(host, requestPin, fetchThirdPartyToken,
clientId, sharedSecret);
}
remoting.HostSettings.load(host.hostId, connectMe2MeHostSettingsRetrieved);
};
-
-/** @param {remoting.ClientSession} clientSession */
-remoting.onConnected = function(clientSession) {
- remoting.clientSession = clientSession;
- remoting.clientSession.addEventListener('stateChanged', onClientStateChange_);
- setConnectionInterruptedButtonsText_();
- document.getElementById('access-code-entry').value = '';
- remoting.setMode(remoting.AppMode.IN_SESSION);
- if (!base.isAppsV2()) {
- remoting.toolbar.center();
- remoting.toolbar.preview();
- }
- remoting.clipboard.startSession();
- updateStatistics_();
- remoting.hangoutSessionEvents.raiseEvent(
- remoting.hangoutSessionEvents.sessionStateChanged,
- remoting.ClientSession.State.CONNECTED
- );
- if (remoting.pairingRequested) {
- /**
- * @param {string} clientId
- * @param {string} sharedSecret
- */
- var onPairingComplete = function(clientId, sharedSecret) {
- var pairingInfo = {
- pairingInfo: {
- clientId: clientId,
- sharedSecret: sharedSecret
- }
- };
- remoting.HostSettings.save(remoting.connector.getHostId(), pairingInfo);
- remoting.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;
- }
- clientSession.requestPairing(clientName, onPairingComplete);
- }
-};
-
-/**
- * Extension message handler.
- *
- * @param {string} type The type of the extension message.
- * @param {string} data The payload of the extension message.
- * @return {boolean} Return true if the extension message was recognized.
- */
-remoting.onExtensionMessage = function(type, data) {
- if (remoting.clientSession) {
- return remoting.clientSession.handleExtensionMessage(type, data);
- }
- return false;
-};
-
-/**
- * Create a session connector if one doesn't already exist.
- */
-remoting.ensureSessionConnector_ = function() {
- if (!remoting.connector) {
- remoting.connector = remoting.SessionConnector.factory.createConnector(
- document.getElementById('video-container'),
- remoting.onConnected,
- showConnectError_, remoting.onExtensionMessage);
- }
-};
« no previous file with comments | « remoting/webapp/base/js/application.js ('k') | remoting/webapp/crd/js/client_session.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698