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

Side by Side Diff: remoting/webapp/host_native_messaging.js

Issue 132793007: Download the host components when user tries to enable Me2Me host. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 Host components via Native Messaging. 7 * Class to communicate with the Host components via Native Messaging.
8 */ 8 */
9 9
10 'use strict'; 10 'use strict';
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 * Sets up connection to the Native Messaging host process and exchanges 58 * Sets up connection to the Native Messaging host process and exchanges
59 * 'hello' messages. If Native Messaging is not available or the host 59 * 'hello' messages. If Native Messaging is not available or the host
60 * process is not installed, this returns false to the callback. 60 * process is not installed, this returns false to the callback.
61 * 61 *
62 * @param {function(): void} onDone Called after successful initialization. 62 * @param {function(): void} onDone Called after successful initialization.
63 * @param {function(remoting.Error): void} onError Called if initialization 63 * @param {function(remoting.Error): void} onError Called if initialization
64 * failed. 64 * failed.
65 * @return {void} Nothing. 65 * @return {void} Nothing.
66 */ 66 */
67 remoting.HostNativeMessaging.prototype.initialize = function(onDone, onError) { 67 remoting.HostNativeMessaging.prototype.initialize = function(onDone, onError) {
68 if (!chrome.runtime.connectNative) { 68 console.log("NM Init");
weitao 2014/01/31 18:37:11 I am about to commit a CL that remove this code an
Sergey Ulanov 2014/01/31 23:34:17 Done.
Jamie 2014/01/31 18:39:15 Are these logs needed? If so, they should be a bit
Sergey Ulanov 2014/01/31 23:34:17 Reverted the changes in this method, but the fix i
69 console.log('Native Messaging API not available');
70 onError(remoting.Error.UNEXPECTED);
71 return;
72 }
73
74 // NativeMessaging API exists on Chrome 26.xxx but fails to notify
75 // onDisconnect in the case where the Host components are not installed. Need
76 // to blacklist these versions of Chrome.
77 var majorVersion = navigator.appVersion.match('Chrome/(\\d+)\.')[1];
78 if (!majorVersion || majorVersion <= 26) {
79 console.log('Native Messaging not supported on this version of Chrome');
80 onError(remoting.Error.UNEXPECTED);
81 return;
82 }
83
84 try { 69 try {
70 console.log("NM Init2 " + this.pendingReplies_);
71 this.pendingReplies_ = {};
85 this.port_ = chrome.runtime.connectNative( 72 this.port_ = chrome.runtime.connectNative(
86 'com.google.chrome.remote_desktop'); 73 'com.google.chrome.remote_desktop');
87 this.port_.onMessage.addListener(this.onIncomingMessage_.bind(this)); 74 this.port_.onMessage.addListener(this.onIncomingMessage_.bind(this));
88 this.port_.onDisconnect.addListener(this.onDisconnect_.bind(this)); 75 this.port_.onDisconnect.addListener(this.onDisconnect_.bind(this));
89 this.postMessage_({type: 'hello'}, onDone, 76 this.postMessage_({type: 'hello'}, onDone,
90 onError.bind(null, remoting.Error.UNEXPECTED)); 77 onError.bind(null, remoting.Error.UNEXPECTED));
78 console.log("NM Init3");
91 } catch (err) { 79 } catch (err) {
92 console.log('Native Messaging initialization failed: ', 80 console.log('Native Messaging initialization failed: ',
93 /** @type {*} */ (err)); 81 /** @type {*} */ (err));
94 onError(remoting.Error.UNEXPECTED); 82 onError(remoting.Error.UNEXPECTED);
95 return; 83 return;
96 } 84 }
97 }; 85 };
98 86
99 /** 87 /**
100 * Verifies that |object| is of type |type|, logging an error if not. 88 * Verifies that |object| is of type |type|, logging an error if not.
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 }; 362 };
375 363
376 /** 364 /**
377 * @return {void} Nothing. 365 * @return {void} Nothing.
378 * @private 366 * @private
379 */ 367 */
380 remoting.HostNativeMessaging.prototype.onDisconnect_ = function() { 368 remoting.HostNativeMessaging.prototype.onDisconnect_ = function() {
381 console.error('Native Message port disconnected'); 369 console.error('Native Message port disconnected');
382 370
383 // Notify the error-handlers of any requests that are still outstanding. 371 // Notify the error-handlers of any requests that are still outstanding.
384 for (var id in this.pendingReplies_) { 372 var pendingReplies = this.pendingReplies_;
385 this.pendingReplies_[/** @type {number} */(id)].onError( 373 this.pendingReplies_ = {};
374
375 for (var id in pendingReplies) {
376 pendingReplies[/** @type {number} */(id)].onError(
386 remoting.Error.UNEXPECTED); 377 remoting.Error.UNEXPECTED);
387 } 378 }
388 this.pendingReplies_ = {};
389 } 379 }
390 380
391 /** 381 /**
392 * @param {function(string):void} onDone Callback to be called with the 382 * @param {function(string):void} onDone Callback to be called with the
393 * local hostname. 383 * local hostname.
394 * @param {function(remoting.Error):void} onError The callback to be triggered 384 * @param {function(remoting.Error):void} onError The callback to be triggered
395 * on error. 385 * on error.
396 * @return {void} Nothing. 386 * @return {void} Nothing.
397 */ 387 */
398 remoting.HostNativeMessaging.prototype.getHostName = 388 remoting.HostNativeMessaging.prototype.getHostName =
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 * on error. 595 * on error.
606 * @return {void} Nothing. 596 * @return {void} Nothing.
607 */ 597 */
608 remoting.HostNativeMessaging.prototype.getCredentialsFromAuthCode = 598 remoting.HostNativeMessaging.prototype.getCredentialsFromAuthCode =
609 function(authorizationCode, onDone, onError) { 599 function(authorizationCode, onDone, onError) {
610 this.postMessage_({ 600 this.postMessage_({
611 type: 'getCredentialsFromAuthCode', 601 type: 'getCredentialsFromAuthCode',
612 authorizationCode: authorizationCode 602 authorizationCode: authorizationCode
613 }, onDone, onError); 603 }, onDone, onError);
614 }; 604 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698