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

Side by Side Diff: remoting/webapp/me2mom/wcs.js

Issue 8336004: Improve web-app type safety. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 2 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 (c) 2011 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2011 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 /** 6 /**
7 * @fileoverview 7 * @fileoverview
8 * A class that provides an interface to a WCS connection. 8 * A class that provides an interface to a WCS connection.
9 */ 9 */
10 10
11 'use strict'; 11 'use strict';
12 12
13 /** @suppress {duplicate} */ 13 /** @suppress {duplicate} */
14 var remoting = remoting || {}; 14 var remoting = remoting || {};
15 15
16 (function() { 16 /** @type {remoting.Wcs} */
17 remoting.wcs = null;
18
17 /** 19 /**
18 * @constructor 20 * @constructor
19 * 21 *
20 * @param {remoting.WcsIqClient} wcsIqClient The WCS client. 22 * @param {remoting.WcsIqClient} wcsIqClient The WCS client.
21 * @param {string} token An OAuth2 access token. 23 * @param {string} token An OAuth2 access token.
22 * @param {function(): void} onReady A function called when the WCS client has 24 * @param {function(): void} onReady A function called when the WCS client has
23 * received a full JID. 25 * received a full JID.
24 * @param {function(function(string): void): void} refreshToken A function 26 * @param {function(function(string): void): void} refreshToken A function
25 * called when this object wants to see whether an updated access token is 27 * called when this object wants to see whether an updated access token is
26 * available. The passed function will be called asynchronously with a 28 * available. The passed function will be called asynchronously with a
(...skipping 21 matching lines...) Expand all
48 */ 50 */
49 this.onReady_ = onReady; 51 this.onReady_ = onReady;
50 52
51 /** 53 /**
52 * The full JID of the WCS client. 54 * The full JID of the WCS client.
53 * @type {string} 55 * @type {string}
54 * @private 56 * @private
55 */ 57 */
56 this.clientFullJid_ = ''; 58 this.clientFullJid_ = '';
57 59
60 /** @type {remoting.Wcs} */
58 var that = this; 61 var that = this;
59 /** 62 /**
60 * A timer that polls for an updated access token. 63 * A timer that polls for an updated access token.
61 * @type {number} 64 * @type {number}
62 * @private 65 * @private
63 */ 66 */
64 this.pollForUpdatedToken_ = setInterval( 67 this.pollForUpdatedToken_ = setInterval(
65 function() { refreshToken(that.setToken_); }, 68 function() { refreshToken(that.setToken_); },
66 60 * 1000); 69 60 * 1000);
67 70
68 /** 71 /**
69 * A function called when an IQ stanza is received. 72 * A function called when an IQ stanza is received.
70 * @type {function(string): void} 73 * @param {string} stanza The IQ stanza.
71 * @private 74 * @private
72 */ 75 */
73 this.onIq_ = function(stanza) {}; 76 this.onIq_ = function(stanza) {};
74 77
75 // Handle messages from the WcsIqClient. 78 // Handle messages from the WcsIqClient.
76 this.wcsIqClient_.setOnMessage(function(msg) { that.onMessage_(msg); }); 79 /** @param {Array.<string>} msg An array of message strings. */
80 var onMessage = function(msg) { that.onMessage_(msg); };
81 this.wcsIqClient_.setOnMessage(onMessage);
77 82
78 // Start the WcsIqClient. 83 // Start the WcsIqClient.
79 this.wcsIqClient_.connectChannel(); 84 this.wcsIqClient_.connectChannel();
80 }; 85 };
81 86
82 /** 87 /**
83 * Passes an access token to the WcsIqClient, if the token has been updated. 88 * Passes an access token to the WcsIqClient, if the token has been updated.
84 * 89 *
85 * @param {string} tokenNew A (possibly updated) access token. 90 * @param {string} tokenNew A (possibly updated) access token.
86 * @return {void} Nothing. 91 * @return {void} Nothing.
87 * @private 92 * @private
88 */ 93 */
89 remoting.Wcs.prototype.setToken_ = function(tokenNew) { 94 remoting.Wcs.prototype.setToken_ = function(tokenNew) {
90 if (tokenNew != this.token_) { 95 if (tokenNew != this.token_) {
91 this.token_ = tokenNew; 96 this.token_ = tokenNew;
92 this.wcsIqClient_.updateAccessToken(this.token_); 97 this.wcsIqClient_.updateAccessToken(this.token_);
93 } 98 }
94 }; 99 };
95 100
96 /** 101 /**
97 * Handles a message coming from the WcsIqClient. 102 * Handles a message coming from the WcsIqClient.
98 * 103 *
99 * @param {Array} msg The message. 104 * @param {Array.<string>} msg The message.
100 * @return {void} Nothing. 105 * @return {void} Nothing.
101 * @private 106 * @private
102 */ 107 */
103 remoting.Wcs.prototype.onMessage_ = function(msg) { 108 remoting.Wcs.prototype.onMessage_ = function(msg) {
104 if (msg[0] == 'is') { 109 if (msg[0] == 'is') {
105 this.onIq_(msg[1]); 110 this.onIq_(msg[1]);
106 } else if (msg[0] == 'cfj') { 111 } else if (msg[0] == 'cfj') {
107 this.clientFullJid_ = msg[1]; 112 this.clientFullJid_ = msg[1];
108 remoting.debug.log('Received JID: ' + this.clientFullJid_); 113 remoting.debug.log('Received JID: ' + this.clientFullJid_);
109 this.onReady_(); 114 this.onReady_();
(...skipping 23 matching lines...) Expand all
133 /** 138 /**
134 * Sets the function called when an IQ stanza is received. 139 * Sets the function called when an IQ stanza is received.
135 * 140 *
136 * @param {function(string): void} onIq The function called when an IQ stanza 141 * @param {function(string): void} onIq The function called when an IQ stanza
137 * is received. 142 * is received.
138 * @return {void} Nothing. 143 * @return {void} Nothing.
139 */ 144 */
140 remoting.Wcs.prototype.setOnIq = function(onIq) { 145 remoting.Wcs.prototype.setOnIq = function(onIq) {
141 this.onIq_ = onIq; 146 this.onIq_ = onIq;
142 }; 147 };
143
144 }());
OLDNEW
« no previous file with comments | « remoting/webapp/me2mom/viewer_plugin_proto.js ('k') | remoting/webapp/me2mom/wcs_iq_client_proto.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698