From a01556665e4a678c4ec7043cc4a30694046dcb3e Mon Sep 17 00:00:00 2001 From: Rob Wu Date: Fri, 31 Jan 2014 17:05:42 +0100 Subject: [PATCH] Firefox addon: Let XHR respect private mode --- .../firefox/components/PdfStreamConverter.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/extensions/firefox/components/PdfStreamConverter.js b/extensions/firefox/components/PdfStreamConverter.js index 81f4b6367..5b0854353 100644 --- a/extensions/firefox/components/PdfStreamConverter.js +++ b/extensions/firefox/components/PdfStreamConverter.js @@ -541,10 +541,23 @@ var RangedChromeActions = (function RangedChromeActionsClosure() { }; originalRequest.visitRequestHeaders(httpHeaderVisitor); + var self = this; + var xhr_onreadystatechange = function xhr_onreadystatechange() { + if (this.readyState === 1) { // LOADING + var netChannel = this.channel; + if ('nsIPrivateBrowsingChannel' in Ci && + netChannel instanceof Ci.nsIPrivateBrowsingChannel) { + var docIsPrivate = self.isInPrivateBrowsing(); + netChannel.setPrivate(docIsPrivate); + } + } + }; var getXhr = function getXhr() { const XMLHttpRequest = Components.Constructor( '@mozilla.org/xmlextras/xmlhttprequest;1'); - return new XMLHttpRequest(); + var xhr = new XMLHttpRequest(); + xhr.addEventListener('readystatechange', xhr_onreadystatechange); + return xhr; }; this.networkManager = new NetworkManager(this.pdfUrl, { @@ -552,7 +565,6 @@ var RangedChromeActions = (function RangedChromeActionsClosure() { getXhr: getXhr }); - var self = this; // If we are in range request mode, this means we manually issued xhr // requests, which we need to abort when we leave the page domWindow.addEventListener('unload', function unload(e) {