Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / remoting / webapp / crd / js / crd_event_handlers.js
blob782004da3814a6b3706310e1f4de0e9a6d5214d9
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
3 // found in the LICENSE file.
5 'use strict';
7 /** @suppress {duplicate} */
8 var remoting = remoting || {};
10 remoting.initElementEventHandlers = function() {
11   var goHome = function() {
12     remoting.setMode(remoting.AppMode.HOME);
13   };
14   /** @type {Array<{event: string, id: string, fn: function(Event):void}>} */
15   var it2me_actions = [
16       { event: 'click', id: 'cancel-share-button', fn: remoting.cancelShare },
17       { event: 'click', id: 'get-started-it2me',
18         fn: remoting.showIT2MeUiAndSave },
19       { event: 'click', id: 'host-finished-button', fn: goHome },
20       { event: 'click', id: 'share-button', fn: remoting.tryShare }
21   ];
22   /** @type {Array<{event: string, id: string, fn: function(Event):void}>} */
23   var me2me_actions = [
24       { event: 'click', id: 'daemon-pin-cancel', fn: goHome },
25       { event: 'click', id: 'get-started-me2me',
26         fn: remoting.showMe2MeUiAndSave }
27   ];
28   /** @type {Array<{event: string, id: string, fn: function(Event):void}>} */
29   var host_actions = [
30       { event: 'click', id: 'close-paired-client-manager-dialog', fn: goHome },
31       { event: 'click', id: 'host-config-done-dismiss', fn: goHome },
32       { event: 'click', id: 'host-config-error-dismiss', fn: goHome },
33       { event: 'click', id: 'open-paired-client-manager-dialog',
34         fn: remoting.setMode.bind(null,
35                                   remoting.AppMode.HOME_MANAGE_PAIRINGS) },
36       { event: 'click', id: 'stop-sharing-button', fn: remoting.cancelShare }
37   ];
38   /** @type {Array<{event: string, id: string, fn: function(Event):void}>} */
39   var auth_actions = [
40       { event: 'click', id: 'sign-out', fn:remoting.signOut },
41       { event: 'click', id: 'token-refresh-error-ok', fn: goHome },
42       { event: 'click', id: 'token-refresh-error-sign-in',
43         fn: remoting.handleAuthFailureAndRelaunch }
44   ];
45   registerEventListeners(it2me_actions);
46   registerEventListeners(me2me_actions);
47   registerEventListeners(host_actions);
48   registerEventListeners(auth_actions);
51 /**
52  * Sign the user out of Chromoting by clearing (and revoking, if possible) the
53  * OAuth refresh token.
54  *
55  * Also clear all local storage, to avoid leaking information.
56  */
57 remoting.signOut = function() {
58   remoting.oauth2.removeCachedAuthToken().then(function(){
59     chrome.storage.local.clear();
60     remoting.setMode(remoting.AppMode.HOME);
61     window.location.reload();
62   });