From 3f9648750b03ba5f10297ff02c13bf9cef37f9c6 Mon Sep 17 00:00:00 2001 From: Mark Donnelly Date: Wed, 3 Dec 2014 12:28:52 -0500 Subject: [PATCH] Handle errors of garbled JSON sent to the native host --- chrome/app/navigator.gss.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/chrome/app/navigator.gss.js b/chrome/app/navigator.gss.js index 4a2e09c..a2ed28c 100644 --- a/chrome/app/navigator.gss.js +++ b/chrome/app/navigator.gss.js @@ -67,7 +67,7 @@ var GSSEap = (function () /* This message is destined for us only if all the following apply: * - The data.method_name is one of the methods implemented by this * object - * - data.return_values exists + * - data.return_values exists or data.error_mssage exists * - data.cookies exists * - One of my callbacks matches the nonce in * data.cookies.navigator_gss_tag @@ -78,7 +78,8 @@ var GSSEap = (function () method = event.data.method; if ( ( -1 == this.implemented_methods.indexOf(method) ) || - ("undefined" == typeof (event.data.return_values)) || + ( ("undefined" == typeof (event.data.return_values) ) && + ("undefined" == typeof (event.data.error_message) ) ) || ("undefined" == typeof (event.data.cookies))) { return; @@ -96,7 +97,11 @@ var GSSEap = (function () app_tag = event.data.cookies.app_tag; error = this.errors[nonce] || this.default_error; - if (this.gss_error(event.data.return_values.major_status)) + if ("undefined" != typeof(event.data.error_message) ) + { + error(-1, -1, "Error parsing message: " + event.data.error_message, app_tag); + } + else if (this.gss_error(event.data.return_values.major_status)) { var errMsg = "Error during " + method + ": " + "Major status message: " + -- 2.1.4