diff options
Diffstat (limited to 'components/shell/ShellService.jsm')
-rw-r--r-- | components/shell/ShellService.jsm | 114 |
1 files changed, 0 insertions, 114 deletions
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; - } -}); |