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

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

Issue 888323002: Improve HRD first run experience (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
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 * A module that contains basic utility components and methods for the 7 * A module that contains basic utility components and methods for the
8 * chromoting project 8 * chromoting project
9 * 9 *
10 */ 10 */
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 return url; 153 return url;
154 } 154 }
155 var queryParameters = []; 155 var queryParameters = [];
156 for (var key in opt_params) { 156 for (var key in opt_params) {
157 queryParameters.push(encodeURIComponent(key) + "=" + 157 queryParameters.push(encodeURIComponent(key) + "=" +
158 encodeURIComponent(opt_params[key])); 158 encodeURIComponent(opt_params[key]));
159 } 159 }
160 return url + '?' + queryParameters.join('&'); 160 return url + '?' + queryParameters.join('&');
161 }; 161 };
162 162
163
164 /**
165 * @return {Object.<string, string>} The URL parameters.
166 */
167 base.getUrlParameters = function() {
kelvinp 2015/02/03 01:15:33 Grouping it closer to the other url utilities
168 var result = {};
169 var parts = window.location.search.substring(1).split('&');
170 for (var i = 0; i < parts.length; i++) {
171 var pair = parts[i].split('=');
172 result[pair[0]] = decodeURIComponent(pair[1]);
173 }
174 return result;
175 };
176
163 /** 177 /**
164 * Convert special characters (e.g. &, < and >) to HTML entities. 178 * Convert special characters (e.g. &, < and >) to HTML entities.
165 * 179 *
166 * @param {string} str 180 * @param {string} str
167 * @return {string} 181 * @return {string}
168 */ 182 */
169 base.escapeHTML = function(str) { 183 base.escapeHTML = function(str) {
170 var div = document.createElement('div'); 184 var div = document.createElement('div');
171 div.appendChild(document.createTextNode(str)); 185 div.appendChild(document.createTextNode(str));
172 return div.innerHTML; 186 return div.innerHTML;
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 * 451 *
438 * @param {string} string 452 * @param {string} string
439 * @return {ArrayBuffer} 453 * @return {ArrayBuffer}
440 */ 454 */
441 base.encodeUtf8 = function(string) { 455 base.encodeUtf8 = function(string) {
442 var utf8String = unescape(encodeURIComponent(string)); 456 var utf8String = unescape(encodeURIComponent(string));
443 var result = new Uint8Array(utf8String.length); 457 var result = new Uint8Array(utf8String.length);
444 for (var i = 0; i < utf8String.length; i++) 458 for (var i = 0; i < utf8String.length; i++)
445 result[i] = utf8String.charCodeAt(i); 459 result[i] = utf8String.charCodeAt(i);
446 return result.buffer; 460 return result.buffer;
447 } 461 };
448 462
449 /** 463 /**
450 * Decodes UTF-8 string from ArrayBuffer. 464 * Decodes UTF-8 string from ArrayBuffer.
451 * 465 *
452 * @param {ArrayBuffer} buffer 466 * @param {ArrayBuffer} buffer
453 * @return {string} 467 * @return {string}
454 */ 468 */
455 base.decodeUtf8 = function(buffer) { 469 base.decodeUtf8 = function(buffer) {
456 return decodeURIComponent( 470 return decodeURIComponent(
457 escape(String.fromCharCode.apply(null, new Uint8Array(buffer)))); 471 escape(String.fromCharCode.apply(null, new Uint8Array(buffer))));
458 } 472 };
459 473
460 /** 474 /**
461 * Generate a nonce, to be used as an xsrf protection token. 475 * Generate a nonce, to be used as an xsrf protection token.
462 * 476 *
463 * @return {string} A URL-Safe Base64-encoded 128-bit random value. */ 477 * @return {string} A URL-Safe Base64-encoded 128-bit random value. */
464 base.generateXsrfToken = function() { 478 base.generateXsrfToken = function() {
465 var random = new Uint8Array(16); 479 var random = new Uint8Array(16);
466 window.crypto.getRandomValues(random); 480 window.crypto.getRandomValues(random);
467 var base64Token = window.btoa(String.fromCharCode.apply(null, random)); 481 var base64Token = window.btoa(String.fromCharCode.apply(null, random));
468 return base64Token.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); 482 return base64Token.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
469 }; 483 };
470 484
471 /** 485 /**
472 * @param {string} jsonString A JSON-encoded string. 486 * @param {string} jsonString A JSON-encoded string.
473 * @return {Object|undefined} The decoded object, or undefined if the string 487 * @return {Object|undefined} The decoded object, or undefined if the string
474 * cannot be parsed. 488 * cannot be parsed.
475 */ 489 */
476 base.jsonParseSafe = function(jsonString) { 490 base.jsonParseSafe = function(jsonString) {
477 try { 491 try {
478 return /** @type {Object} */ (JSON.parse(jsonString)); 492 return /** @type {Object} */ (JSON.parse(jsonString));
479 } catch (err) { 493 } catch (err) {
480 return undefined; 494 return undefined;
481 } 495 }
482 } 496 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698