Downloads:

16,910,700

Downloads of v 79.0:

266,808

Last Update:

28 Jul 2020

Package Maintainer(s):

Software Author(s):

  • Mozilla

Tags:

browser mozilla firefox admin foss cross-platform

Mozilla Firefox

This is not the latest version of Mozilla Firefox available.

79.0 | Updated: 28 Jul 2020

Downloads:

16,910,700

Downloads of v 79.0:

266,808

Software Author(s):

  • Mozilla

Mozilla Firefox 79.0

This is not the latest version of Mozilla Firefox available.

All Checks are Passing

2 Passing Test


Validation Testing Passed


Verification Testing Passed

Details

To install Mozilla Firefox, run the following command from the command line or from PowerShell:

>

To upgrade Mozilla Firefox, run the following command from the command line or from PowerShell:

>

To uninstall Mozilla Firefox, run the following command from the command line or from PowerShell:

>

NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://chocolatey.org/api/v2. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to https://chocolatey.org/api/v2)

4. Choose your deployment method:


choco upgrade firefox -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade firefox -y --source="'STEP 3 URL'"
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Ensure firefox installed
  win_chocolatey:
    name: firefox
    state: present
    version: 79.0
    source: STEP 3 URL

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.

Coming early 2020! Central Managment Reporting available now! More information...


chocolatey_package 'firefox' do
  action    :install
  version  '79.0'
  source   'STEP 3 URL'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


Chocolatey::Ensure-Package
(
    Name: firefox,
    Version: 79.0,
    Source: STEP 3 URL
);

Requires Otter Chocolatey Extension. See docs at https://inedo.com/den/otter/chocolatey.


cChocoPackageInstaller firefox
{
   Name     = 'firefox'
   Ensure   = 'Present'
   Version  = '79.0'
   Source   = 'STEP 3 URL'
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'firefox':
  provider => 'chocolatey',
  ensure   => '79.0',
  source   => 'STEP 3 URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


salt '*' chocolatey.install firefox version="79.0" source="STEP 3 URL"

See docs at https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.chocolatey.html.

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved as a trusted package on 28 Jul 2020.

Description

Bringing together all kinds of awesomeness to make browsing better for you.

Features

  • A powerful, new engine that’s built for rapidfire performance.
  • Better, faster page loading that uses less computer memory.
  • Gorgeous design and smart features for intelligent browsing.
  • Instantly import your online info and favorites from any other browser.
  • The most powerful private browsing mode with added tracking protection.
  • Firefox Quantum features: screenshots, pocket, gaming & VR, library.
  • Customization Features - addons & extensions, themes, toolbar.
  • Synced across devices - passwords, bookmarks, tabs and more.
  • Ad tracker blocking.
  • Password manager.

Package Parameters

  • /l:LOCALE - Install given Firefox locale. See the official page for a complete list of available locales.

Command-line options for installer configuration. See the official page for details and defaults.

  • /InstallDir:PATH
  • /NoTaskbarShortcut Do not create Taskbar Shortcut
  • /NoDesktopShortcut Do not create Desktop Shortcut
  • /NoStartMenuShortcut Do not create Start Menu Shortcut
  • /NoMaintenanceService Do not install Maintenance Service
  • /RemoveDistributionDir Remove Distribution directory on installation/update. (This is the default behavior of the Firefox Installer, but not for this Chocolatey Package)
  • /NoAutoUpdate Sets a policies.json file to not update Firefox and does not install the Maintenance Service

Examples

choco install Firefox --params "/l:en-GB"
choco install Firefox --params "/NoTaskbarShortcut /NoDesktopShortcut /NoAutoUpdate"
choco install Firefox --params "/l:en-GB /RemoveDistributionDir"

Notes

  • Looking for Firefox Developer Edition? Install the firefox-dev package.
  • Looking for Firefox Extended Support Release? Install the FirefoxESR package.
  • If locale package parameter is not present, this package installs Firefox in the first language which matches this list:
    1. If Firefox is already installed it uses the same language as the already installed one.
    2. The Windows system language.
    3. If Firefox does not support the system language, it will fall back to en-US.

tools\chocolateyInstall.ps1
$ErrorActionPreference = 'Stop'
# This is the general install script for Mozilla products (Firefox and Thunderbird).
# This file must be identical for all Choco packages for Mozilla products in this repository.
$toolsPath = Split-Path $MyInvocation.MyCommand.Definition
. $toolsPath\helpers.ps1

$packageName = 'Firefox'
$softwareName = 'Mozilla Firefox'

$pp = Get-PackageParameters

$alreadyInstalled = (AlreadyInstalled -product $softwareName -version '79.0')

if (Get-32bitOnlyInstalled -product $softwareName) {
  Write-Output $(
    'Detected the 32-bit version of Firefox on a 64-bit system. ' +
    'This package will continue to install the 32-bit version of Firefox ' +
    'unless the 32-bit version is uninstalled.'
  )
}

$sa = ""

# Command Line Options from the Firefox installer
# https://firefox-source-docs.mozilla.org/browser/installer/windows/installer/FullConfig.html

# Always prevent Firefox installer to require a reboot
$sa += " /PreventRebootRequired=true"

# Prevent RemoveDistributionDir by default
$sa += " /RemoveDistributionDir=false"


$sa += if ($pp.InstallDir) { " /InstallDirectoryPath=" + $pp.InstallDir }

$sa += if ($pp.NoTaskbarShortcut) { " /TaskbarShortcut=false" }

$sa += if ($pp.NoDesktopShortcut) { " /DesktopShortcut=false" }

$sa += if ($pp.NoStartMenuShortcut) { " /StartMenuShortcut=false" }

$sa += if ($pp.NoMaintenanceService) { " /MaintenanceService=false" }

$sa += if ($pp.RemoveDistributionDir) { " /RemoveDistributionDir=true" }

$sa += if ($pp.NoAutoUpdate) { " /MaintenanceService=false" }

if ($alreadyInstalled -and $env:ChocolateyForce) {
  Write-Output $(
    "Firefox is already installed. " +
    'No need to download and re-install.'
  )
}
else {
  $locale = 'en-US' #https://github.com/chocolatey/chocolatey-coreteampackages/issues/933
  $locale = GetLocale -localeFile "$toolsPath\LanguageChecksums.csv" -product $softwareName
  $checksums = GetChecksums -language $locale -checksumFile "$toolsPath\LanguageChecksums.csv"

  $packageArgs = @{
    packageName    = $packageName
    fileType       = 'exe'
    softwareName   = "$softwareName*"
    Checksum       = $checksums.Win32
    ChecksumType   = 'sha512'
    Url            = "https://download.mozilla.org/?product=firefox-79.0-ssl&os=win&lang=${locale}"
    silentArgs     = "$sa /S"
    validExitCodes = @(0)
  }

  if (!(Get-32bitOnlyInstalled($softwareName)) -and (Get-OSArchitectureWidth 64)) {
    $packageArgs.Checksum64 = $checksums.Win64
    $packageArgs.ChecksumType64 = 'sha512'
    $packageArgs.Url64 = "https://download.mozilla.org/?product=firefox-79.0-ssl&os=win64&lang=${locale}"
  }

  Install-ChocolateyPackage @packageArgs
}

if ($pp.InstallDir) {
  $installPath = $pp.InstallDir
}
else {
  $installPath = Get-AppInstallLocation $softwareName
}

if (-Not(Test-Path ($installPath + "\distribution\policies.json") -ErrorAction SilentlyContinue) -and ($pp.NoAutoUpdate) ) {
  if (-Not(Test-Path ($installPath + "\distribution") -ErrorAction SilentlyContinue)) {
    new-item ($installPath + "\distribution") -itemtype directory
  }

  $policies = @{
    policies = @{
      "DisableAppUpdate" = $true
    }
  }
  $policies | ConvertTo-Json | Out-File -FilePath ($installPath + "\distribution\policies.json") -Encoding ascii

}
tools\chocolateyUninstall.ps1
$ErrorActionPreference = 'Stop';

$packageName = 'Firefox'

$uninstalled = $false
[array]$key = Get-UninstallRegistryKey -SoftwareName 'Mozilla Firefox*' | Where-Object { $_.DisplayName -notmatch "ESR" }

if ($key.Count -eq 1) {
  $key | ForEach-Object {
    $packageArgs = @{
      packageName = $packageName
      fileType    = 'exe'
      silentArgs  = '-ms'
      validExitCodes= @(0)
      file          = "$($_.UninstallString.Trim('"'))"
    }

    Uninstall-ChocolateyPackage @packageArgs

    Write-Warning "Auto Uninstaller may detect Mozilla Maintenance Service."
    Write-Warning "This should not be uninstalled if any other Mozilla product is installed."
  }
} elseif ($key.Count -eq 0) {
  Write-Warning "$packageName has already been uninstalled by other means."
} elseif ($key.Count -gt 1) {
  Write-Warning "$($key.Count) matches found!"
  Write-Warning "To prevent accidental data loss, no programs will be uninstalled."
  Write-Warning "Please alert package maintainer the following keys were matched:"
  $key | ForEach-Object {Write-Warning "- $($_.DisplayName)"}
}
tools\helpers.ps1
function GetUninstallPath() {
  param(
    [Parameter(Mandatory = $true)]
    [string]$product
  )
  $regUninstallDir = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'
  $regUninstallDirWow64 = 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\'

  $uninstallPaths = $(Get-ChildItem $regUninstallDir).Name

  if (Test-Path $regUninstallDirWow64) {
    $uninstallPaths += $(Get-ChildItem $regUninstallDirWow64).Name
  }

  $uninstallPath = $uninstallPaths -match "$product [\d\.]+ \([^\s]+ [a-zA-Z\-]+\)" | Select-Object -first 1
  return $uninstallPath
}

function GetLocale {
  param(
    [Parameter(Mandatory = $true)]
    [string]$localeFile,
    [Parameter(Mandatory = $true)]
    [string]$product
  )
  #$availableLocales = Get-WebContent $localeUrl 2>$null
  $availableLocales = Get-Content $localeFile | ForEach-Object { $_ -split '\|' | Select-Object -first 1 } | Select-Object -Unique

  $PackageParameters = Get-PackageParameters

  if ($PackageParameters['l']) {
    $localeFromPackageParameters =  $PackageParameters['l']
    Write-Verbose "User chooses '$localeFromPackageParameters' as a locale..."
    $localeFromPackageParametersTwoLetter = $localeFromPackageParameters -split '\-' | Select-Object -first 1
    Write-Verbose "With fallback to '$localeFromPackageParametersTwoLetter' as locale..."
    }

  $uninstallPath = GetUninstallPath -product $product

  $alreadyInstalledLocale = $uninstallPath -replace ".+\s([a-zA-Z\-]+)\)",'$1'
  Write-Verbose "Installed locale is: '$alreadyInstalledLocale'..."

  $systemLocalizeAndCountry = (Get-UICulture).Name
  $systemLocaleTwoLetter = (Get-UICulture).TwoLetterISOLanguageName
  Write-Verbose "System locale is: '$locale'..."
  $fallbackLocale = 'en-US'

  $locales = $localeFromPackageParameters,$localeFromPackageParametersTwoLetter, `
    $alreadyInstalledLocale, $systemLocalizeAndCountry, $systemLocaleTwoLetter, `
    $fallbackLocale

    foreach ($locale in $locales) {
      $localeMatch = $availableLocales | Where-Object { $_ -eq $locale } | Select-Object -first 1
      if ($localeMatch -and $locale -ne $null) {
        Write-Verbose "Using locale '$locale'..."
        break
      }
    }

    return $locale
}

function AlreadyInstalled() {
  param(
    [Parameter(Mandatory = $true)]
    [string]$product,
    [Parameter(Mandatory = $true)]
    [string]$version
  )
  $uninstallEntry = $(
    "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$product $version*"
  )
  $uninstallEntryWow64 = $(
    "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\$product $version*"
  )

  if ((Test-Path $uninstallEntry) -or (Test-Path $uninstallEntryWow64)) {
    return $true
  }

  return $false
}

function Get-32bitOnlyInstalled() {
  param(
    [Parameter(Mandatory = $true)]
    [string]$product
  )
  $systemIs64bit = Get-OSArchitectureWidth 64

  if (-Not $systemIs64bit) {
    return $false
  }

  $registryPaths = @(
    'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
    'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
  )

  $installedVersions = Get-ChildItem $registryPaths | Where-Object { $_.Name -match "$product [\d\.]+ \(x(64|86)" }

  if (
    $installedVersions -match 'x86' `
    -and $installedVersions -notmatch 'x64' `
    -and $systemIs64bit
  ) {
    return $true
  }
}

function GetChecksums() {
  param(
    [Parameter(Mandatory = $true)]
    [string]$language,
    [Parameter(Mandatory = $true)]
    $checksumFile
  )
  Write-Debug "Loading checksums from: $checksumFile"
  $checksumContent = Get-Content $checksumFile
  $checksum32 = ($checksumContent -match "$language\|32") -split '\|' | Select-Object -last 1
  $checksum64 = ($checksumContent -match "$language\|64") -split '\|' | Select-Object -last 1

  return @{
    "Win32" = $checksum32
    "Win64" = $checksum64
  }
}
tools\LanguageChecksums.csv

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status
Mozilla Firefox 82.0.3 244796 Monday, November 9, 2020 Approved
Mozilla Firefox 82.0.2 247029 Wednesday, October 28, 2020 Approved
Mozilla Firefox 82.0.1 95080 Tuesday, October 27, 2020 Approved
Mozilla Firefox 82.0 198721 Tuesday, October 20, 2020 Approved
Mozilla Firefox 81.0.2 176386 Tuesday, October 13, 2020 Approved
Mozilla Firefox 81.0.1 245464 Thursday, October 1, 2020 Approved
Mozilla Firefox 81.0 223801 Tuesday, September 22, 2020 Approved
Mozilla Firefox 80.0.1 295862 Tuesday, September 1, 2020 Approved
Mozilla Firefox 80.0 19896 Tuesday, August 25, 2020 Approved
Discussion for the Mozilla Firefox Package

Ground Rules:

  • This discussion is only about Mozilla Firefox and the Mozilla Firefox package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Mozilla Firefox, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus