Bug 1429490 - Since nsISerializationHelper.serializeToString may throw, catch the error to prevent loss of session data. r?ckerschb
MozReview-Commit-ID: GOAFT4CpVrR
--- a/toolkit/modules/sessionstore/Utils.jsm
+++ b/toolkit/modules/sessionstore/Utils.jsm
@@ -114,20 +114,27 @@ this.Utils = Object.freeze({
/**
* Serialize principal data.
*
* @param {nsIPrincipal} principal The principal to serialize.
* @return {String} The base64 encoded principal data.
*/
serializePrincipal(principal) {
- if (!principal)
- return null;
+ let serializedPrincipal = null;
- return serializationHelper.serializeToString(principal);
+ try {
+ if (principal) {
+ serializedPrincipal = serializationHelper.serializeToString(principal);
+ }
+ } catch (e) {
+ debug(`Failed to serialize principal '${principal}' ${e}`);
+ }
+
+ return serializedPrincipal;
},
/**
* Deserialize a base64 encoded principal (serialized with
* Utils::serializePrincipal).
*
* @param {String} principal_b64 A base64 encoded serialized principal.
* @return {nsIPrincipal} A deserialized principal.