Bug 1269300 Patch 2 Backout draft
authordw-dev <dw-dev@gmx.com>
Sun, 11 Jun 2017 17:29:35 +0100
changeset 592269 e238ad0ffcb9b0aaf24e1bce22818c497e6939bd
parent 591206 a614f0d469877a178b0da9cadb150ab27018d8b6
child 592270 92164dac4c230a0b9056db68816e7d8db05a9748
push id63318
push userbmo:dw-dev@gmx.com
push dateSun, 11 Jun 2017 17:01:05 +0000
bugs1269300
milestone55.0a1
Bug 1269300 Patch 2 Backout MozReview-Commit-ID: CMaQVZc07vO
browser/components/extensions/ext-tabs.js
browser/components/extensions/schemas/tabs.json
browser/components/extensions/test/browser/browser-common.ini
browser/components/extensions/test/browser/browser_ext_tabs_printPreview.js
browser/components/extensions/test/mochitest/test_ext_all_apis.html
--- 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",