diff --git a/browser/branding/esr/LICENSE b/browser/branding/esr/LICENSE
new file mode 100644
index 0000000000000..1c994b15f4f4d
--- /dev/null
+++ b/browser/branding/esr/LICENSE
@@ -0,0 +1,10 @@
+These files are under the MPL 2, as below. However, please note that you
+are not granted any trademark rights or licenses to the trademarks of the
+Eclipse Community or any party, including without limitation the
+r3dfox name or logo.
+
+For more information, see: https://www.mozilla.org/foundation/licensing/
+
+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 https://mozilla.org/MPL/2.0/.
diff --git a/browser/branding/esr/PrivateBrowsing_150.png b/browser/branding/esr/PrivateBrowsing_150.png
new file mode 100644
index 0000000000000..0a4bddc39dafc
Binary files /dev/null and b/browser/branding/esr/PrivateBrowsing_150.png differ
diff --git a/browser/branding/esr/PrivateBrowsing_70.png b/browser/branding/esr/PrivateBrowsing_70.png
new file mode 100644
index 0000000000000..ddccc2ca93ca9
Binary files /dev/null and b/browser/branding/esr/PrivateBrowsing_70.png differ
diff --git a/browser/branding/esr/VisualElements_150.png b/browser/branding/esr/VisualElements_150.png
new file mode 100644
index 0000000000000..cc5fa171b5766
Binary files /dev/null and b/browser/branding/esr/VisualElements_150.png differ
diff --git a/browser/branding/esr/VisualElements_70.png b/browser/branding/esr/VisualElements_70.png
new file mode 100644
index 0000000000000..b3816b7ae43ea
Binary files /dev/null and b/browser/branding/esr/VisualElements_70.png differ
diff --git a/browser/branding/esr/background.png b/browser/branding/esr/background.png
new file mode 100644
index 0000000000000..4dd6d6adf40b4
Binary files /dev/null and b/browser/branding/esr/background.png differ
diff --git a/browser/branding/esr/bgstub.jpg b/browser/branding/esr/bgstub.jpg
new file mode 100644
index 0000000000000..3756864b6f73b
Binary files /dev/null and b/browser/branding/esr/bgstub.jpg differ
diff --git a/browser/branding/esr/bgstub_2x.jpg b/browser/branding/esr/bgstub_2x.jpg
new file mode 100644
index 0000000000000..50794e386644e
Binary files /dev/null and b/browser/branding/esr/bgstub_2x.jpg differ
diff --git a/browser/branding/esr/branding.nsi b/browser/branding/esr/branding.nsi
new file mode 100644
index 0000000000000..240d3316798ef
--- /dev/null
+++ b/browser/branding/esr/branding.nsi
@@ -0,0 +1,76 @@
+# 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/.
+
+# NSIS branding defines for official release builds.
+# The nightly build branding.nsi is located in browser/installer/windows/nsis/
+# The unofficial build branding.nsi is located in browser/branding/unofficial/
+
+# BrandFullNameInternal is used for some registry and file system values
+# instead of BrandFullName and typically should not be modified.
+!define BrandFullNameInternal "Eclipse r3dfox ESR"
+!define BrandFullName "Eclipse r3dfox ESR"
+!define CompanyName "Eclipse Community"
+!define URLInfoAbout "https://eclipse.cx"
+!define URLUpdateInfo "https://github.com/Eclipse-Community/r3dfox/releases"
+!define HelpLink "https://github.com/Eclipse-Community/r3dfox/issues"
+
+; The OFFICIAL define is a workaround to support different urls for Release and
+; Beta since they share the same branding when building with other branches that
+; set the update channel to beta.
+!define OFFICIAL
+!define URLStubDownloadX86 ""
+!define URLStubDownloadAMD64 ""
+!define URLStubDownloadAArch64 ""
+!define URLManualDownload ""
+!define URLSystemRequirements ""
+!define Channel "release"
+
+# The installer's certificate name and issuer expected by the stub installer
+!define CertNameDownload "Mozilla Corporation"
+!define CertIssuerDownload "DigiCert SHA2 Assured ID Code Signing CA"
+
+# Dialog units are used so the UI displays correctly with the system's DPI
+# settings. These are tweaked to look good with the en-US strings; ideally
+# we would customize them for each locale but we don't really have a way to
+# implement that and it would be a ton of work for the localizers.
+!define PROFILE_CLEANUP_LABEL_TOP "50u"
+!define PROFILE_CLEANUP_LABEL_LEFT "22u"
+!define PROFILE_CLEANUP_LABEL_WIDTH "175u"
+!define PROFILE_CLEANUP_LABEL_HEIGHT "100u"
+!define PROFILE_CLEANUP_LABEL_ALIGN "left"
+!define PROFILE_CLEANUP_CHECKBOX_LEFT "22u"
+!define PROFILE_CLEANUP_CHECKBOX_WIDTH "175u"
+!define PROFILE_CLEANUP_BUTTON_LEFT "22u"
+!define INSTALL_HEADER_TOP "70u"
+!define INSTALL_HEADER_LEFT "22u"
+!define INSTALL_HEADER_WIDTH "180u"
+!define INSTALL_HEADER_HEIGHT "100u"
+!define INSTALL_BODY_LEFT "22u"
+!define INSTALL_BODY_WIDTH "180u"
+!define INSTALL_INSTALLING_TOP "115u"
+!define INSTALL_INSTALLING_LEFT "270u"
+!define INSTALL_INSTALLING_WIDTH "150u"
+!define INSTALL_PROGRESS_BAR_TOP "100u"
+!define INSTALL_PROGRESS_BAR_LEFT "270u"
+!define INSTALL_PROGRESS_BAR_WIDTH "150u"
+!define INSTALL_PROGRESS_BAR_HEIGHT "12u"
+
+!define PROFILE_CLEANUP_CHECKBOX_TOP_MARGIN "12u"
+!define PROFILE_CLEANUP_BUTTON_TOP_MARGIN "12u"
+!define PROFILE_CLEANUP_BUTTON_X_PADDING "80u"
+!define PROFILE_CLEANUP_BUTTON_Y_PADDING "8u"
+!define INSTALL_BODY_TOP_MARGIN "20u"
+
+# Font settings that can be customized for each channel
+!define INSTALL_HEADER_FONT_SIZE 20
+!define INSTALL_HEADER_FONT_WEIGHT 600
+!define INSTALL_INSTALLING_FONT_SIZE 15
+!define INSTALL_INSTALLING_FONT_WEIGHT 600
+
+# UI Colors that can be customized for each channel
+!define COMMON_TEXT_COLOR 0x000000
+!define COMMON_BACKGROUND_COLOR 0xFFFFFF
+!define INSTALL_INSTALLING_TEXT_COLOR 0xFFFFFF
+# This color is written as 0x00BBGGRR because it's actually a COLORREF value.
+!define PROGRESS_BAR_BACKGROUND_COLOR 0xFFAA00
diff --git a/browser/branding/esr/configure.sh b/browser/branding/esr/configure.sh
new file mode 100644
index 0000000000000..2f6b642e5785e
--- /dev/null
+++ b/browser/branding/esr/configure.sh
@@ -0,0 +1,27 @@
+# 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/.
+
+MOZ_APP_NAME=r3dfox_esr
+
+MOZ_APP_BASENAME=r3dfox ESR
+
+MOZ_APP_DISPLAYNAME=r3dfox ESR
+
+MOZ_APP_UA_NAME=r3dfox
+
+MOZ_APP_VENDOR="Eclipse Community"
+
+MOZ_APP_PROFILE="Eclipse Community/r3dfox"
+
+MOZ_APP_REMOTINGNAME=com.eclipse.r3dfox
+
+MOZ_MACBUNDLE_ID=com.eclipse.r3dfox
+
+MOZ_DISTRIBUTION_ID=com.eclipse
+
+MOZ_MACBUNDLE_NAME="r3dfox.app"
+
+MOZ_SOURCE_REPO=https://github.com/Eclipse-Community/r3dfox
+
+MOZ_DEVTOOLS=all
diff --git a/browser/branding/esr/content/about-logo-private.png b/browser/branding/esr/content/about-logo-private.png
new file mode 100644
index 0000000000000..d4bef8465e89f
Binary files /dev/null and b/browser/branding/esr/content/about-logo-private.png differ
diff --git a/browser/branding/esr/content/about-logo-private@2x.png b/browser/branding/esr/content/about-logo-private@2x.png
new file mode 100644
index 0000000000000..b56e7d0b9f151
Binary files /dev/null and b/browser/branding/esr/content/about-logo-private@2x.png differ
diff --git a/browser/branding/esr/content/about-logo.png b/browser/branding/esr/content/about-logo.png
new file mode 100644
index 0000000000000..03f59cff012e9
Binary files /dev/null and b/browser/branding/esr/content/about-logo.png differ
diff --git a/browser/branding/esr/content/about-logo.svg b/browser/branding/esr/content/about-logo.svg
new file mode 100644
index 0000000000000..fc53e5d4f8ee5
Binary files /dev/null and b/browser/branding/esr/content/about-logo.svg differ
diff --git a/browser/branding/esr/content/about-logo@2x.png b/browser/branding/esr/content/about-logo@2x.png
new file mode 100644
index 0000000000000..99819d69734bc
Binary files /dev/null and b/browser/branding/esr/content/about-logo@2x.png differ
diff --git a/browser/branding/esr/content/about-wordmark.svg b/browser/branding/esr/content/about-wordmark.svg
new file mode 100644
index 0000000000000..8144ef8477776
--- /dev/null
+++ b/browser/branding/esr/content/about-wordmark.svg
@@ -0,0 +1,13 @@
+
+
diff --git a/browser/branding/esr/content/about.png b/browser/branding/esr/content/about.png
new file mode 100644
index 0000000000000..ab37eacbb7658
Binary files /dev/null and b/browser/branding/esr/content/about.png differ
diff --git a/browser/branding/esr/content/aboutDialog.css b/browser/branding/esr/content/aboutDialog.css
new file mode 100644
index 0000000000000..10fea7ba92807
--- /dev/null
+++ b/browser/branding/esr/content/aboutDialog.css
@@ -0,0 +1,26 @@
+/* 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/. */
+
+#aboutDialogContainer {
+ background: linear-gradient(to bottom, #602A17 0%,#3B1E14 93%,#371E14 97%,#361D14 100%);
+ color: #fff;
+ color-scheme: dark;
+}
+
+#rightBox {
+ background-size: 360px auto;
+ margin-inline: 30px;
+}
+
+#bottomBox {
+ background-color: hsla(0, 43%, 10%, .5);
+ padding: 15px 10px 15px;
+}
+
+#trademark {
+ font-size: xx-small;
+ text-align: center;
+ color: #999999;
+ margin-block: 10px;
+}
diff --git a/browser/branding/esr/content/document_pdf.svg b/browser/branding/esr/content/document_pdf.svg
new file mode 100644
index 0000000000000..f507484242698
Binary files /dev/null and b/browser/branding/esr/content/document_pdf.svg differ
diff --git a/browser/branding/esr/content/firefox-wordmark.svg b/browser/branding/esr/content/firefox-wordmark.svg
new file mode 100644
index 0000000000000..9bc084be1aed5
--- /dev/null
+++ b/browser/branding/esr/content/firefox-wordmark.svg
@@ -0,0 +1,13 @@
+
+
diff --git a/browser/branding/esr/content/jar.mn b/browser/branding/esr/content/jar.mn
new file mode 100644
index 0000000000000..e4894296d99da
--- /dev/null
+++ b/browser/branding/esr/content/jar.mn
@@ -0,0 +1,22 @@
+# 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/.
+
+browser.jar:
+% content branding %content/branding/ contentaccessible=yes
+ content/branding/about.png
+ content/branding/about-logo.png
+ content/branding/about-logo.svg
+ content/branding/about-logo@2x.png
+ content/branding/about-logo-private.png
+ content/branding/about-logo-private@2x.png
+ content/branding/about-wordmark.svg
+ content/branding/document.ico (../document.ico)
+ content/branding/document_pdf.svg
+ content/branding/firefox-wordmark.svg
+ content/branding/icon16.png (../default16.png)
+ content/branding/icon32.png (../default32.png)
+ content/branding/icon48.png (../default48.png)
+ content/branding/icon64.png (../default64.png)
+ content/branding/icon128.png (../default128.png)
+ content/branding/aboutDialog.css
diff --git a/browser/branding/esr/content/moz.build b/browser/branding/esr/content/moz.build
new file mode 100644
index 0000000000000..d988c0ff9b162
--- /dev/null
+++ b/browser/branding/esr/content/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ["jar.mn"]
diff --git a/browser/branding/esr/default128.png b/browser/branding/esr/default128.png
new file mode 100644
index 0000000000000..87e4eb3bfa382
Binary files /dev/null and b/browser/branding/esr/default128.png differ
diff --git a/browser/branding/esr/default16.png b/browser/branding/esr/default16.png
new file mode 100644
index 0000000000000..80b500a541039
Binary files /dev/null and b/browser/branding/esr/default16.png differ
diff --git a/browser/branding/esr/default22.png b/browser/branding/esr/default22.png
new file mode 100644
index 0000000000000..17d986c4919ca
Binary files /dev/null and b/browser/branding/esr/default22.png differ
diff --git a/browser/branding/esr/default24.png b/browser/branding/esr/default24.png
new file mode 100644
index 0000000000000..c53579bbd3de1
Binary files /dev/null and b/browser/branding/esr/default24.png differ
diff --git a/browser/branding/esr/default256.png b/browser/branding/esr/default256.png
new file mode 100644
index 0000000000000..dfc04254424aa
Binary files /dev/null and b/browser/branding/esr/default256.png differ
diff --git a/browser/branding/esr/default32.png b/browser/branding/esr/default32.png
new file mode 100644
index 0000000000000..725291f8c6fb2
Binary files /dev/null and b/browser/branding/esr/default32.png differ
diff --git a/browser/branding/esr/default48.png b/browser/branding/esr/default48.png
new file mode 100644
index 0000000000000..0ff24f36bc6f3
Binary files /dev/null and b/browser/branding/esr/default48.png differ
diff --git a/browser/branding/esr/default64.png b/browser/branding/esr/default64.png
new file mode 100644
index 0000000000000..67804b651c9cb
Binary files /dev/null and b/browser/branding/esr/default64.png differ
diff --git a/browser/branding/esr/disk.icns b/browser/branding/esr/disk.icns
new file mode 100644
index 0000000000000..4353ef0965f34
Binary files /dev/null and b/browser/branding/esr/disk.icns differ
diff --git a/browser/branding/esr/document.icns b/browser/branding/esr/document.icns
new file mode 100644
index 0000000000000..50d9701405a52
Binary files /dev/null and b/browser/branding/esr/document.icns differ
diff --git a/browser/branding/esr/document.ico b/browser/branding/esr/document.ico
new file mode 100644
index 0000000000000..92691c03f7780
Binary files /dev/null and b/browser/branding/esr/document.ico differ
diff --git a/browser/branding/esr/document_pdf.ico b/browser/branding/esr/document_pdf.ico
new file mode 100644
index 0000000000000..cb4a5b0cdf3da
Binary files /dev/null and b/browser/branding/esr/document_pdf.ico differ
diff --git a/browser/branding/esr/dsstore b/browser/branding/esr/dsstore
new file mode 100644
index 0000000000000..8ea7036745666
Binary files /dev/null and b/browser/branding/esr/dsstore differ
diff --git a/browser/branding/esr/firefox.VisualElementsManifest.xml b/browser/branding/esr/firefox.VisualElementsManifest.xml
new file mode 100644
index 0000000000000..5cd84974463b8
--- /dev/null
+++ b/browser/branding/esr/firefox.VisualElementsManifest.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/browser/branding/esr/firefox.icns b/browser/branding/esr/firefox.icns
new file mode 100644
index 0000000000000..98199f624f0f9
Binary files /dev/null and b/browser/branding/esr/firefox.icns differ
diff --git a/browser/branding/esr/firefox.ico b/browser/branding/esr/firefox.ico
new file mode 100644
index 0000000000000..9a7cb7d8ae277
Binary files /dev/null and b/browser/branding/esr/firefox.ico differ
diff --git a/browser/branding/esr/firefox64.ico b/browser/branding/esr/firefox64.ico
new file mode 100644
index 0000000000000..11b754144acbd
Binary files /dev/null and b/browser/branding/esr/firefox64.ico differ
diff --git a/browser/branding/esr/locales/en-US/brand.ftl b/browser/branding/esr/locales/en-US/brand.ftl
new file mode 100644
index 0000000000000..b37fc47677194
--- /dev/null
+++ b/browser/branding/esr/locales/en-US/brand.ftl
@@ -0,0 +1,27 @@
+# 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/.
+
+## r3dfox and Eclipse Community Brand
+##
+## r3dfox and Eclipse Community must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-brand-shorter-name = r3dfox ESR
+-brand-short-name = r3dfox ESR
+-brand-shortcut-name = r3dfox ESR
+-brand-full-name = Eclipse r3dfox ESR
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+-brand-product-name = r3dfox ESR
+-vendor-short-name = Eclipse Community
+trademarkInfo = { "r3dfox logos are copyrights of Eclipse Community." }
diff --git a/browser/branding/esr/locales/en-US/brand.properties b/browser/branding/esr/locales/en-US/brand.properties
new file mode 100644
index 0000000000000..f62ad3bf32f7c
--- /dev/null
+++ b/browser/branding/esr/locales/en-US/brand.properties
@@ -0,0 +1,13 @@
+# 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/.
+
+brandShorterName=r3dfox ESR
+brandShortName=r3dfox ESR
+brandFullName=Eclipse r3dfox ESR
+# LOCALIZATION NOTE(brandProductName):
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+brandProductName=r3dfox ESR
+vendorShortName=Eclipse Community
+syncBrandShortName=r3dfox Sync
diff --git a/browser/branding/esr/locales/jar.mn b/browser/branding/esr/locales/jar.mn
new file mode 100644
index 0000000000000..2250233dd6245
--- /dev/null
+++ b/browser/branding/esr/locales/jar.mn
@@ -0,0 +1,11 @@
+#filter substitution
+# 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/.
+
+[localization] @AB_CD@.jar:
+ branding (%*.ftl)
+
+@AB_CD@.jar:
+% locale branding @AB_CD@ %locale/branding/
+ locale/branding/brand.properties (%brand.properties)
diff --git a/browser/branding/esr/locales/moz.build b/browser/branding/esr/locales/moz.build
new file mode 100644
index 0000000000000..d988c0ff9b162
--- /dev/null
+++ b/browser/branding/esr/locales/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+JAR_MANIFESTS += ["jar.mn"]
diff --git a/browser/branding/esr/moz.build b/browser/branding/esr/moz.build
new file mode 100644
index 0000000000000..dd081ac44496d
--- /dev/null
+++ b/browser/branding/esr/moz.build
@@ -0,0 +1,13 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+DIRS += ["content", "locales"]
+
+DIST_SUBDIR = "browser"
+export("DIST_SUBDIR")
+
+include("../branding-common.mozbuild")
+FirefoxBranding()
diff --git a/browser/branding/esr/msix/Assets/Document44x44.png b/browser/branding/esr/msix/Assets/Document44x44.png
new file mode 100644
index 0000000000000..6b4855a22d2cb
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Document44x44.png differ
diff --git a/browser/branding/esr/msix/Assets/LargeTile.scale-200.png b/browser/branding/esr/msix/Assets/LargeTile.scale-200.png
new file mode 100644
index 0000000000000..c0183be2d94a1
Binary files /dev/null and b/browser/branding/esr/msix/Assets/LargeTile.scale-200.png differ
diff --git a/browser/branding/esr/msix/Assets/SmallTile.scale-200.png b/browser/branding/esr/msix/Assets/SmallTile.scale-200.png
new file mode 100644
index 0000000000000..8130df5fa0490
Binary files /dev/null and b/browser/branding/esr/msix/Assets/SmallTile.scale-200.png differ
diff --git a/browser/branding/esr/msix/Assets/Square150x150Logo.scale-200.png b/browser/branding/esr/msix/Assets/Square150x150Logo.scale-200.png
new file mode 100644
index 0000000000000..2201a29f8a527
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Square150x150Logo.scale-200.png differ
diff --git a/browser/branding/esr/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/browser/branding/esr/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png
new file mode 100644
index 0000000000000..34782f67ad4bd
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png differ
diff --git a/browser/branding/esr/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/browser/branding/esr/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
new file mode 100644
index 0000000000000..34782f67ad4bd
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Square44x44Logo.altform-unplated_targetsize-256.png differ
diff --git a/browser/branding/esr/msix/Assets/Square44x44Logo.scale-200.png b/browser/branding/esr/msix/Assets/Square44x44Logo.scale-200.png
new file mode 100644
index 0000000000000..c1c040fbd2d3a
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Square44x44Logo.scale-200.png differ
diff --git a/browser/branding/esr/msix/Assets/Square44x44Logo.targetsize-256.png b/browser/branding/esr/msix/Assets/Square44x44Logo.targetsize-256.png
new file mode 100644
index 0000000000000..2e0c0ba0356c4
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Square44x44Logo.targetsize-256.png differ
diff --git a/browser/branding/esr/msix/Assets/StoreLogo.scale-200.png b/browser/branding/esr/msix/Assets/StoreLogo.scale-200.png
new file mode 100644
index 0000000000000..c398bbf5b2c3b
Binary files /dev/null and b/browser/branding/esr/msix/Assets/StoreLogo.scale-200.png differ
diff --git a/browser/branding/esr/msix/Assets/Wide310x150Logo.scale-200.png b/browser/branding/esr/msix/Assets/Wide310x150Logo.scale-200.png
new file mode 100644
index 0000000000000..2759c2989ba62
Binary files /dev/null and b/browser/branding/esr/msix/Assets/Wide310x150Logo.scale-200.png differ
diff --git a/browser/branding/esr/newtab.ico b/browser/branding/esr/newtab.ico
new file mode 100644
index 0000000000000..a9b37c08c6e18
Binary files /dev/null and b/browser/branding/esr/newtab.ico differ
diff --git a/browser/branding/esr/newwindow.ico b/browser/branding/esr/newwindow.ico
new file mode 100644
index 0000000000000..55372077102c4
Binary files /dev/null and b/browser/branding/esr/newwindow.ico differ
diff --git a/browser/branding/esr/pbmode.ico b/browser/branding/esr/pbmode.ico
new file mode 100644
index 0000000000000..89848c86cc6d2
Binary files /dev/null and b/browser/branding/esr/pbmode.ico differ
diff --git a/browser/branding/esr/pref/firefox-branding.js b/browser/branding/esr/pref/firefox-branding.js
new file mode 100644
index 0000000000000..5c9497e5916f4
--- /dev/null
+++ b/browser/branding/esr/pref/firefox-branding.js
@@ -0,0 +1,39 @@
+/* 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/. */
+
+// This file contains branding-specific prefs.
+
+pref("startup.homepage_override_url", "");
+pref("startup.homepage_welcome_url", "");
+pref("startup.homepage_welcome_url.additional", "");
+// Interval: Time between checks for a new version (in seconds)
+pref("app.update.interval", 86400); // 24 hours
+// Give the user x seconds to react before showing the big UI. default=192 hours
+pref("app.update.promptWaitTime", 691200);
+// URL user can browse to manually if for some reason all update installation
+// attempts fail.
+pref("app.update.url.manual", "");
+// A default value for the "More information about this update" link
+// supplied in the "An update is available" page of the update wizard.
+pref("app.update.url.details", "");
+
+pref("app.releaseNotesURL", "https://github.com/Eclipse-Community/r3dfox/releases");
+pref("app.releaseNotesURL.aboutDialog", "https://github.com/Eclipse-Community/r3dfox/releases");
+
+// The number of days a binary is permitted to be old
+// without checking for an update. This assumes that
+// app.update.checkInstallTime is true.
+pref("app.update.checkInstallTime.days", 63);
+
+// Give the user x seconds to reboot before showing a badge on the hamburger
+// button. default=4 days
+pref("app.update.badgeWaitTime", 345600);
+
+// Number of usages of the web console.
+// If this is less than 5, then pasting code into the web console is disabled
+pref("devtools.selfxss.count", 5);
+
+// r3dfox ESR customizations
+pref("r3dfox.browser.plasmafox", true);
+pref("r3dfox.colors.esr", true);
diff --git a/browser/branding/esr/private_browsing.VisualElementsManifest.xml b/browser/branding/esr/private_browsing.VisualElementsManifest.xml
new file mode 100644
index 0000000000000..1d12200b42c9f
--- /dev/null
+++ b/browser/branding/esr/private_browsing.VisualElementsManifest.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/browser/branding/esr/stubinstaller/bgstub.jpg b/browser/branding/esr/stubinstaller/bgstub.jpg
new file mode 100644
index 0000000000000..50794e386644e
Binary files /dev/null and b/browser/branding/esr/stubinstaller/bgstub.jpg differ
diff --git a/browser/branding/esr/stubinstaller/installing_page.css b/browser/branding/esr/stubinstaller/installing_page.css
new file mode 100644
index 0000000000000..5704eb3b3e964
--- /dev/null
+++ b/browser/branding/esr/stubinstaller/installing_page.css
@@ -0,0 +1,87 @@
+/* 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/. */
+
+body {
+ color: black;
+}
+
+/*
+ * We want to treat the two pieces of text in the left column as one unit and
+ center that unit vertically in the window. In order to make IE8 do that,
+ we have to wrap the two bits of text in a container and make that a
+ table-cell (which means we need an outer container that's display: table).
+ So that's what this mess is doing.
+ */
+#text_column {
+ position: fixed;
+ height: 100%;
+ margin-left: 30px;
+ width: 40%;
+ display: table;
+}
+
+#text_column_container {
+ display: table-cell;
+ vertical-align: middle;
+ padding-top: 60px;
+}
+
+#header {
+ font-size: 24px;
+ font-weight: 800;
+ margin-top: 0;
+}
+
+#content {
+ font-size: 22px;
+}
+
+#installing {
+ position: fixed;
+ right: 30px;
+ bottom: 55%;
+ margin-top: auto;
+ margin-bottom: auto;
+ width: 35%;
+}
+
+#label {
+ color: white;
+
+ position: relative;
+ top: 50px;
+
+ text-align: center;
+ font-size: 20px;
+}
+
+#progress_background {
+ width: 100%;
+ height: 20px;
+ background-color: white;
+}
+
+body.high-contrast #progress_background {
+ outline: solid;
+}
+
+#progress_bar {
+ margin: 0;
+ width: 0%;
+ height: 100%;
+ background-color: #00AAFF;
+}
+
+/* In high contrast mode, fill the entire progress bar with its border. */
+body.high-contrast #progress_bar {
+ /* This border should be the height of progress_background. */
+ border-top: 20px solid;
+ box-sizing: border-box;
+}
+
+/* No blurb or footer for this layout. */
+#blurb,
+#footer {
+ visibility: hidden;
+}
diff --git a/browser/branding/esr/stubinstaller/profile_cleanup_page.css b/browser/branding/esr/stubinstaller/profile_cleanup_page.css
new file mode 100644
index 0000000000000..a8dbad0e110e0
--- /dev/null
+++ b/browser/branding/esr/stubinstaller/profile_cleanup_page.css
@@ -0,0 +1,75 @@
+/* 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/. */
+
+body {
+ color: black;
+}
+
+/*
+ * We want to treat the two pieces of text in the left column as one unit and
+ center that unit vertically in the window. In order to make IE8 do that,
+ we have to wrap the two bits of text in a container and make that a
+ table-cell (which means we need an outer container that's display: table).
+ So that's what this mess is doing.
+ */
+#profileRefreshForm {
+ position: fixed;
+ height: 100%;
+ margin-left: 30px;
+ width: 40%;
+ display: table;
+}
+
+#profileRefreshContainer {
+ display: table-cell;
+ vertical-align: middle;
+}
+
+#refreshCheckboxContainer,
+#refreshButtonContainer {
+ margin-top: 20px;
+}
+
+#header {
+ font-size: 25px;
+ font-weight: 600;
+}
+
+#refreshCheckboxContainer {
+ position: relative;
+}
+
+#refreshCheckbox {
+ position: absolute;
+ top: 1px;
+}
+
+#checkboxLabel {
+ font-size: 14px;
+ display: block;
+}
+
+.checkboxLabel-ltr {
+ margin-left: 25px;
+}
+
+.checkboxLabel-rtl {
+ margin-right: 25px;
+}
+
+#refreshButton {
+ padding: 8px 70px;
+ font-size: 16px;
+ background: #005ccc;
+ color: white;
+}
+
+body.normal-contrast #refreshButton {
+ border: none;
+}
+
+/* No footer for this layout. */
+#footer {
+ visibility: hidden;
+}
diff --git a/browser/branding/esr/wizHeader.bmp b/browser/branding/esr/wizHeader.bmp
new file mode 100644
index 0000000000000..2dacbba1765df
Binary files /dev/null and b/browser/branding/esr/wizHeader.bmp differ
diff --git a/browser/branding/esr/wizHeaderRTL.bmp b/browser/branding/esr/wizHeaderRTL.bmp
new file mode 100644
index 0000000000000..dba4531116385
Binary files /dev/null and b/browser/branding/esr/wizHeaderRTL.bmp differ
diff --git a/browser/branding/esr/wizWatermark.bmp b/browser/branding/esr/wizWatermark.bmp
new file mode 100644
index 0000000000000..4a26dd0d4d691
Binary files /dev/null and b/browser/branding/esr/wizWatermark.bmp differ
diff --git a/browser/branding/official/content/document_pdf.svg b/browser/branding/official/content/document_pdf.svg
index d64c4adbd6bd7..b36b45671e79b 100644
Binary files a/browser/branding/official/content/document_pdf.svg and b/browser/branding/official/content/document_pdf.svg differ
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
index 3f4308c183569..5ee5e5c85cc55 100644
--- a/browser/components/preferences/main.inc.xhtml
+++ b/browser/components/preferences/main.inc.xhtml
@@ -72,6 +72,13 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
index 12a15adb0c2a5..ba6f7cce5df9d 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
@@ -104,6 +104,7 @@
skin/classic/browser/tracking-protection-active.svg (../shared/identity-block/tracking-protection-active.svg)
skin/classic/browser/r3d-toolbar-drag-indicator.svg (../shared/r3d-toolbar-drag-indicator.svg)
+ skin/classic/browser/esr-toolbar-drag-indicator.svg (../shared/esr-toolbar-drag-indicator.svg)
skin/classic/browser/plas-toolbar-drag-indicator.svg (../shared/plas-toolbar-drag-indicator.svg)
skin/classic/browser/toolbar-drag-indicator.svg (../shared/toolbar-drag-indicator.svg)
@@ -231,6 +232,7 @@
skin/classic/browser/tabbrowser/loading.svg (../shared/tabbrowser/loading.svg)
skin/classic/browser/tabbrowser/loading-burst.svg (../shared/tabbrowser/loading-burst.svg)
skin/classic/browser/tabbrowser/r3d-tab-drag-indicator.svg (../shared/tabbrowser/r3d-tab-drag-indicator.svg)
+ skin/classic/browser/tabbrowser/esr-tab-drag-indicator.svg (../shared/tabbrowser/esr-tab-drag-indicator.svg)
skin/classic/browser/tabbrowser/plas-tab-drag-indicator.svg (../shared/tabbrowser/plas-tab-drag-indicator.svg)
skin/classic/browser/tabbrowser/tab-audio-playing-small.svg (../shared/tabbrowser/tab-audio-playing-small.svg)
skin/classic/browser/tabbrowser/tab-audio-muted-small.svg (../shared/tabbrowser/tab-audio-muted-small.svg)
diff --git a/browser/themes/shared/r3dfox.css b/browser/themes/shared/r3dfox.css
index d354aa39b5e77..534ab8ad69108 100644
--- a/browser/themes/shared/r3dfox.css
+++ b/browser/themes/shared/r3dfox.css
@@ -45,6 +45,48 @@
list-style-image: url(chrome://browser/skin/r3d-toolbar-drag-indicator.svg) !important;
}
+ @media (-moz-bool-pref: "r3dfox.colors.esr") {
+ --arrowpanel-border-color: light-dark(rgb(255, 111, 63), rgb(183, 98, 69)) !important;
+ --toolbar-field-focus-border-color: light-dark(rgb(255, 96, 42), rgb(183, 98, 69)) !important;
+ --sidebar-border-color: light-dark(rgb(255, 111, 63), rgb(183, 98, 69)) !important;
+ --lwt-toolbar-field-highlight: light-dark(rgb(255, 96, 42), rgb(183, 98, 69)) !important;
+ --newtab-primary-action-background: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --newtab-primary-action-background-hover: light-dark(rgb(255, 96, 42), rgb(255, 111, 63)) !important;
+ --newtab-primary-action-background-active: light-dark(rgb(255, 96, 42), rgb(255, 96, 42)) !important;
+ --in-content-primary-button-background: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --in-content-primary-button-background-hover: light-dark(rgb(255, 96, 42), rgb(255, 111, 63)) !important;
+ --in-content-primary-button-background-active: light-dark(rgb(255, 96, 42), rgb(255, 96, 42)) !important;
+ --color-accent-primary: light-dark(rgb(255, 81, 23), rgb(255, 141, 102)) !important;
+ --color-accent-primary-hover: light-dark(rgb(255, 111, 63), rgb(255, 125, 82)) !important;
+ --color-accent-primary-active: light-dark(rgb(255, 111, 63), rgb(255, 111, 63)) !important;
+ --link-color: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --link-color-hover: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --link-color-active: light-dark(rgb(255, 111, 63), rgb(255, 111, 63)) !important;
+ --link-color-visited: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --button-primary-bgcolor: light-dark(rgb(255, 81, 23), rgb(255, 141, 102)) !important;
+ --button-primary-hover-bgcolor: light-dark(rgb(255, 111, 63), rgb(255, 125, 82)) !important;
+ --button-primary-active-bgcolor: light-dark(rgb(255, 111, 63), rgb(255, 111, 63)) !important;
+ --toolbarbutton-icon-fill-attention: light-dark(rgb(255, 81, 23), rgb(255, 125, 82)) !important;
+ --download-progress-fill-color: light-dark(rgb(255, 96, 42), rgb(255, 125, 82)) !important;
+ --lwt-tab-line-color: light-dark(rgb(255, 96, 42), rgb(255, 125, 82)) !important;
+
+ ::selection {
+ background: light-dark(rgb(255, 125, 82), rgb(183, 98, 69)) !important;
+ }
+
+ .bookmark-item:is(toolbarbutton)[dragover="true"][open="true"] {
+ background: light-dark(rgb(255, 125, 82), rgb(183, 98, 69)) !important;
+ }
+
+ .tab-drop-indicator {
+ background: url(chrome://browser/skin/tabbrowser/esr-tab-drag-indicator.svg) no-repeat center !important;
+ }
+
+ #PlacesToolbarDropIndicator {
+ list-style-image: url(chrome://browser/skin/esr-toolbar-drag-indicator.svg) !important;
+ }
+ }
+
@media (-moz-bool-pref: "r3dfox.colors.plasmafox") {
--arrowpanel-border-color: light-dark(rgb(255, 60, 206), rgb(160, 60, 135)) !important;
--toolbar-field-focus-border-color: light-dark(rgb(255, 40, 201), rgb(160, 60, 135)) !important;
diff --git a/browser/themes/shared/tabbrowser/esr-tab-drag-indicator.svg b/browser/themes/shared/tabbrowser/esr-tab-drag-indicator.svg
new file mode 100644
index 0000000000000..62b88074f8a2b
--- /dev/null
+++ b/browser/themes/shared/tabbrowser/esr-tab-drag-indicator.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index df1c2664cc002..6081225e14e8a 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -655,6 +655,7 @@ pref("r3dfox.transparent.menubar", true);
// Translucent navbar design
pref("r3dfox.translucent.navbar", false);
// Disable other customizations by default
+pref("r3dfox.colors.esr", false);
pref("r3dfox.browser.plasmafox", false);
pref("r3dfox.colors.plasmafox", false);
diff --git a/mozconfigs/mozconfig-win-cross-x64 b/mozconfigs/mozconfig-win-cross-x64
index 3fb7993ffca4e..11b509cc29465 100644
--- a/mozconfigs/mozconfig-win-cross-x64
+++ b/mozconfigs/mozconfig-win-cross-x64
@@ -7,6 +7,10 @@ ac_add_options --with-toolchain-prefix=x86_64-pc-mingw32
# Please do not redistribute this build with official branding if you are not part of Eclipse Community.
ac_add_options --with-app-name=r3dfox
ac_add_options --with-app-basename=r3dfox
+# For ESR enable the below and disable the above
+#ac_add_options --with-branding=browser/branding/esr
+#ac_add_options --with-app-name=r3dfox_esr
+#ac_add_options --with-app-basename="r3dfox ESR"
# For potential nightly experimentation enable the below and disable the above.
#ac_add_options --with-branding=browser/branding/nightly
#ac_add_options --with-app-name=plasmafox
diff --git a/mozconfigs/mozconfig-win-cross-x86 b/mozconfigs/mozconfig-win-cross-x86
index ee468909b857e..d8d536ae5f0ea 100644
--- a/mozconfigs/mozconfig-win-cross-x86
+++ b/mozconfigs/mozconfig-win-cross-x86
@@ -8,6 +8,10 @@ ac_add_options --disable-sandbox
# Please do not redistribute this build with official branding if you are not part of Eclipse Community.
ac_add_options --with-app-name=r3dfox
ac_add_options --with-app-basename=r3dfox
+# For ESR enable the below and disable the above
+#ac_add_options --with-branding=browser/branding/esr
+#ac_add_options --with-app-name=r3dfox_esr
+#ac_add_options --with-app-basename="r3dfox ESR"
# For potential nightly experimentation enable the below and disable the above.
#ac_add_options --with-branding=browser/branding/nightly
#ac_add_options --with-app-name=plasmafox
diff --git a/mozconfigs/mozconfig-win-x64 b/mozconfigs/mozconfig-win-x64
index 961098e29ef0e..7e86a2d20ab06 100644
--- a/mozconfigs/mozconfig-win-x64
+++ b/mozconfigs/mozconfig-win-x64
@@ -8,6 +8,10 @@ ac_add_options --target=x86_64
# Please do not redistribute this build with official branding if you are not part of Eclipse Community.
ac_add_options --with-app-name=r3dfox
ac_add_options --with-app-basename=r3dfox
+# For ESR enable the below and disable the above
+#ac_add_options --with-branding=browser/branding/esr
+#ac_add_options --with-app-name=r3dfox_esr
+#ac_add_options --with-app-basename="r3dfox ESR"
# For potential nightly experimentation enable the below and disable the above.
#ac_add_options --with-branding=browser/branding/nightly
#ac_add_options --with-app-name=plasmafox
diff --git a/mozconfigs/mozconfig-win-x86 b/mozconfigs/mozconfig-win-x86
index 110aae97e773e..e38d823f02787 100644
--- a/mozconfigs/mozconfig-win-x86
+++ b/mozconfigs/mozconfig-win-x86
@@ -9,6 +9,10 @@ ac_add_options --disable-sandbox
# Please do not redistribute this build with official branding if you are not part of Eclipse Community.
ac_add_options --with-app-name=r3dfox
ac_add_options --with-app-basename=r3dfox
+# For ESR enable the below and disable the above
+#ac_add_options --with-branding=browser/branding/esr
+#ac_add_options --with-app-name=r3dfox_esr
+#ac_add_options --with-app-basename="r3dfox ESR"
# For potential nightly experimentation enable the below and disable the above.
#ac_add_options --with-branding=browser/branding/nightly
#ac_add_options --with-app-name=plasmafox