diff options
Diffstat (limited to 'mobile/android/chrome/content/PrintHelper.js')
-rw-r--r-- | mobile/android/chrome/content/PrintHelper.js | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/mobile/android/chrome/content/PrintHelper.js b/mobile/android/chrome/content/PrintHelper.js deleted file mode 100644 index 9b071ee92..000000000 --- a/mobile/android/chrome/content/PrintHelper.js +++ /dev/null @@ -1,73 +0,0 @@ -// -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*- -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ -"use strict"; - -XPCOMUtils.defineLazyModuleGetter(this, "Snackbars", "resource://gre/modules/Snackbars.jsm"); - -var PrintHelper = { - init: function() { - Services.obs.addObserver(this, "Print:PDF", false); - }, - - observe: function (aSubject, aTopic, aData) { - let browser = BrowserApp.selectedBrowser; - - switch (aTopic) { - case "Print:PDF": - Messaging.handleRequest(aTopic, aData, (data) => { - return this.generatePDF(browser); - }); - break; - } - }, - - generatePDF: function(aBrowser) { - // Create the final destination file location - let fileName = ContentAreaUtils.getDefaultFileName(aBrowser.contentTitle, aBrowser.currentURI, null, null); - fileName = fileName.trim() + ".pdf"; - - let file = Services.dirsvc.get("TmpD", Ci.nsIFile); - file.append(fileName); - file.createUnique(file.NORMAL_FILE_TYPE, parseInt("666", 8)); - - let printSettings = Cc["@mozilla.org/gfx/printsettings-service;1"].getService(Ci.nsIPrintSettingsService).newPrintSettings; - printSettings.printSilent = true; - printSettings.showPrintProgress = false; - printSettings.printBGImages = false; - printSettings.printBGColors = false; - printSettings.printToFile = true; - printSettings.toFileName = file.path; - printSettings.printFrameType = Ci.nsIPrintSettings.kFramesAsIs; - printSettings.outputFormat = Ci.nsIPrintSettings.kOutputFormatPDF; - - let webBrowserPrint = aBrowser.contentWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIWebBrowserPrint); - - return new Promise((resolve, reject) => { - webBrowserPrint.print(printSettings, { - onStateChange: function(webProgress, request, stateFlags, status) { - // We get two STATE_START calls, one for STATE_IS_DOCUMENT and one for STATE_IS_NETWORK - if (stateFlags & Ci.nsIWebProgressListener.STATE_START && stateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) { - // Let the user know something is happening. Generating the PDF can take some time. - Snackbars.show(Strings.browser.GetStringFromName("alertPrintjobToast"), Snackbars.LENGTH_LONG); - } - - // We get two STATE_STOP calls, one for STATE_IS_DOCUMENT and one for STATE_IS_NETWORK - if (stateFlags & Ci.nsIWebProgressListener.STATE_STOP && stateFlags & Ci.nsIWebProgressListener.STATE_IS_NETWORK) { - if (Components.isSuccessCode(status)) { - // Send the details to Java - resolve({ file: file.path, title: fileName }); - } else { - reject(); - } - } - }, - onProgressChange: function () {}, - onLocationChange: function () {}, - onStatusChange: function () {}, - onSecurityChange: function () {}, - }); - }); - } -}; |