--- a/browser/components/extensions/ext-tabs.js
+++ b/browser/components/extensions/ext-tabs.js
@@ -743,114 +743,13 @@ this.tabs = class extends ExtensionAPI {
return () => {
tabTracker.off("tab-attached", tabCreated);
tabTracker.off("tab-created", tabCreated);
windowTracker.removeListener("FullZoomChange", zoomListener);
windowTracker.removeListener("TextZoomChange", zoomListener);
};
}).api(),
-
- print() {
- let activeTab = getTabOrActive(null);
- let {PrintUtils} = activeTab.ownerGlobal;
-
- PrintUtils.printWindow(activeTab.linkedBrowser.outerWindowID, activeTab.linkedBrowser);
- },
-
- printPreview() {
- let activeTab = getTabOrActive(null);
- let {
- PrintUtils,
- PrintPreviewListener,
- } = activeTab.ownerGlobal;
-
- return new Promise(resolve => {
- let ppBrowser = PrintUtils._shouldSimplify ?
- PrintPreviewListener.getSimplifiedPrintPreviewBrowser() :
- PrintPreviewListener.getPrintPreviewBrowser();
-
- let mm = ppBrowser.messageManager;
-
- let onEntered = (message) => {
- mm.removeMessageListener("Printing:Preview:Entered", onEntered);
- return resolve(!message.data.failed);
- };
-
- mm.addMessageListener("Printing:Preview:Entered", onEntered);
-
- PrintUtils.printPreview(PrintPreviewListener);
- });
- },
-
- saveAsPDF(pageSettings) {
- let activeTab = getTabOrActive(null);
- let picker = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
-
- picker.init(activeTab.ownerGlobal, "Save As", Components.interfaces.nsIFilePicker.modeSave);
- picker.appendFilter("PDF", "*.pdf");
- picker.defaultExtension = "pdf";
- picker.defaultString = activeTab.linkedBrowser.contentTitle + ".pdf";
-
- return new Promise(resolve => {
- picker.open(function(retval) {
- if (retval == 0 || retval == 2) {
- // OK clicked (retval == 0) or replace confirmed (retval == 2)
- try {
- let fstream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
- fstream.init(picker.file, 0x2A, 0x1B6, 0); // write|create|truncate, file permissions rw-rw-rw- = 0666 = 0x1B6
- fstream.close(); // unlock file
- } catch (e) {
- let promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
- promptService.alert(null, "Warning", retval == 0 ? "Cannot create file." : "Cannot replace file because it is locked.");
- return resolve(retval == 0 ? 3 : 4);
- }
-
- let psService = Components.classes["@mozilla.org/gfx/printsettings-service;1"].getService(Components.interfaces.nsIPrintSettingsService);
- let printSettings = psService.newPrintSettings;
-
- printSettings.printToFile = true;
- printSettings.toFileName = picker.file.path;
-
- printSettings.printSilent = true;
- printSettings.showPrintProgress = false;
-
- printSettings.printFrameType = Components.interfaces.nsIPrintSettings.kFramesAsIs;
- printSettings.outputFormat = Components.interfaces.nsIPrintSettings.kOutputFormatPDF;
-
- if (pageSettings.orientation !== null) printSettings.orientation = pageSettings.orientation;
- if (pageSettings.scaling !== null) printSettings.scaling = pageSettings.scaling;
- if (pageSettings.shrinkToFit !== null) printSettings.shrinkToFit = pageSettings.shrinkToFit;
-
- if (pageSettings.showBGColors !== null) printSettings.printBGColors = pageSettings.showBGColors;
- if (pageSettings.showBGImages !== null) printSettings.printBGImages = pageSettings.showBGImages;
-
- if (pageSettings.paperSizeUnit !== null) printSettings.paperSizeUnit = pageSettings.paperSizeUnit;
- if (pageSettings.paperWidth !== null) printSettings.paperWidth = pageSettings.paperWidth;
- if (pageSettings.paperHeight !== null) printSettings.paperHeight = pageSettings.paperHeight;
-
- if (pageSettings.headerStrLeft !== null) printSettings.headerStrLeft = pageSettings.headerStrLeft;
- if (pageSettings.headerStrCenter !== null) printSettings.headerStrCenter = pageSettings.headerStrCenter;
- if (pageSettings.headerStrRight !== null) printSettings.headerStrRight = pageSettings.headerStrRight;
-
- if (pageSettings.footerStrLeft !== null) printSettings.footerStrLeft = pageSettings.footerStrLeft;
- if (pageSettings.footerStrCenter !== null) printSettings.footerStrCenter = pageSettings.footerStrCenter;
- if (pageSettings.footerStrRight !== null) printSettings.footerStrRight = pageSettings.footerStrRight;
-
- if (pageSettings.marginLeft !== null) printSettings.marginLeft = pageSettings.marginLeft;
- if (pageSettings.marginRight !== null) printSettings.marginRight = pageSettings.marginRight;
- if (pageSettings.marginTop !== null) printSettings.marginTop = pageSettings.marginTop;
- if (pageSettings.marginBottom !== null) printSettings.marginBottom = pageSettings.marginBottom;
-
- activeTab.linkedBrowser.print(activeTab.linkedBrowser.outerWindowID, printSettings, null);
-
- return resolve(retval);
- }
- // Cancel clicked (retval == 1)
- return resolve(retval);
- });
- });
- },
},
};
return self;
}
};
--- a/browser/components/extensions/schemas/tabs.json
+++ b/browser/components/extensions/schemas/tabs.json
@@ -129,41 +129,16 @@
"defaultZoomFactor": {
"type": "number",
"optional": true,
"description": "Used to return the default zoom level for the current tab in calls to tabs.getZoomSettings."
}
}
},
{
- "id": "PageSettings",
- "type": "object",
- "description": "The page settings including: orientation, scale, background, margins, headers, footers.",
- "properties": {
- "orientation": {"type": "integer", "optional": true, "description": "The page content orientation: 0 = portrait, 1 = landscape. Default: 0."},
- "scaling": {"type": "number", "optional": true, "description": "The page content scaling factor: 1.0 = 100% = normal size. Default: 1.0."},
- "shrinkToFit": {"type": "boolean", "optional": true, "description": "Whether the page content should shrink to fit the page width (overrides scaling). Default: true."},
- "showBGColors": {"type": "boolean", "optional": true, "description": "Whether the page background colors should be shown. Default: false."},
- "showBGImages": {"type": "boolean", "optional": true, "description": "Whether the page background images should be shown. Default: false."},
- "paperSizeUnit": {"type": "integer", "optional": true, "description": "The page size unit: 0 = inches, 1 = millimeters. Default: 0."},
- "paperWidth": {"type": "number", "optional": true, "description": "The paper width in paper size units. Default: 8.5."},
- "paperHeight": {"type": "number", "optional": true, "description": "The paper height in paper size units. Default: 11.0."},
- "headerStrLeft": {"type": "string", "optional": true, "description": "The text for the page's left header. Default: '&T'."},
- "headerStrCenter": {"type": "string", "optional": true, "description": "The text for the page's center header. Default: ''."},
- "headerStrRight": {"type": "string", "optional": true, "description": "The text for the page's right header. Default: '&U'."},
- "footerStrLeft": {"type": "string", "optional": true, "description": "The text for the page's left footer. Default: '&PT'."},
- "footerStrCenter": {"type": "string", "optional": true, "description": "The text for the page's center footer. Default: ''."},
- "footerStrRight": {"type": "string", "optional": true, "description": "The text for the page's right footer. Default: '&D'."},
- "marginLeft": {"type": "number", "optional": true, "description": "The margin between the page content and the left edge of the paper (inches). Default: 0.5."},
- "marginRight": {"type": "number", "optional": true, "description": "The margin between the page content and the right edge of the paper (inches). Default: 0.5."},
- "marginTop": {"type": "number", "optional": true, "description": "The margin between the page content and the top edge of the paper (inches). Default: 0.5."},
- "marginBottom": {"type": "number", "optional": true, "description": "The margin between the page content and the bottom edge of the paper (inches). Default: 0.5."}
- }
- },
- {
"id": "TabStatus",
"type": "string",
"enum": ["loading", "complete"],
"description": "Whether the tabs have completed loading."
},
{
"id": "WindowType",
"type": "string",
@@ -1033,69 +1008,16 @@
{
"$ref": "ZoomSettings",
"name": "zoomSettings",
"description": "The tab's current zoom settings."
}
]
}
]
- },
- {
- "name": "print",
- "type": "function",
- "description": "Prints page in active tab.",
- "parameters": []
- },
- {
- "name": "printPreview",
- "type": "function",
- "description": "Shows print preview for page in active tab.",
- "async": "callback",
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called after print preview entered.",
- "parameters": [
- {
- "type": "boolean",
- "name": "status",
- "description": "Preview status: false = failed, true = succeeded."
- }
- ]
- }
- ]
- },
- {
- "name": "saveAsPDF",
- "type": "function",
- "description": "Saves page in active tab as a PDF file.",
- "async": "callback",
- "parameters": [
- {
- "$ref": "PageSettings",
- "name": "pageSettings",
- "description": "The page settings including: orientation, scale, background, margins, headers, footers. Note: Page Setup dialog cannot configure settings for printing to PDF file."
- },
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called after save as dialog closed.",
- "parameters": [
- {
- "type": "integer",
- "name": "status",
- "description": "Save status: 0 = saved, 1 = cancelled, 2 = replaced, 3 = cannot create, 4 = cannot replace."
- }
- ]
- }
- ]
}
],
"events": [
{
"name": "onCreated",
"type": "function",
"description": "Fired when a tab is created. Note that the tab's URL may not be set at the time this event fired, but you can listen to onUpdated events to be notified when a URL is set.",
"parameters": [
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -122,17 +122,16 @@ skip-if = debug || asan # Bug 1354681
[browser_ext_tabs_removeCSS.js]
[browser_ext_tabs_move.js]
[browser_ext_tabs_move_array.js]
[browser_ext_tabs_move_window.js]
[browser_ext_tabs_move_window_multiple.js]
[browser_ext_tabs_move_window_pinned.js]
[browser_ext_tabs_onHighlighted.js]
[browser_ext_tabs_onUpdated.js]
-[browser_ext_tabs_printPreview.js]
[browser_ext_tabs_query.js]
[browser_ext_tabs_reload.js]
[browser_ext_tabs_reload_bypass_cache.js]
[browser_ext_tabs_sendMessage.js]
[browser_ext_tabs_cookieStoreId.js]
[browser_ext_tabs_update.js]
[browser_ext_tabs_zoom.js]
[browser_ext_tabs_update_url.js]
deleted file mode 100644
--- a/browser/components/extensions/test/browser/browser_ext_tabs_printPreview.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-add_task(async function testPrintPreview() {
- await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://example.net/");
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- "permissions": ["tabs"],
- },
-
- background: function() {
- browser.tabs.query({
- lastFocusedWindow: true,
- }, function(tabs) {
- browser.tabs.printPreview((status) => {
- browser.test.assertTrue(status,"status indicates entry into print preview succeeded");
- browser.test.notifyPass("tabs.printPreview");
- });
- });
- },
- });
-
- await extension.startup();
- await extension.awaitFinish("tabs.printPreview");
- await extension.unload();
-
- let ppTab = PrintUtils._shouldSimplify ?
- PrintPreviewListener._simplifiedPrintPreviewTab :
- PrintPreviewListener._printPreviewTab;
-
- let ppToolbar = document.getElementById("print-preview-toolbar");
-
- isnot(ppTab, null, "print preview tab created");
- isnot(ppTab.linkedBrowser, null, "print preview browser created");
- isnot(ppToolbar, null, "print preview toolbar created");
-
- is(ppTab, gBrowser.selectedTab, "print preview tab selected");
- is(ppTab.linkedBrowser.currentURI.spec, "about:printpreview", "print preview browser url correct");
-
- PrintUtils.exitPrintPreview();
-
- await BrowserTestUtils.removeTab(gBrowser.tabs[1]);
-});
--- a/browser/components/extensions/test/mochitest/test_ext_all_apis.html
+++ b/browser/components/extensions/test/mochitest/test_ext_all_apis.html
@@ -39,23 +39,20 @@ let expectedBackgroundApisTargetSpecific
"tabs.onCreated",
"tabs.onDetached",
"tabs.onHighlighted",
"tabs.onMoved",
"tabs.onRemoved",
"tabs.onReplaced",
"tabs.onUpdated",
"tabs.onZoomChange",
- "tabs.print",
- "tabs.printPreview",
"tabs.query",
"tabs.reload",
"tabs.remove",
"tabs.removeCSS",
- "tabs.saveAsPDF",
"tabs.sendMessage",
"tabs.setZoom",
"tabs.setZoomSettings",
"tabs.update",
"windows.CreateType",
"windows.WINDOW_ID_CURRENT",
"windows.WINDOW_ID_NONE",
"windows.WindowState",