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

Unified Diff: remoting/webapp/host_controller.js

Issue 15623002: Don't serialize config dictionary in Native Messaging interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/host/setup/native_messaging_host.cc ('k') | remoting/webapp/host_dispatcher.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/host_controller.js
diff --git a/remoting/webapp/host_controller.js b/remoting/webapp/host_controller.js
index 166017d101bacc1fc1c1068bb249bfdc076cb2c8..a92aec7c98e312d959a232ee8b54c25598af4c2f 100644
--- a/remoting/webapp/host_controller.js
+++ b/remoting/webapp/host_controller.js
@@ -138,14 +138,14 @@ remoting.HostController.prototype.start = function(hostPin, consent, callback) {
*/
function startHostWithHash(hostName, publicKey, privateKey, xhr,
hostSecretHash) {
- var hostConfig = JSON.stringify({
+ var hostConfig = {
xmpp_login: remoting.identity.getCachedEmail(),
oauth_refresh_token: remoting.oauth2.exportRefreshToken(),
host_id: newHostId,
host_name: hostName,
host_secret_hash: hostSecretHash,
private_key: privateKey
- });
+ };
/** @param {remoting.HostController.AsyncResult} result */
var onStartDaemon = function(result) {
onStarted(callback, result, hostName, publicKey);
@@ -245,29 +245,14 @@ remoting.HostController.prototype.stop = function(callback) {
};
/**
- * Parse a stringified host configuration and return it as a dictionary if it
- * is well-formed and contains both host_id and xmpp_login keys. null is
- * returned if either key is missing, or if the configuration is corrupt.
- * @param {string} configStr The host configuration, JSON encoded to a string.
- * @return {Object.<string,string>|null} The host configuration.
+ * Check the host configuration is valid (non-null, and contains both host_id
+ * and xmpp_login keys).
+ * @param {Object} config The host configuration.
+ * @return {boolean} True if it is valid.
*/
-function parseHostConfig_(configStr) {
- var config = /** @type {Object.<string,string>} */ jsonParseSafe(configStr);
- if (config &&
- typeof config['host_id'] == 'string' &&
- typeof config['xmpp_login'] == 'string') {
- return config;
- } else {
- // {} means that host is not configured; '' means that the config file could
- // not be read.
- // TODO(jamiewalch): '' is expected if the host isn't installed, but should
- // be reported as an error otherwise. Fix this once we have an event-based
- // daemon state mechanism.
- if (configStr != '{}' && configStr != '') {
- console.error('Invalid getDaemonConfig response.');
- }
- }
- return null;
+function isHostConfigValid_(config) {
+ return !!config && typeof config['host_id'] == 'string' &&
+ typeof config['xmpp_login'] == 'string';
}
/**
@@ -280,27 +265,27 @@ remoting.HostController.prototype.updatePin = function(newPin, callback) {
/** @type {remoting.HostController} */
var that = this;
- /** @param {string} configStr */
- function onConfig(configStr) {
- var config = parseHostConfig_(configStr);
- if (!config) {
+ /** @param {Object} config */
+ function onConfig(config) {
+ if (!isHostConfigValid_(config)) {
callback(remoting.HostController.AsyncResult.FAILED);
return;
}
+ /** @type {string} */
var hostId = config['host_id'];
that.hostDispatcher_.getPinHash(hostId, newPin, updateDaemonConfigWithHash);
}
/** @param {string} pinHash */
function updateDaemonConfigWithHash(pinHash) {
- var newConfig = JSON.stringify({
- host_secret_hash: pinHash
- });
+ var newConfig = {
+ host_secret_hash: pinHash
+ };
that.hostDispatcher_.updateDaemonConfig(newConfig, callback);
}
// TODO(sergeyu): When crbug.com/121518 is fixed: replace this call
- // with an upriveleged version if that is necessary.
+ // with an unprivileged version if that is necessary.
this.hostDispatcher_.getDaemonConfig(onConfig);
};
@@ -322,12 +307,11 @@ remoting.HostController.prototype.getLocalHostState = function(onDone) {
remoting.HostController.prototype.getLocalHostId = function(onDone) {
/** @type {remoting.HostController} */
var that = this;
- /** @param {string} configStr */
- function onConfig(configStr) {
- var config = parseHostConfig_(configStr);
+ /** @param {Object} config */
+ function onConfig(config) {
var hostId = null;
- if (config) {
- hostId = config['host_id'];
+ if (isHostConfigValid_(config)) {
+ hostId = /** @type {string} */ config['host_id'];
}
onDone(hostId);
};
« no previous file with comments | « remoting/host/setup/native_messaging_host.cc ('k') | remoting/webapp/host_dispatcher.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698