[Firefox] Fix newChannel/asyncFetch fallout from bug 1167053

For some reason, https://bugzilla.mozilla.org/show_bug.cgi?id=1167053 changed methods of `NetUtil` yet *again*. This patch thus attempts to handle those changes, while keeping the addon backwards compatible.

I've tested this using all current Firefox versions (Nightly, Aurora/DevEdition, Beta, Release, ESR), and things still appears to work correctly.
This commit is contained in:
Jonas Jenwald 2015-05-27 12:55:45 +02:00
parent 82536f8fa6
commit 5743b4f558

View File

@ -183,27 +183,38 @@ function makeContentReadable(obj, window) {
function createNewChannel(uri, node, principal) { function createNewChannel(uri, node, principal) {
//#if !MOZCENTRAL //#if !MOZCENTRAL
if (!NetUtil.newChannel2) { if (NetUtil.newChannel2) {
return NetUtil.newChannel2(uri,
null,
null,
node, // aLoadingNode
principal, // aLoadingPrincipal
null, // aTriggeringPrincipal
Ci.nsILoadInfo.SEC_NORMAL,
Ci.nsIContentPolicy.TYPE_OTHER);
}
// The signature of `NetUtil.newChannel` changed in Firefox 38,
// see https://bugzilla.mozilla.org/show_bug.cgi?id=1125618.
var ffVersion = parseInt(Services.appinfo.platformVersion);
if (ffVersion < 38) {
return NetUtil.newChannel(uri); return NetUtil.newChannel(uri);
} }
//#endif //#endif
return NetUtil.newChannel2(uri, return NetUtil.newChannel({
null, uri: uri,
null, loadingNode: node,
node, // aLoadingNode loadingPrincipal: principal,
principal, // aLoadingPrincipal contentPolicyType: Ci.nsIContentPolicy.TYPE_OTHER,
null, // aTriggeringPrincipal });
Ci.nsILoadInfo.SEC_NORMAL,
Ci.nsIContentPolicy.TYPE_OTHER);
} }
function asyncFetchChannel(channel, callback) { function asyncFetchChannel(channel, callback) {
//#if !MOZCENTRAL //#if !MOZCENTRAL
if (!NetUtil.newChannel2) { if (NetUtil.asyncFetch2) {
return NetUtil.asyncFetch(channel, callback); return NetUtil.asyncFetch2(channel, callback);
} }
//#endif //#endif
return NetUtil.asyncFetch2(channel, callback); return NetUtil.asyncFetch(channel, callback);
} }
// PDF data storage // PDF data storage