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

Unified Diff: remoting/webapp/session_connector_impl.js

Issue 552403004: Interfaceify ClientPlugin in preparation for mocking it. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renamed interfaces. Created 6 years, 3 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/session_connector_impl.js
diff --git a/remoting/webapp/session_connector.js b/remoting/webapp/session_connector_impl.js
similarity index 87%
copy from remoting/webapp/session_connector.js
copy to remoting/webapp/session_connector_impl.js
index 04fe425e21634d38e4dd7579a1ed8f8d9f8c30f5..b571be050f1920f95038f41d25a6ec047fd39e2c 100644
--- a/remoting/webapp/session_connector.js
+++ b/remoting/webapp/session_connector_impl.js
@@ -21,8 +21,9 @@ var remoting = remoting || {};
* protocol extension messages. Returns true if a message is recognized;
* false otherwise.
* @constructor
+ * @implements {remoting.SessionConnector}
*/
-remoting.SessionConnector = function(clientContainer, onConnected, onError,
+remoting.SessionConnectorImpl = function(clientContainer, onConnected, onError,
onExtensionMessage) {
/**
* @type {HTMLElement}
@@ -87,15 +88,7 @@ remoting.SessionConnector = function(clientContainer, onConnected, onError,
* Reset the per-connection state so that the object can be re-used for a
* second connection. Note the none of the shared WCS state is reset.
*/
-remoting.SessionConnector.prototype.reset = function() {
- /**
- * Set to true to indicate that the user requested pairing when entering
- * their PIN for a Me2Me connection.
- *
- * @type {boolean}
- */
- this.pairingRequested = false;
-
+remoting.SessionConnectorImpl.prototype.reset = function() {
/**
* String used to identify the host to which to connect. For IT2Me, this is
* the first 7 digits of the access code; for Me2Me it is the host identifier.
@@ -203,7 +196,7 @@ remoting.SessionConnector.prototype.reset = function() {
* this device was paired, if it is already paired.
* @return {void} Nothing.
*/
-remoting.SessionConnector.prototype.connectMe2Me =
+remoting.SessionConnectorImpl.prototype.connectMe2Me =
function(host, fetchPin, fetchThirdPartyToken,
clientPairingId, clientPairedSecret) {
this.connectMe2MeInternal_(
@@ -218,7 +211,7 @@ remoting.SessionConnector.prototype.connectMe2Me =
* @param {string} clientId The paired client id.
* @param {string} sharedSecret The shared secret.
*/
-remoting.SessionConnector.prototype.updatePairingInfo =
+remoting.SessionConnectorImpl.prototype.updatePairingInfo =
function(clientId, sharedSecret) {
this.clientPairingId_ = clientId;
this.clientPairedSecret_ = sharedSecret;
@@ -246,7 +239,7 @@ remoting.SessionConnector.prototype.updatePairingInfo =
* @return {void} Nothing.
* @private
*/
-remoting.SessionConnector.prototype.connectMe2MeInternal_ =
+remoting.SessionConnectorImpl.prototype.connectMe2MeInternal_ =
function(hostId, hostJid, hostPublicKey, hostDisplayName,
fetchPin, fetchThirdPartyToken,
clientPairingId, clientPairedSecret,
@@ -273,7 +266,7 @@ remoting.SessionConnector.prototype.connectMe2MeInternal_ =
* @param {string} accessCode The access code as entered by the user.
* @return {void} Nothing.
*/
-remoting.SessionConnector.prototype.connectIT2Me = function(accessCode) {
+remoting.SessionConnectorImpl.prototype.connectIT2Me = function(accessCode) {
var kSupportIdLen = 7;
var kHostSecretLen = 5;
var kAccessCodeLen = kSupportIdLen + kHostSecretLen;
@@ -299,7 +292,7 @@ remoting.SessionConnector.prototype.connectIT2Me = function(accessCode) {
*
* @return {void} Nothing.
*/
-remoting.SessionConnector.prototype.reconnect = function() {
+remoting.SessionConnectorImpl.prototype.reconnect = function() {
if (this.connectionMode_ == remoting.ClientSession.Mode.IT2ME) {
console.error('reconnect not supported for IT2Me.');
return;
@@ -313,7 +306,7 @@ remoting.SessionConnector.prototype.reconnect = function() {
/**
* Cancel a connection-in-progress.
*/
-remoting.SessionConnector.prototype.cancel = function() {
+remoting.SessionConnectorImpl.prototype.cancel = function() {
if (this.clientSession_) {
this.clientSession_.removePlugin();
this.clientSession_ = null;
@@ -330,7 +323,7 @@ remoting.SessionConnector.prototype.cancel = function() {
*
* @return {remoting.ClientSession.Mode}
*/
-remoting.SessionConnector.prototype.getConnectionMode = function() {
+remoting.SessionConnectorImpl.prototype.getConnectionMode = function() {
return this.connectionMode_;
};
@@ -339,18 +332,18 @@ remoting.SessionConnector.prototype.getConnectionMode = function() {
*
* @return {string}
*/
-remoting.SessionConnector.prototype.getHostId = function() {
+remoting.SessionConnectorImpl.prototype.getHostId = function() {
return this.hostId_;
};
/**
* @private
*/
-remoting.SessionConnector.prototype.connectSignaling_ = function() {
+remoting.SessionConnectorImpl.prototype.connectSignaling_ = function() {
base.dispose(this.signalStrategy_);
this.signalStrategy_ = null;
- /** @type {remoting.SessionConnector} */
+ /** @type {remoting.SessionConnectorImpl} */
var that = this;
/** @param {string} token */
@@ -386,7 +379,7 @@ remoting.SessionConnector.prototype.connectSignaling_ = function() {
* @private
* @param {remoting.SignalStrategy.State} state
*/
-remoting.SessionConnector.prototype.onSignalingState_ = function(state) {
+remoting.SessionConnectorImpl.prototype.onSignalingState_ = function(state) {
switch (state) {
case remoting.SignalStrategy.State.CONNECTED:
// Proceed only if the connection hasn't been canceled.
@@ -408,7 +401,8 @@ remoting.SessionConnector.prototype.onSignalingState_ = function(state) {
* @return {void} Nothing.
* @private
*/
-remoting.SessionConnector.prototype.connectIT2MeWithToken_ = function(token) {
+remoting.SessionConnectorImpl.prototype.connectIT2MeWithToken_ =
+ function(token) {
// Resolve the host id to get the host JID.
this.pendingXhr_ = remoting.xhr.get(
remoting.settings.DIRECTORY_API_BASE_URL + '/support-hosts/' +
@@ -425,7 +419,7 @@ remoting.SessionConnector.prototype.connectIT2MeWithToken_ = function(token) {
* @return {void} Nothing.
* @private
*/
-remoting.SessionConnector.prototype.onIT2MeHostInfo_ = function(xhr) {
+remoting.SessionConnectorImpl.prototype.onIT2MeHostInfo_ = function(xhr) {
this.pendingXhr_ = null;
if (xhr.status == 200) {
var host = /** @type {{data: {jabberId: string, publicKey: string}}} */
@@ -440,14 +434,14 @@ remoting.SessionConnector.prototype.onIT2MeHostInfo_ = function(xhr) {
console.error('Invalid "support-hosts" response from server.');
}
} else {
- this.onError_(this.translateSupportHostsError(xhr.status));
+ this.onError_(this.translateSupportHostsError_(xhr.status));
}
};
/**
* Creates ClientSession object.
*/
-remoting.SessionConnector.prototype.createSession_ = function() {
+remoting.SessionConnectorImpl.prototype.createSession_ = function() {
// In some circumstances, the WCS <iframe> can get reloaded, which results
// in a new clientJid and a new callback. In this case, remove the old
// client plugin before instantiating a new one.
@@ -480,7 +474,7 @@ remoting.SessionConnector.prototype.createSession_ = function() {
* @return {void} Nothing.
* @private
*/
-remoting.SessionConnector.prototype.onStateChange_ = function(event) {
+remoting.SessionConnectorImpl.prototype.onStateChange_ = function(event) {
switch (event.current) {
case remoting.ClientSession.State.CONNECTED:
// When the connection succeeds, deregister for state-change callbacks
@@ -550,7 +544,7 @@ remoting.SessionConnector.prototype.onStateChange_ = function(event) {
* false if an error occurred.
* @private
*/
-remoting.SessionConnector.prototype.onHostListRefresh_ = function(success) {
+remoting.SessionConnectorImpl.prototype.onHostListRefresh_ = function(success) {
if (success) {
var host = remoting.hostList.getHostForId(this.hostId_);
if (host) {
@@ -570,7 +564,7 @@ remoting.SessionConnector.prototype.onHostListRefresh_ = function(success) {
* @return {remoting.Error} The equivalent remoting.Error code.
* @private
*/
-remoting.SessionConnector.prototype.translateSupportHostsError =
+remoting.SessionConnectorImpl.prototype.translateSupportHostsError_ =
function(error) {
switch (error) {
case 0: return remoting.Error.NETWORK_FAILURE;
@@ -586,9 +580,33 @@ remoting.SessionConnector.prototype.translateSupportHostsError =
*
* @param {string} accessCode The access code, as entered by the user.
* @return {string} The normalized form of the code (whitespace removed).
+ * @private
*/
-remoting.SessionConnector.prototype.normalizeAccessCode_ =
+remoting.SessionConnectorImpl.prototype.normalizeAccessCode_ =
function(accessCode) {
// Trim whitespace.
return accessCode.replace(/\s/g, '');
};
+
+
+/**
+ * @constructor
+ * @implements {remoting.SessionConnectorFactory}
+ */
+remoting.DefaultSessionConnectorFactory = function() {
+};
+
+/**
+ * @param {HTMLElement} clientContainer Container element for the client view.
+ * @param {function(remoting.ClientSession):void} onConnected Callback on
+ * success.
+ * @param {function(remoting.Error):void} onError Callback on error.
+ * @param {function(string, string):boolean} onExtensionMessage The handler for
+ * protocol extension messages. Returns true if a message is recognized;
+ * false otherwise.
+ */
+remoting.DefaultSessionConnectorFactory.prototype.createConnector =
+ function(clientContainer, onConnected, onError, onExtensionMessage) {
+ return new remoting.SessionConnectorImpl(
+ clientContainer, onConnected, onError, onExtensionMessage);
+};
« remoting/webapp/session_connector.js ('K') | « remoting/webapp/session_connector.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698