summaryrefslogtreecommitdiffstats
path: root/browser/installer/windows/msi
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /browser/installer/windows/msi
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--browser/installer/windows/msi/installer.wxs109
-rw-r--r--browser/installer/windows/msix/AppxManifest.xml.in138
-rw-r--r--browser/installer/windows/msix/Resources.pribin0 -> 2128 bytes
-rw-r--r--browser/installer/windows/msix/distribution/distribution.ini12
-rw-r--r--browser/installer/windows/msix/msix-all-locales361
-rw-r--r--browser/installer/windows/msix/priconfig.xml38
6 files changed, 658 insertions, 0 deletions
diff --git a/browser/installer/windows/msi/installer.wxs b/browser/installer/windows/msi/installer.wxs
new file mode 100644
index 0000000000..0b5994c4c1
--- /dev/null
+++ b/browser/installer/windows/msi/installer.wxs
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+<!-- The version field only supports MSI version numbers, which cannot include
+ letters, and therefore cannot represent our version numbers. Set it to all
+ zeros to show it isn't valid, and add the real version to the Name. -->
+<Product Name="$(var.BrandFullName) $(var.Version) $(var.Architecture) $(var.AB_CD)"
+ Manufacturer="$(var.Vendor)" Language="0" Codepage="1252"
+ Version="$(var.EmbeddedVersionCode)" Id="1294a4c5-9977-480f-9497-c0ea1e630130"
+ UpgradeCode="3118ab4c-b433-4fbb-b9fa-8f9ca4b5c103" >
+
+ <Package Id="*" InstallerVersion="200" Compressed="yes"
+ Platform="$(var.Architecture)" InstallScope ="perMachine"/>
+
+ <!-- We need a CAB to avoid failing an ICE, even though we have no payload. -->
+ <Media Id="1" Cabinet="setup.cab" EmbedCab="yes" />
+
+ <!-- We need a component and feature, or msiexec will refuse to load us. -->
+ <Directory Id="TARGETDIR" Name="SourceDir">
+ <Directory Id="TempFolder">
+ <Component Id="EmptyComponent" Guid="55a76b76-7496-4b47-a7a6-c5fbdd5e51a4">
+ <CreateFolder />
+ </Component>
+ </Directory>
+ </Directory>
+
+ <!-- Setting the feature to level 0 marks it hidden, so it can't be installed.
+ That prevents getting this MSI registered as an installed product,
+ because it has no features of its own to install. -->
+ <Feature Id="EmptyFeature" Level="0">
+ <ComponentRef Id="EmptyComponent" />
+ </Feature>
+
+ <!-- Embed the installer we want to run directly into the MSI database. -->
+ <Binary Id="WrappedExe" SourceFile="$(var.ExeSourcePath)" />
+
+ <!-- User-configurable properties. One of these corresponds to each documented
+ command-line parameter. Properties cannot be present without a value,
+ so use a conspicuous and difficult to mistake string for the parameters
+ that have no real default values. -->
+ <Property Id="INSTALL_DIRECTORY_PATH" Value="__DEFAULT__" />
+ <Property Id="INSTALL_DIRECTORY_NAME" Value="__DEFAULT__" />
+ <Property Id="TASKBAR_SHORTCUT" Value="true" />
+ <Property Id="DESKTOP_SHORTCUT" Value="true" />
+ <Property Id="START_MENU_SHORTCUT" Value="true" />
+ <Property Id="PRIVATE_BROWSING_SHORTCUT" Value="true" />
+ <Property Id="INSTALL_MAINTENANCE_SERVICE" Value="true" />
+ <Property Id="REMOVE_DISTRIBUTION_DIR" Value="true" />
+ <Property Id="PREVENT_REBOOT_REQUIRED" Value="false" />
+ <Property Id="OPTIONAL_EXTENSIONS" Value="true" />
+ <Property Id="REGISTER_DEFAULT_AGENT" Value="true" />
+ <Property Id="EXTRACT_DIR" Value="__DEFAULT__" />
+
+ <!-- Always include all of the boolean options on the command line, so we don't
+ have to conditionally decide when to include each one of them. For the
+ directory settings though, we can't put them on the command line with the
+ default values those properties have, so we need a separate action for
+ each possible configuration of those settings, and conditions to select
+ the right action to use based on which properties are configured.
+ WiX throws warning LGHT1076 complaining that these command strings are
+ too long, but they actually work just fine, the warning is spurious. -->
+ <CustomAction Id="RunInstallNoDir" Return="check" Execute="deferred"
+ HideTarget="no" Impersonate="no" BinaryKey="WrappedExe"
+ ExeCommand="/S /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /PrivateBrowsingShortcut=[PRIVATE_BROWSING_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /RegisterDefaultAgent=[REGISTER_DEFAULT_AGENT] /LaunchedFromMSI" />
+ <CustomAction Id="RunInstallDirPath" Return="check" Execute="deferred"
+ HideTarget="no" Impersonate="no" BinaryKey="WrappedExe"
+ ExeCommand="/S /InstallDirectoryPath=[INSTALL_DIRECTORY_PATH] /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /PrivateBrowsingShortcut=[PRIVATE_BROWSING_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /RegisterDefaultAgent=[REGISTER_DEFAULT_AGENT] /LaunchedFromMSI" />
+ <CustomAction Id="RunInstallDirName" Return="check" Execute="deferred"
+ HideTarget="no" Impersonate="no" BinaryKey="WrappedExe"
+ ExeCommand="/S /InstallDirectoryName=[INSTALL_DIRECTORY_NAME] /TaskbarShortcut=[TASKBAR_SHORTCUT] /DesktopShortcut=[DESKTOP_SHORTCUT] /StartMenuShortcut=[START_MENU_SHORTCUT] /PrivateBrowsingShortcut=[PRIVATE_BROWSING_SHORTCUT] /MaintenanceService=[INSTALL_MAINTENANCE_SERVICE] /RemoveDistributionDir=[REMOVE_DISTRIBUTION_DIR] /PreventRebootRequired=[PREVENT_REBOOT_REQUIRED] /OptionalExtensions=[OPTIONAL_EXTENSIONS] /RegisterDefaultAgent=[REGISTER_DEFAULT_AGENT] /LaunchedFromMSI" />
+ <CustomAction Id="RunExtractOnly" Return="check" Execute="deferred"
+ HideTarget="no" Impersonate="no" BinaryKey="WrappedExe"
+ ExeCommand="/ExtractDir=[EXTRACT_DIR]" />
+
+ <!-- When we run the custom actions is kind of arbitrary; this sequencing gets
+ us the least confusing message showing in the MSI progress dialog while
+ the installer runs. Our actions don't need to be sequenced relative
+ to one another because only one will ever run. -->
+ <InstallExecuteSequence>
+ <Custom Action="RunInstallNoDir" After="ProcessComponents">
+ <![CDATA[
+ (INSTALL_DIRECTORY_PATH = "__DEFAULT__") AND
+ (INSTALL_DIRECTORY_NAME = "__DEFAULT__") AND
+ (EXTRACT_DIR = "__DEFAULT__")
+ ]]>
+ </Custom>
+ <Custom Action="RunInstallDirPath" After="ProcessComponents">
+ <![CDATA[
+ (INSTALL_DIRECTORY_PATH <> "__DEFAULT__") AND
+ (INSTALL_DIRECTORY_NAME = "__DEFAULT__") AND
+ (EXTRACT_DIR = "__DEFAULT__")
+ ]]>
+ </Custom>
+ <Custom Action="RunInstallDirName" After="ProcessComponents">
+ <![CDATA[
+ (INSTALL_DIRECTORY_NAME <> "__DEFAULT__") AND
+ (EXTRACT_DIR = "__DEFAULT__")
+ ]]>
+ </Custom>
+ <Custom Action="RunExtractOnly" After="ProcessComponents">
+ <![CDATA[
+ EXTRACT_DIR <> "__DEFAULT__"
+ ]]>
+ </Custom>
+ </InstallExecuteSequence>
+</Product>
+
+</Wix>
diff --git a/browser/installer/windows/msix/AppxManifest.xml.in b/browser/installer/windows/msix/AppxManifest.xml.in
new file mode 100644
index 0000000000..98cfd82db4
--- /dev/null
+++ b/browser/installer/windows/msix/AppxManifest.xml.in
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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/. -->
+<!-- #filter substitution -->
+<Package
+ xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
+ xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
+ xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
+ xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
+ xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
+ xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
+ xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
+ xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
+ IgnorableNamespaces="uap uap2 uap3 uap10 rescap">
+
+ <Identity Name="@APPX_IDENTITY@" Publisher="@APPX_PUBLISHER@" Version="@APPX_VERSION@" ProcessorArchitecture="@APPX_ARCH@" />
+ <Properties>
+ <DisplayName>@APPX_DISPLAYNAME@</DisplayName>
+ <PublisherDisplayName>@APPX_PUBLISHER_DISPLAY_NAME@</PublisherDisplayName>
+ <Description>@APPX_DESCRIPTION@</Description>
+ <Logo>Assets\StoreLogo.png</Logo>
+ <uap10:PackageIntegrity>
+ <uap10:Content Enforcement="on" />
+ </uap10:PackageIntegrity>
+ </Properties>
+ <Resources>
+@APPX_RESOURCE_LANGUAGE_LIST@
+ </Resources>
+ <Dependencies>
+ <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.1" />
+ </Dependencies>
+ <Capabilities>
+ <rescap:Capability Name="runFullTrust" />
+ </Capabilities>
+ <Applications>
+ <Application Id="App" Executable="VFS\ProgramFiles\@APPX_INSTDIR@\@MOZ_APP_NAME@.exe" EntryPoint="Windows.FullTrustApplication">
+ <uap:VisualElements BackgroundColor="#20123A" DisplayName="@MOZ_APP_DISPLAYNAME@" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="@MOZ_APP_DISPLAYNAME@">
+ <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" Square310x310Logo="Assets\LargeTile.png" Square71x71Logo="Assets\SmallTile.png">
+ <uap:ShowNameOnTiles>
+ <uap:ShowOn Tile="square150x150Logo"/>
+ <uap:ShowOn Tile="wide310x150Logo"/>
+ <uap:ShowOn Tile="square310x310Logo"/>
+ </uap:ShowNameOnTiles>
+ </uap:DefaultTile>
+ </uap:VisualElements>
+ <Extensions>
+ <uap3:Extension Category="windows.appExecutionAlias" EntryPoint="Windows.FullTrustApplication" Executable="VFS\ProgramFiles\@APPX_INSTDIR@\@MOZ_APP_NAME@.exe">
+ <uap3:AppExecutionAlias>
+ <desktop:ExecutionAlias Alias="@MOZ_APP_NAME@.exe" />
+ </uap3:AppExecutionAlias>
+ </uap3:Extension>
+ <uap3:Extension Category="windows.fileTypeAssociation">
+ <uap3:FileTypeAssociation Name="htm">
+ <uap:SupportedFileTypes>
+ <!-- Keep synchronized with
+ https://searchfox.org/mozilla-central/source/browser/installer/windows/nsis/shared.nsh
+ and `os.environment.launched_to_handle` and `os.environment.invoked_to_handle` telemetry in
+ https://searchfox.org/mozilla-central/source/browser/components/BrowserContentHandler.sys.mjs. -->
+ <uap:FileType>.avif</uap:FileType>
+ <uap:FileType>.htm</uap:FileType>
+ <uap:FileType>.html</uap:FileType>
+ <uap:FileType>.pdf</uap:FileType>
+ <uap:FileType>.shtml</uap:FileType>
+ <uap:FileType>.xht</uap:FileType>
+ <uap:FileType>.xhtml</uap:FileType>
+ <uap:FileType>.svg</uap:FileType>
+ <uap:FileType>.webp</uap:FileType>
+ </uap:SupportedFileTypes>
+ <uap:Logo>Assets\Document44x44.png</uap:Logo>
+ <uap2:SupportedVerbs>
+ <uap3:Verb Id="open" Parameters="-osint -url &quot;%1&quot;">open</uap3:Verb>
+ </uap2:SupportedVerbs>
+ </uap3:FileTypeAssociation>
+ </uap3:Extension>
+ <uap3:Extension Category="windows.protocol">
+ <uap3:Protocol Name="http" Parameters="-osint -url &quot;%1&quot;">
+ <uap:DisplayName>http</uap:DisplayName>
+ <uap:Logo>Assets\Document44x44.png</uap:Logo>
+ </uap3:Protocol>
+ </uap3:Extension>
+ <uap3:Extension Category="windows.protocol">
+ <uap3:Protocol Name="https" Parameters="-osint -url &quot;%1&quot;">
+ <uap:DisplayName>https</uap:DisplayName>
+ <uap:Logo>Assets\Document44x44.png</uap:Logo>
+ </uap3:Protocol>
+ </uap3:Extension>
+ <uap3:Extension Category="windows.protocol">
+ <uap3:Protocol Name="mailto" Parameters="-osint -url &quot;%1&quot;">
+ <uap:DisplayName>mailto</uap:DisplayName>
+ <uap:Logo>Assets\Document44x44.png</uap:Logo>
+ </uap3:Protocol>
+ </uap3:Extension>
+ <!-- COM registrations for the notification server. -->
+ <com:Extension Category="windows.comServer">
+ <com:ComServer>
+ <com:SurrogateServer DisplayName="NotificationServer"
+ AppId="@MOZ_INOTIFICATIONACTIVATION_CLSID@">
+ <com:Class Id="@MOZ_INOTIFICATIONACTIVATION_CLSID@"
+ Path="VFS\ProgramFiles\@APPX_INSTDIR@\notificationserver.dll"
+ ThreadingModel="Both" />
+ </com:SurrogateServer>
+ </com:ComServer>
+ </com:Extension>
+ <desktop:Extension Category="windows.toastNotificationActivation">
+ <desktop:ToastNotificationActivation ToastActivatorCLSID="@MOZ_INOTIFICATIONACTIVATION_CLSID@" />
+ </desktop:Extension>
+ </Extensions>
+ </Application>
+ </Applications>
+ <Extensions>
+ <!-- These COM registrations allow Windows/MSAA to access Firefox accessibility features. -->
+ <com:Extension Category="windows.comInterface">
+ <com:ComInterface>
+ <com:ProxyStub DisplayName="AccessibleHandler"
+ Id="@MOZ_IGECKOBACKCHANNEL_IID@"
+ Path="VFS\ProgramFiles\@APPX_INSTDIR@\AccessibleHandler.dll" />
+ <com:ProxyStub DisplayName="AccessibleMarshal"
+ Id="1814ceeb-49e2-407f-af99-fa755a7d2607"
+ Path="VFS\ProgramFiles\@APPX_INSTDIR@\AccessibleMarshal.dll" />
+ <com:Interface Id="@MOZ_IGECKOBACKCHANNEL_IID@"
+ ProxyStubClsid="@MOZ_IGECKOBACKCHANNEL_IID@" />
+ <com:Interface Id="@MOZ_IHANDLERCONTROL_IID@"
+ ProxyStubClsid="@MOZ_IGECKOBACKCHANNEL_IID@"
+ AsynchronousInterface="@MOZ_ASYNCIHANDLERCONTROL_IID@" />
+ <com:Interface Id="@MOZ_ASYNCIHANDLERCONTROL_IID@"
+ ProxyStubClsid="@MOZ_IGECKOBACKCHANNEL_IID@"
+ SynchronousInterface="@MOZ_IHANDLERCONTROL_IID@" />
+ <com:Interface Id="4e747be5-2052-4265-8af0-8ecad7aad1c0"
+ ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607" />
+ <com:Interface Id="1814ceeb-49e2-407f-af99-fa755a7d2607"
+ ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607" />
+ <com:Interface Id="0d68d6d0-d93d-4d08-a30d-f00dd1f45b24"
+ ProxyStubClsid="1814ceeb-49e2-407f-af99-fa755a7d2607" />
+ </com:ComInterface>
+ </com:Extension>
+ </Extensions>
+</Package>
diff --git a/browser/installer/windows/msix/Resources.pri b/browser/installer/windows/msix/Resources.pri
new file mode 100644
index 0000000000..887097ea3e
--- /dev/null
+++ b/browser/installer/windows/msix/Resources.pri
Binary files differ
diff --git a/browser/installer/windows/msix/distribution/distribution.ini b/browser/installer/windows/msix/distribution/distribution.ini
new file mode 100644
index 0000000000..b39f8df795
--- /dev/null
+++ b/browser/installer/windows/msix/distribution/distribution.ini
@@ -0,0 +1,12 @@
+# Partner Distribution Configuration File
+# Author: Mozilla
+# Date: 2021-07-19
+
+[Global]
+id=mozilla-MSIX
+version=1.0
+about=Windows MSIX package
+
+[Preferences]
+intl.locale.requested=""
+intl.multilingual.enabled=true
diff --git a/browser/installer/windows/msix/msix-all-locales b/browser/installer/windows/msix/msix-all-locales
new file mode 100644
index 0000000000..8d73ee6312
--- /dev/null
+++ b/browser/installer/windows/msix/msix-all-locales
@@ -0,0 +1,361 @@
+# Locale codes supported by Microsoft Windows and MSIX packages.
+#
+# From https://docs.microsoft.com/en-us/windows/uwp/publish/supported-languages.
+# Fetched on September 15, 2021.
+#
+# The following codes are listed as supported but for reasons unknown, Windows won't install
+# packages advertising them:
+#
+# sr* (Serbian)
+# uz* (Uzbek)
+
+af
+af-za
+am
+am-et
+ar
+ar-ae
+ar-bh
+ar-dz
+ar-eg
+ar-iq
+ar-jo
+ar-kw
+ar-lb
+ar-ly
+ar-ma
+ar-om
+ar-qa
+ar-sa
+ar-sy
+ar-tn
+ar-ye
+as
+as-in
+az-arab
+az-arab-az
+az-cyrl
+az-cyrl-az
+az-latn
+az-latn-az
+be
+be-by
+bg
+bg-bg
+bn
+bn-bd
+bn-in
+bs
+bs-cyrl
+bs-cyrl-ba
+bs-latn
+bs-latn-ba
+ca
+ca-es
+ca-es-valencia
+chr-cher
+chr-cher-us
+chr-latn
+cs
+cs-cz
+cy
+cy-gb
+da
+da-dk
+de
+de-at
+de-ch
+de-de
+de-li
+de-lu
+el
+el-gr
+en
+en-011
+en-014
+en-018
+en-021
+en-029
+en-053
+en-au
+en-bz
+en-ca
+en-gb
+en-hk
+en-id
+en-ie
+en-in
+en-jm
+en-kz
+en-mt
+en-my
+en-nz
+en-ph
+en-pk
+en-sg
+en-tt
+en-us
+en-vn
+en-za
+en-zw
+es
+es-019
+es-419
+es-ar
+es-bo
+es-cl
+es-co
+es-cr
+es-do
+es-ec
+es-es
+es-gt
+es-hn
+es-mx
+es-ni
+es-pa
+es-pe
+es-pr
+es-py
+es-sv
+es-us
+es-uy
+es-ve
+et
+et-ee
+eu
+eu-es
+fa
+fa-ir
+fi
+fi-fi
+fil
+fil-latn
+fil-ph
+fr
+fr-011
+fr-015
+fr-021
+fr-029
+fr-155
+fr-be
+fr-ca
+fr-cd
+fr-ch
+fr-ci
+fr-cm
+fr-fr
+fr-ht
+fr-lu
+fr-ma
+fr-mc
+fr-ml
+fr-re
+frc-latn
+frp-latn
+ga
+ga-ie
+gd-gb
+gd-latn
+gl
+gl-es
+gu
+gu-in
+ha
+ha-latn
+ha-latn-ng
+he
+he-il
+hi
+hi-in
+hr
+hr-ba
+hr-hr
+hu
+hu-hu
+hy
+hy-am
+id
+id-id
+ig-latn
+ig-ng
+is
+is-is
+it
+it-ch
+it-it
+iu-cans
+iu-latn
+iu-latn-ca
+ja
+ja-jp
+ka
+ka-ge
+kk
+kk-kz
+km
+km-kh
+kn
+kn-in
+ko
+ko-kr
+kok
+kok-in
+ku-arab
+ku-arab-iq
+ky-cyrl
+ky-kg
+lb
+lb-lu
+lo
+lo-la
+lt
+lt-lt
+lv
+lv-lv
+mi
+mi-latn
+mi-nz
+mk
+mk-mk
+ml
+ml-in
+mn-cyrl
+mn-mn
+mn-mong
+mn-phag
+mr
+mr-in
+ms
+ms-bn
+ms-my
+mt
+mt-mt
+nb
+nb-no
+ne
+ne-np
+nl
+nl-be
+nl-nl
+nn
+nn-no
+no
+no-no
+nso
+nso-za
+or
+or-in
+pa
+pa-arab
+pa-arab-pk
+pa-deva
+pa-in
+pl
+pl-pl
+prs
+prs-af
+prs-arab
+pt
+pt-br
+pt-pt
+quc-latn
+qut-gt
+qut-latn
+quz
+quz-bo
+quz-ec
+quz-pe
+ro
+ro-ro
+ru
+ru-ru
+rw
+rw-rw
+sd-arab
+sd-arab-pk
+sd-deva
+si
+si-lk
+sk
+sk-sk
+sl
+sl-si
+sq
+sq-al
+# sr # For reasons unknown, Windows won't install packages advertising these locales.
+# sr-Latn
+# sr-cyrl
+# sr-cyrl-ba
+# sr-cyrl-cs
+# sr-cyrl-me
+# sr-cyrl-rs
+# sr-latn-ba
+# sr-latn-cs
+# sr-latn-me
+# sr-latn-rs
+sv
+sv-fi
+sv-se
+sw
+sw-ke
+ta
+ta-in
+te
+te-in
+tg-arab
+tg-cyrl
+tg-cyrl-tj
+tg-latn
+th
+th-th
+ti
+ti-et
+tk-cyrl
+tk-cyrl-tr
+tk-latn
+tk-latn-tr
+tk-tm
+tn
+tn-bw
+tn-za
+tr
+tr-tr
+tt-arab
+tt-cyrl
+tt-latn
+tt-ru
+ug-arab
+ug-cn
+ug-cyrl
+ug-latn
+uk
+uk-ua
+ur
+ur-pk
+# uz # For reasons unknown, Windows won't install packages advertising these locales.
+# uz-cyrl
+# uz-latn
+# uz-latn-uz
+vi
+vi-vn
+wo
+wo-sn
+xh
+xh-za
+yo-latn
+yo-ng
+zh-Hans
+zh-Hant
+zh-cn
+zh-hans-cn
+zh-hans-sg
+zh-hant-hk
+zh-hant-mo
+zh-hant-tw
+zh-hk
+zh-mo
+zh-sg
+zh-tw
+zu
+zu-za
diff --git a/browser/installer/windows/msix/priconfig.xml b/browser/installer/windows/msix/priconfig.xml
new file mode 100644
index 0000000000..62f0668d5f
--- /dev/null
+++ b/browser/installer/windows/msix/priconfig.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- 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/. -->
+
+<resources targetOsVersion="10.0.0" majorVersion="1">
+ <!-- Commenting this out yields a single `.pri` declaring all scales. See
+ https://stackoverflow.com/a/42975692. -->
+ <!-- <packaging> -->
+ <!-- <autoResourcePackage qualifier="Language"/> -->
+ <!-- <autoResourcePackage qualifier="Scale"/> -->
+ <!-- <autoResourcePackage qualifier="DXFeatureLevel"/> -->
+ <!-- </packaging> -->
+ <index root="\" startIndexAt="\">
+ <default>
+ <qualifier name="Language" value="en-US"/>
+ <qualifier name="Contrast" value="standard"/>
+ <qualifier name="Scale" value="100"/>
+ <qualifier name="HomeRegion" value="001"/>
+ <qualifier name="TargetSize" value="256"/>
+ <qualifier name="LayoutDirection" value="LTR"/>
+ <qualifier name="Theme" value="dark"/>
+ <qualifier name="AlternateForm" value=""/>
+ <qualifier name="DXFeatureLevel" value="DX9"/>
+ <qualifier name="Configuration" value=""/>
+ <qualifier name="DeviceFamily" value="Universal"/>
+ <qualifier name="Custom" value=""/>
+ </default>
+ <indexer-config type="folder" foldernameAsQualifier="true" filenameAsQualifier="true" qualifierDelimiter="."/>
+ <indexer-config type="resw" convertDotsToSlashes="true" initialPath=""/>
+ <indexer-config type="resjson" initialPath=""/>
+ <indexer-config type="PRI"/>
+ </index>
+ <!--<index startIndexAt="Start Index Here" root="Root Here">-->
+ <!-- <indexer-config type="resfiles" qualifierDelimiter="."/>-->
+ <!-- <indexer-config type="priinfo" emitStrings="true" emitPaths="true" emitEmbeddedData="true"/>-->
+ <!--</index>-->
+</resources>