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

Side by Side Diff: remoting/webapp/background/it2me_helpee_channel.js

Issue 503063004: Hangouts Remote Desktop Part VI - Show confirm dialog before retrieving access code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 unified diff | Download patch
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 * 7 *
8 * It2MeHelpeeChannel relays messages between the Hangouts web page (Hangouts) 8 * It2MeHelpeeChannel relays messages between the Hangouts web page (Hangouts)
9 * and the It2Me Native Messaging Host (It2MeHost) for the helpee (the Hangouts 9 * and the It2Me Native Messaging Host (It2MeHost) for the helpee (the Hangouts
10 * participant who is receiving remoting assistance). 10 * participant who is receiving remoting assistance).
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 /** 273 /**
274 * Prompts the user before starting the It2Me Native Messaging Host. This 274 * Prompts the user before starting the It2Me Native Messaging Host. This
275 * ensures that even if Hangouts is compromised, an attacker cannot start the 275 * ensures that even if Hangouts is compromised, an attacker cannot start the
276 * host without explicit user confirmation. 276 * host without explicit user confirmation.
277 * 277 *
278 * @return {Promise} A promise that resolves when the user clicks accept on the 278 * @return {Promise} A promise that resolves when the user clicks accept on the
279 * dialog. 279 * dialog.
280 * @private 280 * @private
281 */ 281 */
282 remoting.It2MeHelpeeChannel.prototype.showConfirmDialog_ = function() { 282 remoting.It2MeHelpeeChannel.prototype.showConfirmDialog_ = function() {
283 /** 283 var message = l10n.getTranslationOrError(
284 * @param {function(*=):void} resolve 284 /*i18n-content*/'HANGOUTS_CONFIRM_DIALOG_MESSAGE');
285 * @param {function(*=):void} reject 285
286 */ 286 if (base.isAppsV2()) {
287 return new Promise(function(resolve, reject) { 287 /**
288 // TODO(kelvinp): The existing implementation doesn't work in the v2 app as 288 * @param {function(*=):void} resolve
289 // window.confirm is blacklisted. Implement the dialog using 289 * @param {function(*=):void} reject
290 // chrome.app.window instead (crbug.com/405139). 290 */
291 if (base.isAppsV2()) { 291 return new Promise(function(resolve, reject) {
292 resolve(); 292 /** @param {number} result */
293 // The unlocalized string will be replaced in (crbug.com/405139). 293 function confirmDialogCallback(result) {
294 } else if (window.confirm('Accept help?')) { 294 if (result === 1) {
295 resolve(); 295 resolve();
296 } else { 296 } else {
297 reject(new Error(remoting.Error.CANCELLED)); 297 reject(new Error(remoting.Error.CANCELLED));
298 } 298 }
299 }); 299 }
300
301 remoting.MessageWindow.showConfirmWindow(
302 '', // Empty string to use the package name as the dialog title.
303 message,
304 l10n.getTranslationOrError(
305 /*i18n-content*/'HANGOUTS_CONFIRM_DIALOG_ACCEPT'),
306 l10n.getTranslationOrError(
307 /*i18n-content*/'HANGOUTS_CONFIRM_DIALOG_DECLINE'),
308 confirmDialogCallback
309 );
310 });
311 } else if (window.confirm(message)) {
312 return Promise.resolve();
313 } else {
314 return Promise.reject(new Error(remoting.Error.CANCELLED));
315 }
300 }; 316 };
301 317
302 /** 318 /**
303 * @return {Promise} A promise that resolves when the host is initialized. 319 * @return {Promise} A promise that resolves when the host is initialized.
304 * @private 320 * @private
305 */ 321 */
306 remoting.It2MeHelpeeChannel.prototype.initializeHost_ = function() { 322 remoting.It2MeHelpeeChannel.prototype.initializeHost_ = function() {
307 /** @type {remoting.It2MeHostFacade} */ 323 /** @type {remoting.It2MeHostFacade} */
308 var host = this.host_; 324 var host = this.host_;
309 325
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 435
420 console.error('Error responding to message method:' + 436 console.error('Error responding to message method:' +
421 (incomingMessage ? incomingMessage.method : 'null') + 437 (incomingMessage ? incomingMessage.method : 'null') +
422 ' error:' + error); 438 ' error:' + error);
423 this.hangoutPort_.postMessage({ 439 this.hangoutPort_.postMessage({
424 method: remoting.It2MeHelpeeChannel.HangoutMessageTypes.ERROR, 440 method: remoting.It2MeHelpeeChannel.HangoutMessageTypes.ERROR,
425 message: error, 441 message: error,
426 request: incomingMessage 442 request: incomingMessage
427 }); 443 });
428 }; 444 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698