From f9cab004186edb425a9b88ad649726605080a17c Mon Sep 17 00:00:00 2001 From: Thomas Groman Date: Mon, 20 Apr 2020 20:49:37 -0700 Subject: move browser to webbrowser/ --- components/shell/ShellService.jsm | 114 -- components/shell/content/setDesktopBackground.js | 214 ---- components/shell/content/setDesktopBackground.xul | 84 -- components/shell/jar.mn | 7 - components/shell/moz.build | 40 - components/shell/nsGNOMEShellService.cpp | 637 ---------- components/shell/nsGNOMEShellService.h | 36 - components/shell/nsIGNOMEShellService.idl | 19 - components/shell/nsIMacShellService.idl | 15 - components/shell/nsIShellService.idl | 95 -- components/shell/nsIWindowsShellService.idl | 17 - components/shell/nsMacShellService.cpp | 434 ------- components/shell/nsMacShellService.h | 32 - components/shell/nsSetDefaultBrowser.js | 30 - components/shell/nsSetDefaultBrowser.manifest | 3 - components/shell/nsShellService.h | 12 - components/shell/nsWindowsShellService.cpp | 1277 --------------------- components/shell/nsWindowsShellService.h | 37 - 18 files changed, 3103 deletions(-) delete mode 100644 components/shell/ShellService.jsm delete mode 100644 components/shell/content/setDesktopBackground.js delete mode 100644 components/shell/content/setDesktopBackground.xul delete mode 100644 components/shell/jar.mn delete mode 100644 components/shell/moz.build delete mode 100644 components/shell/nsGNOMEShellService.cpp delete mode 100644 components/shell/nsGNOMEShellService.h delete mode 100644 components/shell/nsIGNOMEShellService.idl delete mode 100644 components/shell/nsIMacShellService.idl delete mode 100644 components/shell/nsIShellService.idl delete mode 100644 components/shell/nsIWindowsShellService.idl delete mode 100644 components/shell/nsMacShellService.cpp delete mode 100644 components/shell/nsMacShellService.h delete mode 100644 components/shell/nsSetDefaultBrowser.js delete mode 100644 components/shell/nsSetDefaultBrowser.manifest delete mode 100644 components/shell/nsShellService.h delete mode 100644 components/shell/nsWindowsShellService.cpp delete mode 100644 components/shell/nsWindowsShellService.h (limited to 'components/shell') diff --git a/components/shell/ShellService.jsm b/components/shell/ShellService.jsm deleted file mode 100644 index 74632b6..0000000 --- a/components/shell/ShellService.jsm +++ /dev/null @@ -1,114 +0,0 @@ -/* 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"; - -this.EXPORTED_SYMBOLS = ["ShellService"]; - -const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; - -Cu.import("resource://gre/modules/AppConstants.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "WindowsRegistry", - "resource://gre/modules/WindowsRegistry.jsm"); - -/** - * Internal functionality to save and restore the docShell.allow* properties. - */ -var ShellServiceInternal = { - /** - * Used to determine whether or not to offer "Set as desktop background" - * functionality. Even if shell service is available it is not - * guaranteed that it is able to set the background for every desktop - * which is especially true for Linux with its many different desktop - * environments. - */ - get canSetDesktopBackground() { - if (AppConstants.platform == "win" || - AppConstants.platform == "macosx") { - return true; - } - - if (AppConstants.platform == "linux") { - if (this.shellService) { - let linuxShellService = this.shellService - .QueryInterface(Ci.nsIGNOMEShellService); - return linuxShellService.canSetDesktopBackground; - } - } - - return false; - }, - - /** - * Used to determine whether or not to show a "Set Default Browser" - * query dialog. This attribute is true if the application is starting - * up and "browser.shell.checkDefaultBrowser" is true, otherwise it - * is false. - */ - _checkedThisSession: false, - get shouldCheckDefaultBrowser() { - // If we've already checked, the browser has been started and this is a - // new window open, and we don't want to check again. - if (this._checkedThisSession) { - return false; - } - - if (!Services.prefs.getBoolPref("browser.shell.checkDefaultBrowser")) { - return false; - } - - if (AppConstants.platform == "win") { - let optOutValue = WindowsRegistry.readRegKey(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER, - "Software\\Mozilla\\PaleMoon", - "DefaultBrowserOptOut"); - WindowsRegistry.removeRegKey(Ci.nsIWindowsRegKey.ROOT_KEY_CURRENT_USER, - "Software\\Mozilla\\PaleMoon", - "DefaultBrowserOptOut"); - if (optOutValue == "True") { - Services.prefs.setBoolPref("browser.shell.checkDefaultBrowser", false); - return false; - } - } - - return true; - }, - - set shouldCheckDefaultBrowser(shouldCheck) { - Services.prefs.setBoolPref("browser.shell.checkDefaultBrowser", !!shouldCheck); - }, - - isDefaultBrowser(startupCheck, forAllTypes) { - // If this is the first browser window, maintain internal state that we've - // checked this session (so that subsequent window opens don't show the - // default browser dialog). - if (startupCheck) { - this._checkedThisSession = true; - } - if (this.shellService) { - return this.shellService.isDefaultBrowser(startupCheck, forAllTypes); - } - return false; - } -}; - -XPCOMUtils.defineLazyServiceGetter(ShellServiceInternal, "shellService", - "@mozilla.org/browser/shell-service;1", Ci.nsIShellService); - -/** - * The external API exported by this module. - */ -this.ShellService = new Proxy(ShellServiceInternal, { - get(target, name) { - if (name in target) { - return target[name]; - } - if (target.shellService) { - return target.shellService[name]; - } - Services.console.logStringMessage(`${name} not found in ShellService: ${target.shellService}`); - return undefined; - } -}); diff --git a/components/shell/content/setDesktopBackground.js b/components/shell/content/setDesktopBackground.js deleted file mode 100644 index 53cc70d..0000000 --- a/components/shell/content/setDesktopBackground.js +++ /dev/null @@ -1,214 +0,0 @@ -/* 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/. */ - -Components.utils.import("resource://gre/modules/AppConstants.jsm"); - -var Ci = Components.interfaces; - -var gSetBackground = { - _position : AppConstants.platform == "macosx" ? "STRETCH" : "", - _backgroundColor : AppConstants.platform != "macosx" ? 0 : undefined, - _screenWidth : 0, - _screenHeight : 0, - _image : null, - _canvas : null, - - get _shell() - { - return Components.classes["@mozilla.org/browser/shell-service;1"] - .getService(Ci.nsIShellService); - }, - - load: function () - { - this._canvas = document.getElementById("screen"); - this._screenWidth = screen.width; - this._screenHeight = screen.height; - if (AppConstants.platform == "macosx") { - document.documentElement.getButton("accept").hidden = true; - } - if (this._screenWidth / this._screenHeight >= 1.6) - document.getElementById("monitor").setAttribute("aspectratio", "16:10"); - - if (AppConstants.platform == "win") { - // Hide fill + fit options if < Win7 since they don't work. - var version = Components.classes["@mozilla.org/system-info;1"] - .getService(Ci.nsIPropertyBag2) - .getProperty("version"); - var isWindows7OrHigher = (parseFloat(version) >= 6.1); - if (!isWindows7OrHigher) { - document.getElementById("fillPosition").hidden = true; - document.getElementById("fitPosition").hidden = true; - } - } - - // make sure that the correct dimensions will be used - setTimeout(function(self) { - self.init(window.arguments[0]); - }, 0, this); - }, - - init: function (aImage) - { - this._image = aImage; - - // set the size of the coordinate space - this._canvas.width = this._canvas.clientWidth; - this._canvas.height = this._canvas.clientHeight; - - var ctx = this._canvas.getContext("2d"); - ctx.scale(this._canvas.clientWidth / this._screenWidth, this._canvas.clientHeight / this._screenHeight); - - if (AppConstants.platform != "macosx") { - this._initColor(); - } else { - // Make sure to reset the button state in case the user has already - // set an image as their desktop background. - var setDesktopBackground = document.getElementById("setDesktopBackground"); - setDesktopBackground.hidden = false; - var bundle = document.getElementById("backgroundBundle"); - setDesktopBackground.label = bundle.getString("DesktopBackgroundSet"); - setDesktopBackground.disabled = false; - - document.getElementById("showDesktopPreferences").hidden = true; - } - this.updatePosition(); - }, - - setDesktopBackground: function () - { - if (AppConstants.platform != "macosx") { - document.persist("menuPosition", "value"); - this._shell.desktopBackgroundColor = this._hexStringToLong(this._backgroundColor); - } else { - Components.classes["@mozilla.org/observer-service;1"] - .getService(Ci.nsIObserverService) - .addObserver(this, "shell:desktop-background-changed", false); - - var bundle = document.getElementById("backgroundBundle"); - var setDesktopBackground = document.getElementById("setDesktopBackground"); - setDesktopBackground.disabled = true; - setDesktopBackground.label = bundle.getString("DesktopBackgroundDownloading"); - } - this._shell.setDesktopBackground(this._image, - Ci.nsIShellService["BACKGROUND_" + this._position]); - }, - - updatePosition: function () - { - var ctx = this._canvas.getContext("2d"); - ctx.clearRect(0, 0, this._screenWidth, this._screenHeight); - - if (AppConstants.platform != "macosx") { - this._position = document.getElementById("menuPosition").value; - } - - switch (this._position) { - case "TILE": - ctx.save(); - ctx.fillStyle = ctx.createPattern(this._image, "repeat"); - ctx.fillRect(0, 0, this._screenWidth, this._screenHeight); - ctx.restore(); - break; - case "STRETCH": - ctx.drawImage(this._image, 0, 0, this._screenWidth, this._screenHeight); - break; - case "CENTER": { - let x = (this._screenWidth - this._image.naturalWidth) / 2; - let y = (this._screenHeight - this._image.naturalHeight) / 2; - ctx.drawImage(this._image, x, y); - break; - } - case "FILL": { - // Try maxing width first, overflow height. - let widthRatio = this._screenWidth / this._image.naturalWidth; - let width = this._image.naturalWidth * widthRatio; - let height = this._image.naturalHeight * widthRatio; - if (height < this._screenHeight) { - // Height less than screen, max height and overflow width. - let heightRatio = this._screenHeight / this._image.naturalHeight; - width = this._image.naturalWidth * heightRatio; - height = this._image.naturalHeight * heightRatio; - } - let x = (this._screenWidth - width) / 2; - let y = (this._screenHeight - height) / 2; - ctx.drawImage(this._image, x, y, width, height); - break; - } - case "FIT": { - // Try maxing width first, top and bottom borders. - let widthRatio = this._screenWidth / this._image.naturalWidth; - let width = this._image.naturalWidth * widthRatio; - let height = this._image.naturalHeight * widthRatio; - let x = 0; - let y = (this._screenHeight - height) / 2; - if (height > this._screenHeight) { - // Height overflow, maximise height, side borders. - let heightRatio = this._screenHeight / this._image.naturalHeight; - width = this._image.naturalWidth * heightRatio; - height = this._image.naturalHeight * heightRatio; - x = (this._screenWidth - width) / 2; - y = 0; - } - ctx.drawImage(this._image, x, y, width, height); - break; - } - } - } -}; - -if (AppConstants.platform != "macosx") { - gSetBackground["_initColor"] = function () - { - var color = this._shell.desktopBackgroundColor; - - const rMask = 4294901760; - const gMask = 65280; - const bMask = 255; - var r = (color & rMask) >> 16; - var g = (color & gMask) >> 8; - var b = (color & bMask); - this.updateColor(this._rgbToHex(r, g, b)); - - var colorpicker = document.getElementById("desktopColor"); - colorpicker.color = this._backgroundColor; - }; - - gSetBackground["updateColor"] = function (aColor) - { - this._backgroundColor = aColor; - this._canvas.style.backgroundColor = aColor; - }; - - // Converts a color string in the format "#RRGGBB" to an integer. - gSetBackground["_hexStringToLong"] = function (aString) - { - return parseInt(aString.substring(1, 3), 16) << 16 | - parseInt(aString.substring(3, 5), 16) << 8 | - parseInt(aString.substring(5, 7), 16); - }; - - gSetBackground["_rgbToHex"] = function (aR, aG, aB) - { - return "#" + [aR, aG, aB].map(aInt => aInt.toString(16).replace(/^(.)$/, "0$1")) - .join("").toUpperCase(); - }; -} else { - gSetBackground["observe"] = function (aSubject, aTopic, aData) - { - if (aTopic == "shell:desktop-background-changed") { - document.getElementById("setDesktopBackground").hidden = true; - document.getElementById("showDesktopPreferences").hidden = false; - - Components.classes["@mozilla.org/observer-service;1"] - .getService(Ci.nsIObserverService) - .removeObserver(this, "shell:desktop-background-changed"); - } - }; - - gSetBackground["showDesktopPrefs"] = function() - { - this._shell.openApplication(Ci.nsIMacShellService.APPLICATION_DESKTOP); - }; -} diff --git a/components/shell/content/setDesktopBackground.xul b/components/shell/content/setDesktopBackground.xul deleted file mode 100644 index d7d4079..0000000 --- a/components/shell/content/setDesktopBackground.xul +++ /dev/null @@ -1,84 +0,0 @@ - - -# 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/. - - - - - - -#ifdef XP_MACOSX - -#endif - - - - -