diff --git a/extensions/firefox/content/PdfStreamConverter.jsm b/extensions/firefox/content/PdfStreamConverter.jsm index 785f4a34f..f36349e29 100644 --- a/extensions/firefox/content/PdfStreamConverter.jsm +++ b/extensions/firefox/content/PdfStreamConverter.jsm @@ -65,32 +65,15 @@ function getFindBar(domWindow) { if (PdfjsContentUtils.isRemote) { throw new Error('FindBar is not accessible from the content process.'); } - var browser = getContainingBrowser(domWindow); try { + var browser = getContainingBrowser(domWindow); var tabbrowser = browser.getTabBrowser(); - var tab; -//#if MOZCENTRAL - tab = tabbrowser.getTabForBrowser(browser); -//#else - if (tabbrowser.getTabForBrowser) { - tab = tabbrowser.getTabForBrowser(browser); - } else { - // _getTabForBrowser is depreciated in Firefox 35, see - // https://bugzilla.mozilla.org/show_bug.cgi?id=1039500. - tab = tabbrowser._getTabForBrowser(browser); - } -//#endif + var tab = tabbrowser.getTabForBrowser(browser); return tabbrowser.getFindBar(tab); } catch (e) { - try { - // FF22 has no _getTabForBrowser, and FF24 has no getFindBar - var chromeWindow = browser.ownerDocument.defaultView; - return chromeWindow.gFindBar; - } catch (ex) { - // Suppress errors for PDF files opened in the bookmark sidebar, see - // https://bugzilla.mozilla.org/show_bug.cgi?id=1248959. - return null; - } + // Suppress errors for PDF files opened in the bookmark sidebar, see + // https://bugzilla.mozilla.org/show_bug.cgi?id=1248959. + return null; } } @@ -165,26 +148,6 @@ function getLocalizedString(strings, id, property) { return id; } -function makeContentReadable(obj, window) { -//#if MOZCENTRAL - /* jshint -W027 */ - return Cu.cloneInto(obj, window); -//#else - if (Cu.cloneInto) { - return Cu.cloneInto(obj, window); - } - if (typeof obj !== 'object' || obj === null) { - return obj; - } - var expose = {}; - for (let k in obj) { - expose[k] = 'r'; - } - obj.__exposedProps__ = expose; - return obj; -//#endif -} - function createNewChannel(uri, node, principal) { //#if !MOZCENTRAL if (NetUtil.newChannel2) { @@ -197,12 +160,6 @@ function createNewChannel(uri, node, principal) { 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); - } //#endif return NetUtil.newChannel({ uri: uri, @@ -294,13 +251,6 @@ function ChromeActions(domWindow, contentDispositionFilename) { ChromeActions.prototype = { isInPrivateBrowsing: function() { -//#if !MOZCENTRAL - if (!PrivateBrowsingUtils.isContentWindowPrivate) { - // pbu.isContentWindowPrivate was not supported prior Firefox 35. - // (https://bugzilla.mozilla.org/show_bug.cgi?id=1069059) - return PrivateBrowsingUtils.isWindowPrivate(this.domWindow); - } -//#endif return PrivateBrowsingUtils.isContentWindowPrivate(this.domWindow); }, download: function(data, sendResponse) { @@ -423,11 +373,7 @@ ChromeActions.prototype = { return (!!prefBrowser && prefGfx); }, supportsDocumentColors: function() { - if (getIntPref('browser.display.document_color_use', 0) === 2 || - !getBoolPref('browser.display.use_document_colors', true)) { - return false; - } - return true; + return getIntPref('browser.display.document_color_use', 0) !== 2; }, supportedMouseWheelZoomModifierKeys: function() { return { @@ -839,7 +785,7 @@ RequestListener.prototype.receive = function(event) { var response; if (sync) { response = actions[action].call(this.actions, data); - event.detail.response = makeContentReadable(response, doc.defaultView); + event.detail.response = Cu.cloneInto(response, doc.defaultView); } else { if (!event.detail.responseExpected) { doc.documentElement.removeChild(message); @@ -848,8 +794,7 @@ RequestListener.prototype.receive = function(event) { response = function sendResponse(response) { try { var listener = doc.createEvent('CustomEvent'); - let detail = makeContentReadable({response: response}, - doc.defaultView); + let detail = Cu.cloneInto({ response: response }, doc.defaultView); listener.initCustomEvent('pdf.js.response', true, false, detail); return message.dispatchEvent(listener); } catch (e) { @@ -893,7 +838,7 @@ FindEventManager.prototype.receiveMessage = function(msg) { var type = msg.data.type; var contentWindow = this.contentWindow; - detail = makeContentReadable(detail, contentWindow); + detail = Cu.cloneInto(detail, contentWindow); var forward = contentWindow.document.createEvent('CustomEvent'); forward.initCustomEvent(type, true, true, detail); contentWindow.dispatchEvent(forward); @@ -1016,11 +961,6 @@ PdfStreamConverter.prototype = { aRequest.setResponseHeader('Content-Security-Policy', '', false); aRequest.setResponseHeader('Content-Security-Policy-Report-Only', '', false); -//#if !MOZCENTRAL - aRequest.setResponseHeader('X-Content-Security-Policy', '', false); - aRequest.setResponseHeader('X-Content-Security-Policy-Report-Only', '', - false); -//#endif } PdfJsTelemetry.onViewerIsUsed(); @@ -1085,26 +1025,22 @@ PdfStreamConverter.prototype = { channel.loadGroup = aRequest.loadGroup; channel.loadInfo.originAttributes = aRequest.loadInfo.originAttributes; - // We can use resource principal when data is fetched by the chrome - // make sure we reuse the origin attributes from the request channel to keep - // isolation consistent. - // e.g. useful for NoScript + // We can use the resource principal when data is fetched by the chrome, + // e.g. useful for NoScript. Make make sure we reuse the origin attributes + // from the request channel to keep isolation consistent. var ssm = Cc['@mozilla.org/scriptsecuritymanager;1'] .getService(Ci.nsIScriptSecurityManager); var uri = NetUtil.newURI(PDF_VIEWER_WEB_PAGE, null, null); - var attrs = aRequest.loadInfo.originAttributes; var resourcePrincipal; //#if MOZCENTRAL - resourcePrincipal = ssm.createCodebasePrincipal(uri, attrs); + resourcePrincipal = + ssm.createCodebasePrincipal(uri, aRequest.loadInfo.originAttributes); //#else - // FF16 and below had getCodebasePrincipal, it was replaced by - // getNoAppCodebasePrincipal (bug 758258). - // FF43 then replaced getNoAppCodebasePrincipal with - // createCodebasePrincipal (bug 1165272). + // FF43 replaced `getCodebasePrincipal` with `createCodebasePrincipal`, + // see https://bugzilla.mozilla.org/show_bug.cgi?id=1165272. if ('createCodebasePrincipal' in ssm) { - resourcePrincipal = ssm.createCodebasePrincipal(uri, attrs); - } else if ('getNoAppCodebasePrincipal' in ssm) { - resourcePrincipal = ssm.getNoAppCodebasePrincipal(uri); + resourcePrincipal = + ssm.createCodebasePrincipal(uri, aRequest.loadInfo.originAttributes); } else { resourcePrincipal = ssm.getCodebasePrincipal(uri); } diff --git a/extensions/firefox/content/PdfjsChromeUtils.jsm b/extensions/firefox/content/PdfjsChromeUtils.jsm index 5b3e28d3a..7adb549fd 100644 --- a/extensions/firefox/content/PdfjsChromeUtils.jsm +++ b/extensions/firefox/content/PdfjsChromeUtils.jsm @@ -170,18 +170,7 @@ var PdfjsChromeUtils = { _findbarFromMessage: function(aMsg) { let browser = aMsg.target; let tabbrowser = browser.getTabBrowser(); - let tab; -//#if MOZCENTRAL - tab = tabbrowser.getTabForBrowser(browser); -//#else - if (tabbrowser.getTabForBrowser) { - tab = tabbrowser.getTabForBrowser(browser); - } else { - // _getTabForBrowser is deprecated in Firefox 35, see - // https://bugzilla.mozilla.org/show_bug.cgi?id=1039500. - tab = tabbrowser._getTabForBrowser(browser); - } -//#endif + let tab = tabbrowser.getTabForBrowser(browser); return tabbrowser.getFindBar(tab); }, diff --git a/extensions/firefox/install.rdf b/extensions/firefox/install.rdf index eb683b96b..2b874cec5 100644 --- a/extensions/firefox/install.rdf +++ b/extensions/firefox/install.rdf @@ -13,8 +13,8 @@ {ec8030f7-c20a-464f-9b0e-13a3a9e97384} - 10.0 - 46.0a1 + 38.0 + 50.0a1 @@ -31,8 +31,8 @@ {aa3c5121-dab2-40e2-81ca-7ea25febc110} - 11.0 - 46.0a1 + 38.0 + 50.0a1 diff --git a/extensions/firefox/update.rdf b/extensions/firefox/update.rdf index 29c826518..498f47eac 100644 --- a/extensions/firefox/update.rdf +++ b/extensions/firefox/update.rdf @@ -14,8 +14,8 @@ {ec8030f7-c20a-464f-9b0e-13a3a9e97384} - 10.0 - 46.0 + 38.0 + 50.0 https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi @@ -25,8 +25,8 @@ {aa3c5121-dab2-40e2-81ca-7ea25febc110} - 10.0 - 46.0 + 38.0 + 50.0 https://raw.githubusercontent.com/mozilla/pdf.js/gh-pages/extensions/firefox/pdf.js.xpi