| Index: remoting/webapp/crd/js/it2me_host_facade.js
|
| diff --git a/remoting/webapp/crd/js/it2me_host_facade.js b/remoting/webapp/crd/js/it2me_host_facade.js
|
| index 621befb53caf332abc8487ee976f903d0a75d2cd..c33f8ebdf8872fcb02cb9c4c9b03508a538549ed 100644
|
| --- a/remoting/webapp/crd/js/it2me_host_facade.js
|
| +++ b/remoting/webapp/crd/js/it2me_host_facade.js
|
| @@ -7,51 +7,39 @@
|
| * Class to communicate with the It2me Host component via Native Messaging.
|
| */
|
|
|
| -'use strict';
|
| -
|
| /** @suppress {duplicate} */
|
| var remoting = remoting || {};
|
|
|
| +(function() {
|
| +
|
| +'use strict';
|
| +
|
| /**
|
| * @constructor
|
| + * @implements {base.Disposable}
|
| */
|
| remoting.It2MeHostFacade = function() {
|
| - /**
|
| - * @type {number}
|
| - * @private
|
| - */
|
| + /** @private {number} */
|
| this.nextId_ = 0;
|
|
|
| - /**
|
| - * @type {?chrome.runtime.Port}
|
| - * @private
|
| - */
|
| + /** @private {?chrome.runtime.Port} */
|
| this.port_ = null;
|
|
|
| - /**
|
| - * @type {string}
|
| - * @private
|
| - */
|
| + /** @private {string} */
|
| this.accessCode_ = '';
|
|
|
| - /**
|
| - * @type {number}
|
| - * @private
|
| - */
|
| + /** @private {number} */
|
| this.accessCodeLifetime_ = 0;
|
|
|
| - /**
|
| - * @type {string}
|
| - * @private
|
| - */
|
| + /** @private {string} */
|
| this.clientId_ = '';
|
|
|
| - /**
|
| - * @type {boolean}
|
| - * @private
|
| - */
|
| + /** @private {boolean} */
|
| this.initialized_ = false;
|
|
|
| + /** @private {base.Disposables} */
|
| + this.eventHooks_ = null;
|
| +
|
| /**
|
| * @type {?function():void}
|
| * @private
|
| @@ -85,6 +73,15 @@ remoting.It2MeHostFacade = function() {
|
| this.onNatPolicyChanged_ = function() {};
|
| };
|
|
|
| +remoting.It2MeHostFacade.prototype.dispose = function() {
|
| + base.dispose(this.eventHooks_);
|
| + this.eventHooks_ = null;
|
| + if (this.port_) {
|
| + this.port_.disconnect();
|
| + this.port_ = null;
|
| + }
|
| +};
|
| +
|
| /**
|
| * Sets up connection to the Native Messaging host process and exchanges
|
| * 'hello' messages. If Native Messaging is not supported or if the it2me
|
| @@ -105,8 +102,11 @@ remoting.It2MeHostFacade.prototype.initialize =
|
| try {
|
| this.port_ = chrome.runtime.connectNative(
|
| 'com.google.chrome.remote_assistance');
|
| - this.port_.onMessage.addListener(this.onIncomingMessage_.bind(this));
|
| - this.port_.onDisconnect.addListener(this.onHostDisconnect_.bind(this));
|
| + this.eventHooks_ = new base.Disposables(
|
| + new base.ChromeEventHook(this.port_.onMessage,
|
| + this.onIncomingMessage_.bind(this)),
|
| + new base.ChromeEventHook(this.port_.onDisconnect,
|
| + this.onHostDisconnect_.bind(this)));
|
| this.port_.postMessage({type: 'hello'});
|
| } catch (/** @type {*} */ err) {
|
| console.log('Native Messaging initialization failed: ', err);
|
| @@ -328,4 +328,6 @@ remoting.It2MeHostFacade.prototype.onHostDisconnect_ = function() {
|
| this.port_ = null;
|
| this.onError_(remoting.Error.UNEXPECTED);
|
| }
|
| -}
|
| +};
|
| +
|
| +})();
|
|
|