summaryrefslogtreecommitdiffstats
path: root/application/palemoon/components/sessionstore/SessionStore.jsm
diff options
context:
space:
mode:
authorJustOff <Off.Just.Off@gmail.com>2018-04-30 17:26:04 +0300
committerJustOff <Off.Just.Off@gmail.com>2018-04-30 17:26:04 +0300
commit1b50c57865c8bc11f9d6a196dc7474de0620791e (patch)
tree6669293ea0381b736624b9cb013f2283b6e425d2 /application/palemoon/components/sessionstore/SessionStore.jsm
parent6bca91e94001bdc8cbdc3ce553f6951dbcb0cbd7 (diff)
downloadUXP-1b50c57865c8bc11f9d6a196dc7474de0620791e.tar
UXP-1b50c57865c8bc11f9d6a196dc7474de0620791e.tar.gz
UXP-1b50c57865c8bc11f9d6a196dc7474de0620791e.tar.lz
UXP-1b50c57865c8bc11f9d6a196dc7474de0620791e.tar.xz
UXP-1b50c57865c8bc11f9d6a196dc7474de0620791e.zip
[PALEMOON] Replace serializing `nsISHEntry.owner` with `nsISHEntry.triggeringPrincipal`
Diffstat (limited to 'application/palemoon/components/sessionstore/SessionStore.jsm')
-rw-r--r--application/palemoon/components/sessionstore/SessionStore.jsm30
1 files changed, 19 insertions, 11 deletions
diff --git a/application/palemoon/components/sessionstore/SessionStore.jsm b/application/palemoon/components/sessionstore/SessionStore.jsm
index b8d126e21..4f95f10a7 100644
--- a/application/palemoon/components/sessionstore/SessionStore.jsm
+++ b/application/palemoon/components/sessionstore/SessionStore.jsm
@@ -2085,7 +2085,7 @@ var SessionStoreInternal = {
}
catch (ex) { debug(ex); } // POSTDATA is tricky - especially since some extensions don't get it right
- if (aEntry.owner) {
+ if (aEntry.triggeringPrincipal) {
// Not catching anything specific here, just possible errors
// from writeCompoundObject and the like.
try {
@@ -2094,19 +2094,19 @@ var SessionStoreInternal = {
var pipe = Cc["@mozilla.org/pipe;1"].createInstance(Ci.nsIPipe);
pipe.init(false, false, 0, 0xffffffff, null);
binaryStream.setOutputStream(pipe.outputStream);
- binaryStream.writeCompoundObject(aEntry.owner, Ci.nsISupports, true);
+ binaryStream.writeCompoundObject(aEntry.triggeringPrincipal, Ci.nsIPrincipal, true);
binaryStream.close();
// Now we want to read the data from the pipe's input end and encode it.
var scriptableStream = Cc["@mozilla.org/binaryinputstream;1"].
createInstance(Ci.nsIBinaryInputStream);
scriptableStream.setInputStream(pipe.inputStream);
- var ownerBytes =
+ var triggeringPrincipalBytes =
scriptableStream.readByteArray(scriptableStream.available());
// We can stop doing base64 encoding once our serialization into JSON
// is guaranteed to handle all chars in strings, including embedded
// nulls.
- entry.owner_b64 = btoa(String.fromCharCode.apply(null, ownerBytes));
+ entry.triggeringPrincipal_b64 = btoa(String.fromCharCode.apply(null, triggeringPrincipalBytes));
}
catch (ex) { debug(ex); }
}
@@ -3400,16 +3400,24 @@ var SessionStoreInternal = {
}
}
- if (aEntry.owner_b64) {
- var ownerInput = Cc["@mozilla.org/io/string-input-stream;1"].
- createInstance(Ci.nsIStringInputStream);
- var binaryData = atob(aEntry.owner_b64);
- ownerInput.setData(binaryData, binaryData.length);
+ // The field aEntry.owner_b64 got renamed to aEntry.triggeringPricipal_b64 in
+ // Bug 1286472. To remain backward compatible we still have to support that
+ // field for a few cycles before we can remove it within Bug 1289785.
+ if (aEntry.owner_b64) {
+ aEntry.triggeringPrincipal_b64 = aEntry.owner_b64;
+ delete aEntry.owner_b64;
+ }
+
+ if (aEntry.triggeringPrincipal_b64) {
+ var triggeringPrincipalInput = Cc["@mozilla.org/io/string-input-stream;1"].
+ createInstance(Ci.nsIStringInputStream);
+ var binaryData = atob(aEntry.triggeringPrincipal_b64);
+ triggeringPrincipalInput.setData(binaryData, binaryData.length);
var binaryStream = Cc["@mozilla.org/binaryinputstream;1"].
createInstance(Ci.nsIObjectInputStream);
- binaryStream.setInputStream(ownerInput);
+ binaryStream.setInputStream(triggeringPrincipalInput);
try { // Catch possible deserialization exceptions
- shEntry.owner = binaryStream.readObject(true);
+ shEntry.triggeringPrincipal = binaryStream.readObject(true);
} catch (ex) { debug(ex); }
}