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

Side by Side Diff: remoting/webapp/crd/js/it2me_host_facade.js

Issue 895723006: Fix It2Me Host doesn't kill the native process after canceling a share (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reviewer's feedback Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « remoting/webapp/crd/js/host_session.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * Class to communicate with the It2me Host component via Native Messaging. 7 * Class to communicate with the It2me Host component via Native Messaging.
8 */ 8 */
9 9
10 'use strict';
11
12 /** @suppress {duplicate} */ 10 /** @suppress {duplicate} */
13 var remoting = remoting || {}; 11 var remoting = remoting || {};
14 12
13 (function() {
14
15 'use strict';
16
15 /** 17 /**
16 * @constructor 18 * @constructor
19 * @implements {base.Disposable}
17 */ 20 */
18 remoting.It2MeHostFacade = function() { 21 remoting.It2MeHostFacade = function() {
19 /** 22 /** @private {number} */
20 * @type {number}
21 * @private
22 */
23 this.nextId_ = 0; 23 this.nextId_ = 0;
24 24
25 /** 25 /** @private {?chrome.runtime.Port} */
26 * @type {?chrome.runtime.Port}
27 * @private
28 */
29 this.port_ = null; 26 this.port_ = null;
30 27
31 /** 28 /** @private {string} */
32 * @type {string}
33 * @private
34 */
35 this.accessCode_ = ''; 29 this.accessCode_ = '';
36 30
37 /** 31 /** @private {number} */
38 * @type {number}
39 * @private
40 */
41 this.accessCodeLifetime_ = 0; 32 this.accessCodeLifetime_ = 0;
42 33
43 /** 34 /** @private {string} */
44 * @type {string}
45 * @private
46 */
47 this.clientId_ = ''; 35 this.clientId_ = '';
48 36
49 /** 37 /** @private {boolean} */
50 * @type {boolean}
51 * @private
52 */
53 this.initialized_ = false; 38 this.initialized_ = false;
54 39
40 /** @private {base.Disposables} */
41 this.eventHooks_ = null;
42
55 /** 43 /**
56 * @type {?function():void} 44 * @type {?function():void}
57 * @private 45 * @private
58 */ 46 */
59 this.onInitialized_ = function() {}; 47 this.onInitialized_ = function() {};
60 48
61 /** 49 /**
62 * Called if Native Messaging host has failed to start. 50 * Called if Native Messaging host has failed to start.
63 * @private 51 * @private
64 * */ 52 * */
(...skipping 13 matching lines...) Expand all
78 */ 66 */
79 this.onStateChanged_ = function() {}; 67 this.onStateChanged_ = function() {};
80 68
81 /** 69 /**
82 * @type {?function(boolean):void} 70 * @type {?function(boolean):void}
83 * @private 71 * @private
84 */ 72 */
85 this.onNatPolicyChanged_ = function() {}; 73 this.onNatPolicyChanged_ = function() {};
86 }; 74 };
87 75
76 remoting.It2MeHostFacade.prototype.dispose = function() {
77 base.dispose(this.eventHooks_);
78 this.eventHooks_ = null;
79 if (this.port_) {
80 this.port_.disconnect();
81 this.port_ = null;
82 }
83 };
84
88 /** 85 /**
89 * Sets up connection to the Native Messaging host process and exchanges 86 * Sets up connection to the Native Messaging host process and exchanges
90 * 'hello' messages. If Native Messaging is not supported or if the it2me 87 * 'hello' messages. If Native Messaging is not supported or if the it2me
91 * native messaging host is not installed, onInitializationFailed is invoked. 88 * native messaging host is not installed, onInitializationFailed is invoked.
92 * Otherwise, onInitialized is invoked. 89 * Otherwise, onInitialized is invoked.
93 * 90 *
94 * @param {function(*=):void} onInitialized Called after successful 91 * @param {function(*=):void} onInitialized Called after successful
95 * initialization. 92 * initialization.
96 * @param {function(*=):void} onInitializationFailed Called if cannot connect to 93 * @param {function(*=):void} onInitializationFailed Called if cannot connect to
97 * the native messaging host. 94 * the native messaging host.
98 * @return {void} 95 * @return {void}
99 */ 96 */
100 remoting.It2MeHostFacade.prototype.initialize = 97 remoting.It2MeHostFacade.prototype.initialize =
101 function(onInitialized, onInitializationFailed) { 98 function(onInitialized, onInitializationFailed) {
102 this.onInitialized_ = onInitialized; 99 this.onInitialized_ = onInitialized;
103 this.onInitializationFailed_ = onInitializationFailed; 100 this.onInitializationFailed_ = onInitializationFailed;
104 101
105 try { 102 try {
106 this.port_ = chrome.runtime.connectNative( 103 this.port_ = chrome.runtime.connectNative(
107 'com.google.chrome.remote_assistance'); 104 'com.google.chrome.remote_assistance');
108 this.port_.onMessage.addListener(this.onIncomingMessage_.bind(this)); 105 this.eventHooks_ = new base.Disposables(
109 this.port_.onDisconnect.addListener(this.onHostDisconnect_.bind(this)); 106 new base.ChromeEventHook(this.port_.onMessage,
107 this.onIncomingMessage_.bind(this)),
108 new base.ChromeEventHook(this.port_.onDisconnect,
109 this.onHostDisconnect_.bind(this)));
110 this.port_.postMessage({type: 'hello'}); 110 this.port_.postMessage({type: 'hello'});
111 } catch (/** @type {*} */ err) { 111 } catch (/** @type {*} */ err) {
112 console.log('Native Messaging initialization failed: ', err); 112 console.log('Native Messaging initialization failed: ', err);
113 onInitializationFailed(); 113 onInitializationFailed();
114 return; 114 return;
115 } 115 }
116 }; 116 };
117 117
118 /** 118 /**
119 * @param {string} email The user's email address. 119 * @param {string} email The user's email address.
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 // the host binary cannot be found we get the "Native host has exited" 321 // the host binary cannot be found we get the "Native host has exited"
322 // error. 322 // error.
323 console.log('Native Messaging initialization failed: ' + 323 console.log('Native Messaging initialization failed: ' +
324 chrome.runtime.lastError.message); 324 chrome.runtime.lastError.message);
325 this.onInitializationFailed_(); 325 this.onInitializationFailed_();
326 } else { 326 } else {
327 console.error('Native Messaging port disconnected.'); 327 console.error('Native Messaging port disconnected.');
328 this.port_ = null; 328 this.port_ = null;
329 this.onError_(remoting.Error.UNEXPECTED); 329 this.onError_(remoting.Error.UNEXPECTED);
330 } 330 }
331 } 331 };
332
333 })();
OLDNEW
« no previous file with comments | « remoting/webapp/crd/js/host_session.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698