diff --git a/.firefox.metadata b/.firefox.metadata
index b7b637f..8456303 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,8 +1,7 @@
 18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz
 a9effcc06cf80eaa22f12c1f7d6aa4266a1c4966 SOURCES/cbindgen-vendor-0.14.3.tar.xz
-d2c776e31de71a091c6f3c15772ea51d9623e437 SOURCES/firefox-78.7.0esr.source.tar.xz
-44cf71a4cbbffe9278ca35a7319ce70abb5737fb SOURCES/firefox-langpacks-78.7.0esr-20210122.tar.xz
-6724218efbb1f3fa14541cb2f255970b98446a45 SOURCES/firefox-symbolic.svg
+0da70b30de24716246dd090cf4b3245c91c5931c SOURCES/firefox-78.13.0esr.source.tar.xz
+140765234e3d4340710e09632d9af4a88ea10ba7 SOURCES/firefox-langpacks-78.13.0esr-20210805.tar.xz
 0de63f863b158454b9429234b52ed28a397ec45c SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
 e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
 5715f987bc0024ce5d72993cb101b8268350033b SOURCES/nodejs-10.21.0-5.fc32.src.rpm
diff --git a/.gitignore b/.gitignore
index 4458e62..833586a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,7 @@
 SOURCES/Python-2.7.13.tar.xz
 SOURCES/cbindgen-vendor-0.14.3.tar.xz
-SOURCES/firefox-78.7.0esr.source.tar.xz
-SOURCES/firefox-langpacks-78.7.0esr-20210122.tar.xz
-SOURCES/firefox-symbolic.svg
+SOURCES/firefox-78.13.0esr.source.tar.xz
+SOURCES/firefox-langpacks-78.13.0esr-20210805.tar.xz
 SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
 SOURCES/nodejs-10.21.0-5.fc32.src.rpm
diff --git a/README.debrand b/README.debrand
deleted file mode 100644
index 01c46d2..0000000
--- a/README.debrand
+++ /dev/null
@@ -1,2 +0,0 @@
-Warning: This package was configured for automatic debranding, but the changes
-failed to apply.
diff --git a/SOURCES/D110204-fscreen.diff b/SOURCES/D110204-fscreen.diff
new file mode 100644
index 0000000..0249fd0
--- /dev/null
+++ b/SOURCES/D110204-fscreen.diff
@@ -0,0 +1,70 @@
+diff -up firefox-78.9.0/widget/gtk/nsWindow.cpp.D110204-fscreen firefox-78.9.0/widget/gtk/nsWindow.cpp
+--- firefox-78.9.0/widget/gtk/nsWindow.cpp.D110204-fscreen	2021-03-30 13:28:56.212009697 +0200
++++ firefox-78.9.0/widget/gtk/nsWindow.cpp	2021-03-30 13:37:41.925850585 +0200
+@@ -139,6 +139,7 @@ using namespace mozilla::widget;
+ 
+ #include <dlfcn.h>
+ #include "nsPresContext.h"
++#include "nsIBrowserHandler.h"
+ 
+ using namespace mozilla;
+ using namespace mozilla::gfx;
+@@ -416,6 +417,7 @@ nsWindow::nsWindow() {
+   mRetryPointerGrab = false;
+   mWindowType = eWindowType_child;
+   mSizeState = nsSizeMode_Normal;
++  mPendingFullscreen = false;
+   mBoundsAreValid = true;
+   mAspectRatio = 0.0f;
+   mAspectRatioSaved = 0.0f;
+@@ -3887,6 +3889,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
+       }
+     }
+   }
++
++  // Hack to ensure window switched to fullscreen - avoid to fail when starting
++  // in kiosk mode
++  if (mPendingFullscreen &&
++      !(aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) {
++    LOG(
++        ("  Window should be fullscreen, but it's not, retrying set to "
++         "fullscreen.\n"));
++    MakeFullScreen(true);
++  } else {
++    LOG(("  Window successfully switched to fullscreen, happy now\n"));
++    mPendingFullscreen = false;
++  }
+ }
+ 
+ void nsWindow::ThemeChanged() {
+@@ -6010,6 +6025,19 @@ nsresult nsWindow::MakeFullScreen(bool a
+       }
+     }
+ 
++    // if in kiosk, ensure the fullscreen is called
++    nsCOMPtr<nsIBrowserHandler> browserHandler =
++        do_GetService("@mozilla.org/browser/clh;1");
++    if (browserHandler) {
++      bool isKiosk;
++      browserHandler->GetKiosk(&isKiosk);
++      if (isKiosk) {
++        LOG(("  is kiosk, ensure the window switch to fullscreen\n"));
++        mPendingFullscreen = true;
++      }
++    } else {
++      LOG(("  Cannot find the browserHandler service.\n"));
++    }
+     gtk_window_fullscreen(GTK_WINDOW(mShell));
+   } else {
+     mSizeMode = mLastSizeMode;
+diff -up firefox-78.9.0/widget/gtk/nsWindow.h.D110204-fscreen firefox-78.9.0/widget/gtk/nsWindow.h
+--- firefox-78.9.0/widget/gtk/nsWindow.h.D110204-fscreen	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/widget/gtk/nsWindow.h	2021-03-30 13:28:56.237009784 +0200
+@@ -703,6 +703,7 @@ class nsWindow final : public nsBaseWidg
+   nsRect mPreferredPopupRect;
+   bool mPreferredPopupRectFlushed;
+   bool mWaitingForMoveToRectCB;
++  bool mPendingFullscreen;
+   LayoutDeviceIntRect mPendingSizeRect;
+ 
+   /**
diff --git a/SOURCES/D87019-thin-vec-big-endian.diff b/SOURCES/D87019-thin-vec-big-endian.diff
index bc8589b..4785900 100644
--- a/SOURCES/D87019-thin-vec-big-endian.diff
+++ b/SOURCES/D87019-thin-vec-big-endian.diff
@@ -1,24 +1,19 @@
-diff -up firefox-78.1.0/Cargo.lock.D87019-thin-vec-big-endian.diff firefox-78.1.0/Cargo.lock
---- firefox-78.1.0/Cargo.lock.D87019-thin-vec-big-endian.diff	2020-07-22 19:56:54.000000000 +0200
-+++ firefox-78.1.0/Cargo.lock	2020-08-17 17:04:24.133598583 +0200
-@@ -4792,12 +4792,9 @@ checksum = "8eaa81235c7058867fa8c0e7314f
+--- firefox-78.9.0/Cargo.lock.D87019-thin-vec-big-endian.diff	2021-03-18 15:53:29.520861862 +0100
++++ firefox-78.9.0/Cargo.lock	2021-03-18 15:56:14.193397228 +0100
+@@ -4792,9 +4792,9 @@ checksum = "8eaa81235c7058867fa8c0e7314f
  
  [[package]]
  name = "thin-vec"
--version = "0.1.0"
+-version = "0.1.2"
 +version = "0.2.1"
  source = "registry+https://github.com/rust-lang/crates.io-index"
--checksum = "73fdf4b84c65a85168477b7fb6c498e0716bc9487fba24623389ea7f51708044"
--dependencies = [
-- "libc",
--]
+-checksum = "3a93c9ade36a827a69257925808463db46ffcf193442fad01eb9bdc1d31aed81"
 +checksum = "dcc760ada4a9f56fc6d0e81bd143984ebc7bb1b875a6891aa2fa613ca7394fc0"
  
  [[package]]
  name = "thiserror"
-diff -up firefox-78.1.0/gfx/webrender_bindings/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/gfx/webrender_bindings/Cargo.toml
---- firefox-78.1.0/gfx/webrender_bindings/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-08-17 17:04:24.133598583 +0200
-+++ firefox-78.1.0/gfx/webrender_bindings/Cargo.toml	2020-08-17 17:05:26.984805590 +0200
+--- firefox-78.9.0/gfx/webrender_bindings/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:33.000000000 +0100
++++ firefox-78.9.0/gfx/webrender_bindings/Cargo.toml	2021-03-18 15:53:29.522861856 +0100
 @@ -20,7 +20,7 @@ nsstring = { path = "../../xpcom/rust/ns
  bincode = "1.0"
  uuid = { version = "0.8", features = ["v4"] }
@@ -28,18 +23,16 @@ diff -up firefox-78.1.0/gfx/webrender_bindings/Cargo.toml.D87019-thin-vec-big-en
  swgl = { path = "../wr/swgl" }
  
  [dependencies.webrender]
-diff -up firefox-78.1.0/intl/l10n/rust/fluent-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/intl/l10n/rust/fluent-ffi/Cargo.toml
---- firefox-78.1.0/intl/l10n/rust/fluent-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:20.000000000 +0200
-+++ firefox-78.1.0/intl/l10n/rust/fluent-ffi/Cargo.toml	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/intl/l10n/rust/fluent-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:33.000000000 +0100
++++ firefox-78.9.0/intl/l10n/rust/fluent-ffi/Cargo.toml	2021-03-18 15:53:29.524861850 +0100
 @@ -10,4 +10,4 @@ fluent-pseudo = "0.2"
  intl-memoizer = "0.4"
  unic-langid = "0.8"
  nsstring = { path = "../../../../xpcom/rust/nsstring" }
 -thin-vec = { version = "0.1.0", features = ["gecko-ffi"] }
 +thin-vec = { version = "0.2.1", features = ["gecko-ffi"] }
-diff -up firefox-78.1.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml
---- firefox-78.1.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:20.000000000 +0200
-+++ firefox-78.1.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:33.000000000 +0100
++++ firefox-78.9.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml	2021-03-18 15:53:29.525861847 +0100
 @@ -9,7 +9,7 @@ edition = "2018"
  nserror = { path = "../../../../xpcom/rust/nserror" }
  nsstring = { path = "../../../../xpcom/rust/nsstring" }
@@ -49,9 +42,8 @@ diff -up firefox-78.1.0/intl/locale/rust/fluent-langneg-ffi/Cargo.toml.D87019-th
  fluent-langneg = { version = "0.12.1", features = ["cldr"] }
  unic-langid = "0.8"
  unic-langid-ffi = { path = "../unic-langid-ffi" }
-diff -up firefox-78.1.0/intl/locale/rust/unic-langid-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/intl/locale/rust/unic-langid-ffi/Cargo.toml
---- firefox-78.1.0/intl/locale/rust/unic-langid-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:20.000000000 +0200
-+++ firefox-78.1.0/intl/locale/rust/unic-langid-ffi/Cargo.toml	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/intl/locale/rust/unic-langid-ffi/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:33.000000000 +0100
++++ firefox-78.9.0/intl/locale/rust/unic-langid-ffi/Cargo.toml	2021-03-18 15:53:29.526861844 +0100
 @@ -9,5 +9,5 @@ edition = "2018"
  nserror = { path = "../../../../xpcom/rust/nserror" }
  nsstring = { path = "../../../../xpcom/rust/nsstring" }
@@ -59,9 +51,8 @@ diff -up firefox-78.1.0/intl/locale/rust/unic-langid-ffi/Cargo.toml.D87019-thin-
 -thin-vec = { version = "0.1.0", features = ["gecko-ffi"] }
 +thin-vec = { version = "0.2.1", features = ["gecko-ffi"] }
  unic-langid = { version = "0.8", features = ["likelysubtags"] }
-diff -up firefox-78.1.0/netwerk/socket/neqo_glue/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/netwerk/socket/neqo_glue/Cargo.toml
---- firefox-78.1.0/netwerk/socket/neqo_glue/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-08-17 17:04:24.134598587 +0200
-+++ firefox-78.1.0/netwerk/socket/neqo_glue/Cargo.toml	2020-08-17 17:05:10.352750807 +0200
+--- firefox-78.9.0/netwerk/socket/neqo_glue/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:37.000000000 +0100
++++ firefox-78.9.0/netwerk/socket/neqo_glue/Cargo.toml	2021-03-18 15:53:29.527861842 +0100
 @@ -14,7 +14,7 @@ neqo-common = { tag = "v0.2.4", git = "h
  nserror = { path = "../../../xpcom/rust/nserror" }
  nsstring = { path = "../../../xpcom/rust/nsstring" }
@@ -71,9 +62,8 @@ diff -up firefox-78.1.0/netwerk/socket/neqo_glue/Cargo.toml.D87019-thin-vec-big-
  
  [dependencies.neqo-crypto]
  tag = "v0.2.4"
-diff -up firefox-78.1.0/security/manager/ssl/cert_storage/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/security/manager/ssl/cert_storage/Cargo.toml
---- firefox-78.1.0/security/manager/ssl/cert_storage/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 19:56:55.000000000 +0200
-+++ firefox-78.1.0/security/manager/ssl/cert_storage/Cargo.toml	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/security/manager/ssl/cert_storage/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:37.000000000 +0100
++++ firefox-78.9.0/security/manager/ssl/cert_storage/Cargo.toml	2021-03-18 15:53:29.528861839 +0100
 @@ -18,6 +18,6 @@ rust_cascade = "0.6.0"
  sha2 = "^0.8"
  storage_variant = { path = "../../../../storage/variant" }
@@ -82,9 +72,8 @@ diff -up firefox-78.1.0/security/manager/ssl/cert_storage/Cargo.toml.D87019-thin
 +thin-vec = { version = "0.2.1", features = ["gecko-ffi"] }
  time = "0.1"
  xpcom = { path = "../../../../xpcom/rust/xpcom" }
-diff -up firefox-78.1.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml
---- firefox-78.1.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-08-17 17:04:24.134598587 +0200
-+++ firefox-78.1.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml	2020-08-17 17:04:52.432691786 +0200
+--- firefox-78.9.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:38.000000000 +0100
++++ firefox-78.9.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/Cargo.toml	2021-03-18 15:53:29.528861839 +0100
 @@ -20,5 +20,5 @@ nserror = { path = "../../../../xpcom/ru
  nsstring = { path = "../../../../xpcom/rust/nsstring" }
  xpcom = { path = "../../../../xpcom/rust/xpcom" }
@@ -92,9 +81,8 @@ diff -up firefox-78.1.0/services/fxaccounts/rust-bridge/firefox-accounts-bridge/
 -thin-vec = { version = "0.1", features = ["gecko-ffi"] }
 +thin-vec = { version = "0.2.1", features = ["gecko-ffi"] }
  fxa-client = { git = "https://github.com/mozilla/application-services", rev = "61dcc364ac0d6d0816ab88a494bbf20d824b009b", features = ["gecko"] }
-diff -up firefox-78.1.0/services/sync/golden_gate/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/services/sync/golden_gate/Cargo.toml
---- firefox-78.1.0/services/sync/golden_gate/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:24.000000000 +0200
-+++ firefox-78.1.0/services/sync/golden_gate/Cargo.toml	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/services/sync/golden_gate/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:38.000000000 +0100
++++ firefox-78.9.0/services/sync/golden_gate/Cargo.toml	2021-03-18 15:53:29.529861836 +0100
 @@ -19,5 +19,5 @@ sync15-traits = { git = "https://github.
  xpcom = { path = "../../../xpcom/rust/xpcom" }
  
@@ -102,52 +90,28 @@ diff -up firefox-78.1.0/services/sync/golden_gate/Cargo.toml.D87019-thin-vec-big
 -version = "0.1.0"
 +version = "0.2.1"
  features = ["gecko-ffi"]
-diff -up firefox-78.1.0/third_party/rust/thin-vec/.cargo-checksum.json.D87019-thin-vec-big-endian.diff firefox-78.1.0/third_party/rust/thin-vec/.cargo-checksum.json
---- firefox-78.1.0/third_party/rust/thin-vec/.cargo-checksum.json.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:29.000000000 +0200
-+++ firefox-78.1.0/third_party/rust/thin-vec/.cargo-checksum.json	2020-08-17 17:04:24.134598587 +0200
+--- firefox-78.9.0/third_party/rust/thin-vec/.cargo-checksum.json.D87019-thin-vec-big-endian.diff	2021-03-18 15:53:29.529861836 +0100
++++ firefox-78.9.0/third_party/rust/thin-vec/.cargo-checksum.json	2021-03-18 15:57:43.631168890 +0100
 @@ -1 +1 @@
--{"files":{"Cargo.toml":"fb96cad605ae48215811808c1cc1b9a50248f2b14542058094b23983e2f8d8a0","README.md":"c26d7101e3031e7dd8890ce938e50cad7a1e6adf7fc2f2b0d3c36b03afe68c0b","src/heap.rs":"fe84a4ff433568d5713685456d87597ac5dcdb9d5190061a3da8074240ba1bc3","src/lib.rs":"ce36db8e3464dddade7c1ddbe3ee1f5e525af5be492ea51a0d8a0776c1adfc28","src/range.rs":"bac59bcb6230367a39c7e28ac15263e4526f966cd8c72015873017f17c115aaa"},"package":"73fdf4b84c65a85168477b7fb6c498e0716bc9487fba24623389ea7f51708044"}
+-{"files":{"Cargo.toml":"7b164cc8a702a204a4732cb4da2940711b8e3be915c258e2a972d4874d767b4c","README.md":"c26d7101e3031e7dd8890ce938e50cad7a1e6adf7fc2f2b0d3c36b03afe68c0b","src/lib.rs":"9f2a087cabfe0b6f83818323bb9004b45fe7548c51376816fd8d4572256bd0e8","src/range.rs":"bac59bcb6230367a39c7e28ac15263e4526f966cd8c72015873017f17c115aaa"},"package":"3a93c9ade36a827a69257925808463db46ffcf193442fad01eb9bdc1d31aed81"}
 \ No newline at end of file
 +{"files":{"Cargo.toml":"754c05523d17eb7591c3ea2c9294e47c05fbb257fed04b78546fb2ec7cafa8b4","README.md":"c26d7101e3031e7dd8890ce938e50cad7a1e6adf7fc2f2b0d3c36b03afe68c0b","src/lib.rs":"627c6094c3f0286dba25bc73f5672c06c5061c25b01c513d213cbdda100673a2"},"package":"dcc760ada4a9f56fc6d0e81bd143984ebc7bb1b875a6891aa2fa613ca7394fc0"}
-\ No newline at end of file
-diff -up firefox-78.1.0/third_party/rust/thin-vec/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/third_party/rust/thin-vec/Cargo.toml
---- firefox-78.1.0/third_party/rust/thin-vec/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:29.000000000 +0200
-+++ firefox-78.1.0/third_party/rust/thin-vec/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
-@@ -3,7 +3,7 @@
- # When uploading crates to the registry Cargo will automatically
- # "normalize" Cargo.toml files for maximal compatibility
- # with all versions of Cargo and also rewrite `path` dependencies
--# to registry (e.g. crates.io) dependencies
-+# to registry (e.g., crates.io) dependencies
- #
- # If you believe there's an error in this file please file an
- # issue against the rust-lang/cargo repository. If you're
-@@ -11,16 +11,17 @@
+--- firefox-78.9.0/third_party/rust/thin-vec/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/third_party/rust/thin-vec/Cargo.toml	2021-03-18 15:59:34.162886751 +0100
+@@ -11,8 +11,9 @@
  # will likely look very different (and much more reasonable)
  
  [package]
 +edition = "2018"
  name = "thin-vec"
--version = "0.1.0"
+-version = "0.1.2"
 +version = "0.2.1"
  authors = ["Alexis Beingessner <a.beingessner@gmail.com>"]
  description = "a vec that takes up less space on the stack"
  homepage = "https://github.com/gankro/thin-vec"
- readme = "README.md"
- license = "MIT/Apache-2.0"
- repository = "https://github.com/gankro/thin-vec"
--[dependencies.libc]
--version = "0.2"
-+
-+[dependencies]
- 
- [features]
- default = []
-diff -up firefox-78.1.0/third_party/rust/thin-vec/src/heap.rs.D87019-thin-vec-big-endian.diff firefox-78.1.0/third_party/rust/thin-vec/src/heap.rs
-diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big-endian.diff firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs
---- firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:28.000000000 +0200
-+++ firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs	2020-08-17 17:04:24.135598590 +0200
-@@ -1,50 +1,252 @@
+--- firefox-78.9.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/third_party/rust/thin-vec/src/lib.rs	2021-03-18 16:08:47.212871917 +0100
+@@ -1,47 +1,252 @@
 -mod range;
 +//! ThinVec is exactly the same as Vec, except that it stores its `len` and `capacity` in the buffer
 +//! it allocates.
@@ -297,23 +261,19 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
 -use std::ops::{Deref, DerefMut};
 +use std::ops::{Deref, DerefMut, RangeBounds};
  use std::marker::PhantomData;
-+use std::alloc::*;
+ use std::alloc::*;
  use std::cmp::*;
  use std::hash::*;
  use std::borrow::*;
 -use range::RangeArgument;
  use std::ptr::NonNull;
  
--// Heap shimming because reasons. This doesn't unfortunately match the heap api
--// right now because reasons.
--mod heap;
-+use impl_details::*;
- 
 -#[cfg(not(feature = "gecko-ffi"))]
 -type SizeType = usize;
 -#[cfg(feature = "gecko-ffi")]
 -type SizeType = u32;
--
++use impl_details::*;
+ 
 -#[cfg(feature = "gecko-ffi")]
 -const AUTO_MASK: u32 = 1 << 31;
 -#[cfg(feature = "gecko-ffi")]
@@ -407,7 +367,8 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
 +    #[cfg(target_endian = "big")]
 +    pub fn is_auto(cap: SizeType) -> bool {
 +        (cap & 1) != 0
-+    }
+     }
+-    x as SizeType
 +
 +    #[inline]
 +    pub fn assert_size(x: usize) -> SizeType {
@@ -415,8 +376,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
 +            panic!("nsTArray size may not exceed the capacity of a 32-bit sized int");
 +        }
 +        x as SizeType
-     }
--    x as SizeType
++    }
 +
  }
  
@@ -427,7 +387,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
  #[repr(C)]
  struct Header {
      _len: SizeType,
-@@ -56,38 +258,10 @@ impl Header {
+@@ -53,38 +258,10 @@ impl Header {
          self._len as usize
      }
  
@@ -466,7 +426,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
      fn data<T>(&self) -> *mut T {
          let header_size = mem::size_of::<Header>();
          let padding = padding::<T>();
-@@ -105,6 +279,41 @@ impl Header {
+@@ -102,6 +279,41 @@ impl Header {
      }
  }
  
@@ -508,7 +468,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
  /// Singleton that all empty collections share.
  /// Note: can't store non-zero ZSTs, we allocate in that case. We could
  /// optimize everything to not do that (basically, make ptr == len and branch
-@@ -121,9 +330,7 @@ extern {
+@@ -118,9 +330,7 @@ extern {
  
  // TODO: overflow checks everywhere
  
@@ -519,35 +479,20 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
  
  fn alloc_size<T>(cap: usize) -> usize {
      // Compute "real" header size with pointer math
-@@ -156,15 +363,22 @@ fn alloc_align<T>() -> usize {
-     max(mem::align_of::<T>(), mem::align_of::<Header>())
- }
- 
--fn header_with_capacity<T>(cap: usize) -> NonNull<Header> {
--    debug_assert!(cap > 0);
-+fn layout<T>(cap: usize) -> Layout {
+@@ -165,9 +375,10 @@ fn layout<T>(cap: usize) -> Layout {
+ fn header_with_capacity<T>(cap: usize) -> NonNull<Header> {
+     debug_assert!(cap > 0);
      unsafe {
--        let header = heap::allocate(
-+        Layout::from_size_align_unchecked(
-             alloc_size::<T>(cap),
-             alloc_align::<T>(),
--        ) as *mut Header;
-+        )
-+    }
-+}
- 
--        if header.is_null() { oom() }
-+fn header_with_capacity<T>(cap: usize) -> NonNull<Header> {
-+    debug_assert!(cap > 0);
-+    unsafe {
+-        let header = alloc(layout::<T>(cap)) as *mut Header;
 +        let layout = layout::<T>(cap);
 +        let header = alloc(layout) as *mut Header;
-+
+ 
+-        if header.is_null() { oom() }
 +        if header.is_null() { handle_alloc_error(layout) }
  
          // "Infinite" capacity for zero-sized types:
          (*header).set_cap(if mem::size_of::<T>() == 0 { MAX_CAP } else { cap });
-@@ -176,28 +390,8 @@ fn header_with_capacity<T>(cap: usize) -
+@@ -179,28 +390,8 @@ fn header_with_capacity<T>(cap: usize) -
  
  
  
@@ -578,7 +523,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
  pub struct ThinVec<T> {
      ptr: NonNull<Header>,
      boo: PhantomData<T>,
-@@ -627,15 +821,15 @@ impl<T> ThinVec<T> {
+@@ -630,15 +821,15 @@ impl<T> ThinVec<T> {
      }
  
      pub fn drain<R>(&mut self, range: R) -> Drain<T>
@@ -597,35 +542,11 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
              Bound::Included(&n) => n + 1,
              Bound::Excluded(&n) => n,
              Bound::Unbounded => len,
-@@ -666,9 +860,10 @@ impl<T> ThinVec<T> {
- 
-     unsafe fn deallocate(&mut self) {
-         if self.has_allocation() {
--            heap::deallocate(self.ptr() as *mut u8,
--                alloc_size::<T>(self.capacity()),
--                alloc_align::<T>());
-+            dealloc(
-+                self.ptr() as *mut u8,
-+                layout::<T>(self.capacity()),
-+            )
-         }
-     }
+@@ -688,11 +879,30 @@ impl<T> ThinVec<T> {
+                 alloc_size::<T>(new_cap),
+             ) as *mut Header;
  
-@@ -678,15 +873,36 @@ impl<T> ThinVec<T> {
-         debug_assert!(new_cap > 0);
-         if self.has_allocation() {
-             let old_cap = self.capacity();
--            let ptr = heap::reallocate(self.ptr() as *mut u8,
--                                       alloc_size::<T>(old_cap),
--                                       alloc_size::<T>(new_cap),
--                                       alloc_align::<T>()) as *mut Header;
 -            if ptr.is_null() { oom() }
-+            let ptr = realloc(
-+                self.ptr() as *mut u8,
-+                layout::<T>(old_cap),
-+                alloc_size::<T>(new_cap),
-+            ) as *mut Header;
-+
 +            if ptr.is_null() { handle_alloc_error(layout::<T>(new_cap)) }
              (*ptr).set_cap(new_cap);
              self.ptr = NonNull::new_unchecked(ptr);
@@ -654,7 +575,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
          }
      }
  
-@@ -1087,10 +1303,7 @@ mod tests {
+@@ -1093,10 +1303,7 @@ mod tests {
          use std::mem::size_of;
          assert_eq!(size_of::<ThinVec<u8>>(), size_of::<&u8>());
  
@@ -666,7 +587,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
      }
  
      #[test]
-@@ -1725,7 +1938,6 @@ mod std_tests {
+@@ -1731,7 +1938,6 @@ mod std_tests {
          assert_eq!(v, &[(), ()]);
      }
  
@@ -674,7 +595,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
      #[test]
      fn test_drain_inclusive_range() {
          let mut v = thin_vec!['a', 'b', 'c', 'd', 'e'];
-@@ -1755,6 +1967,7 @@ mod std_tests {
+@@ -1761,6 +1967,7 @@ mod std_tests {
      }
  
      #[test]
@@ -682,7 +603,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
      fn test_drain_max_vec_size() {
          let mut v = ThinVec::<()>::with_capacity(usize::max_value());
          unsafe { v.set_len(usize::max_value()); }
-@@ -1775,7 +1988,6 @@ mod std_tests {
+@@ -1781,7 +1988,6 @@ mod std_tests {
          let mut v = thin_vec![1, 2, 3, 4, 5];
          v.drain(5..=5);
      }
@@ -690,7 +611,7 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
  
  /* TODO: implement splice?
      #[test]
-@@ -2181,7 +2393,7 @@ mod std_tests {
+@@ -2187,7 +2393,7 @@ mod std_tests {
          assert!(v.capacity() >= 33)
      }
  
@@ -699,10 +620,8 @@ diff -up firefox-78.1.0/third_party/rust/thin-vec/src/lib.rs.D87019-thin-vec-big
      #[test]
      fn test_try_reserve() {
  
-diff -up firefox-78.1.0/third_party/rust/thin-vec/src/range.rs.D87019-thin-vec-big-endian.diff firefox-78.1.0/third_party/rust/thin-vec/src/range.rs
-diff -up firefox-78.1.0/toolkit/components/cascade_bloom_filter/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/toolkit/components/cascade_bloom_filter/Cargo.toml
---- firefox-78.1.0/toolkit/components/cascade_bloom_filter/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:29.000000000 +0200
-+++ firefox-78.1.0/toolkit/components/cascade_bloom_filter/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
+--- firefox-78.9.0/toolkit/components/cascade_bloom_filter/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/toolkit/components/cascade_bloom_filter/Cargo.toml	2021-03-18 15:54:35.137670977 +0100
 @@ -8,5 +8,5 @@ nserror = { path = "../../../xpcom/rust/
  nsstring = { path = "../../../xpcom/rust/nsstring" }
  rental = "0.5.5"
@@ -710,9 +629,8 @@ diff -up firefox-78.1.0/toolkit/components/cascade_bloom_filter/Cargo.toml.D8701
 -thin-vec = { version = "0.1.0", features = ["gecko-ffi"] }
 +thin-vec = { version = "0.2.1", features = ["gecko-ffi"] }
  xpcom = { path = "../../../xpcom/rust/xpcom" }
-diff -up firefox-78.1.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml
---- firefox-78.1.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:30.000000000 +0200
-+++ firefox-78.1.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
+--- firefox-78.9.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/toolkit/components/extensions/storage/webext_storage_bridge/Cargo.toml	2021-03-18 15:54:35.139670971 +0100
 @@ -13,7 +13,7 @@ moz_task = { path = "../../../../../xpco
  nserror = { path = "../../../../../xpcom/rust/nserror" }
  nsstring = { path = "../../../../../xpcom/rust/nsstring" }
@@ -722,9 +640,8 @@ diff -up firefox-78.1.0/toolkit/components/extensions/storage/webext_storage_bri
  xpcom = { path = "../../../../../xpcom/rust/xpcom" }
  serde = "1"
  serde_json = "1"
-diff -up firefox-78.1.0/toolkit/components/kvstore/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/toolkit/components/kvstore/Cargo.toml
---- firefox-78.1.0/toolkit/components/kvstore/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:30.000000000 +0200
-+++ firefox-78.1.0/toolkit/components/kvstore/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
+--- firefox-78.9.0/toolkit/components/kvstore/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/toolkit/components/kvstore/Cargo.toml	2021-03-18 15:54:35.141670966 +0100
 @@ -18,7 +18,7 @@ rkv = "0.10.2"
  storage_variant = { path = "../../../storage/variant" }
  xpcom = { path = "../../../xpcom/rust/xpcom" }
@@ -734,9 +651,8 @@ diff -up firefox-78.1.0/toolkit/components/kvstore/Cargo.toml.D87019-thin-vec-bi
  
  # Get rid of failure's dependency on backtrace. Eventually
  # backtrace will move into Rust core, but we don't need it here.
-diff -up firefox-78.1.0/toolkit/components/places/bookmark_sync/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/toolkit/components/places/bookmark_sync/Cargo.toml
---- firefox-78.1.0/toolkit/components/places/bookmark_sync/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:30.000000000 +0200
-+++ firefox-78.1.0/toolkit/components/places/bookmark_sync/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
+--- firefox-78.9.0/toolkit/components/places/bookmark_sync/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/toolkit/components/places/bookmark_sync/Cargo.toml	2021-03-18 15:54:35.142670963 +0100
 @@ -19,5 +19,5 @@ url = "2.0"
  xpcom = { path = "../../../../xpcom/rust/xpcom" }
  
@@ -744,9 +660,8 @@ diff -up firefox-78.1.0/toolkit/components/places/bookmark_sync/Cargo.toml.D8701
 -version = "0.1.0"
 +version = "0.2.1"
  features = ["gecko-ffi"]
-diff -up firefox-78.1.0/tools/profiler/rust-helper/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/tools/profiler/rust-helper/Cargo.toml
---- firefox-78.1.0/tools/profiler/rust-helper/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:30.000000000 +0200
-+++ firefox-78.1.0/tools/profiler/rust-helper/Cargo.toml	2020-08-17 17:04:24.135598590 +0200
+--- firefox-78.9.0/tools/profiler/rust-helper/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:42.000000000 +0100
++++ firefox-78.9.0/tools/profiler/rust-helper/Cargo.toml	2021-03-18 15:54:35.143670960 +0100
 @@ -23,7 +23,7 @@ features = ["endian_fd", "elf32", "elf64
  default-features = false
  
@@ -756,9 +671,8 @@ diff -up firefox-78.1.0/tools/profiler/rust-helper/Cargo.toml.D87019-thin-vec-bi
  features = ["gecko-ffi"]
  
  [features]
-diff -up firefox-78.1.0/xpcom/rust/xpcom/Cargo.toml.D87019-thin-vec-big-endian.diff firefox-78.1.0/xpcom/rust/xpcom/Cargo.toml
---- firefox-78.1.0/xpcom/rust/xpcom/Cargo.toml.D87019-thin-vec-big-endian.diff	2020-07-22 17:56:30.000000000 +0200
-+++ firefox-78.1.0/xpcom/rust/xpcom/Cargo.toml	2020-08-17 17:04:24.136598593 +0200
+--- firefox-78.9.0/xpcom/rust/xpcom/Cargo.toml.D87019-thin-vec-big-endian.diff	2021-03-15 16:52:43.000000000 +0100
++++ firefox-78.9.0/xpcom/rust/xpcom/Cargo.toml	2021-03-18 15:54:35.149670942 +0100
 @@ -9,4 +9,4 @@ nsstring = { path = "../nsstring" }
  nserror = { path = "../nserror" }
  threadbound = "0.1"
diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js
index 607a132..9ead3a2 100644
--- a/SOURCES/firefox-redhat-default-prefs.js
+++ b/SOURCES/firefox-redhat-default-prefs.js
@@ -16,7 +16,7 @@ pref("extensions.shownSelectionUI",         true);
 pref("ui.SpellCheckerUnderlineStyle",       1);
 pref("startup.homepage_override_url",       "http://www.redhat.com");
 pref("startup.homepage_welcome_url",        "http://www.redhat.com");
-pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
+pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html");
 pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
 pref("media.gmp-gmpopenh264.provider.enabled",false);
 pref("media.gmp-gmpopenh264.autoupdate",false);
diff --git a/SOURCES/firefox-symbolic.svg b/SOURCES/firefox-symbolic.svg
new file mode 100644
index 0000000..7a2c73e
--- /dev/null
+++ b/SOURCES/firefox-symbolic.svg
@@ -0,0 +1,30 @@
+<?xml version='1.0' encoding='UTF-8' standalone='no'?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg xmlns:cc='http://creativecommons.org/ns#' xmlns:dc='http://purl.org/dc/elements/1.1/' sodipodi:docname='firefox-symbolic.svg' height='16' id='svg7384' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' xmlns:osb='http://www.openswatchbook.org/uri/2009/osb' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:svg='http://www.w3.org/2000/svg' version='1.1' inkscape:version='0.91 r13725' width='16' xmlns='http://www.w3.org/2000/svg'>
+  <metadata id='metadata90'>
+    <rdf:RDF>
+      <cc:Work rdf:about=''>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource='http://purl.org/dc/dcmitype/StillImage'/>
+        <dc:title>Gnome Symbolic Icon Theme</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview inkscape:bbox-paths='true' bordercolor='#666666' borderopacity='1' inkscape:current-layer='layer9' inkscape:cx='-10.975734' inkscape:cy='233.73843' gridtolerance='10' inkscape:guide-bbox='true' guidetolerance='10' id='namedview88' inkscape:object-nodes='false' inkscape:object-paths='false' objecttolerance='10' pagecolor='#555753' inkscape:pageopacity='1' inkscape:pageshadow='2' showborder='false' showgrid='false' showguides='true' inkscape:snap-bbox='true' inkscape:snap-bbox-midpoints='false' inkscape:snap-global='true' inkscape:snap-grids='true' inkscape:snap-nodes='true' inkscape:snap-others='false' inkscape:snap-to-guides='true' inkscape:window-height='1403' inkscape:window-maximized='1' inkscape:window-width='2560' inkscape:window-x='2560' inkscape:window-y='0' inkscape:zoom='1'>
+    <inkscape:grid empspacing='2' enabled='true' id='grid4866' originx='-222.00001' originy='-381.99852' snapvisiblegridlinesonly='true' spacingx='1px' spacingy='1px' type='xygrid' visible='true'/>
+  </sodipodi:namedview>
+  <title id='title9167'>Gnome Symbolic Icon Theme</title>
+  <defs id='defs7386'>
+    <linearGradient id='linearGradient7212' osb:paint='solid'>
+      <stop id='stop7214' offset='0' style='stop-color:#000000;stop-opacity:1;'/>
+    </linearGradient>
+  </defs>
+  <g inkscape:groupmode='layer' id='layer9' inkscape:label='apps' style='display:inline' transform='translate(-463.00021,164.99852)'>
+    
+    <path inkscape:connector-curvature='0' d='M 469.05437,-154.9679 Z' id='path17747' style='fill:none;stroke:#000000;stroke-width:0.99851286px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1'/>
+    <path inkscape:connector-curvature='0' d='M 469.08553,-154.9054 Z' id='path17749' style='fill:none;stroke:#000000;stroke-width:0.99851286px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1'/>
+    <path inkscape:connector-curvature='0' d='m 473.0627,-162.9375 c -0.41568,-0.0182 -0.62813,0.0274 -0.625,0.0312 0.006,0.008 1.72988,0.32697 2.03125,0.75 0,0 -0.71915,0.007 -1.4375,0.21875 -0.0325,0.01 2.64053,0.33122 3.1875,3.0625 0,0 -0.29354,-0.64386 -0.65625,-0.75 0.23852,0.74134 0.16466,2.17583 -0.0625,2.875 -0.0292,0.0899 -0.0525,-0.38762 -0.5,-0.59375 0.14332,1.04923 -0.006,2.6978 -0.71875,3.15625 -0.0555,0.0357 0.43942,-1.64894 0.0937,-1 -2.06368,3.2325 -4.50486,1.31102 -5.5,0.625 0.79871,0.19996 1.80035,0.0704 2.125,-0.15625 0.49572,-0.34615 0.79916,-0.59107 1.0625,-0.53125 0.26322,0.0601 0.42318,-0.22934 0.21875,-0.46875 -0.20466,-0.23989 -0.70268,-0.55471 -1.375,-0.375 -0.47415,0.12687 -1.04057,0.54268 -1.9375,0 -0.7652,-0.46319 -0.67076,-0.69942 -0.67076,-0.93907 0,-0.23977 0.21387,-0.59107 0.59375,-0.53125 0.0851,0.0134 0.15074,0.009 0.1875,0 0.18483,0.0422 0.35743,0.0964 0.53125,0.1875 0.008,-0.2241 -0.0292,-0.87345 -0.15625,-1.23012 0.0106,0.004 0.0289,0.011 0.0312,0 0.0384,-0.17687 1.05477,-0.18386 1.37388,-0.59643 0.20404,-0.26362 0.14073,-0.79683 0.14073,-0.79683 l -1,0 c -0.52354,0.002 -0.97244,-0.75086 -1.01451,-0.85669 0.11444,-0.62597 0.48612,-0.83952 1.01451,-1.14331 -0.39748,-0.003 -0.18871,0 -1,0 -0.52875,0 -0.84718,0.36158 -1.01451,0.54956 -0.70058,-0.16587 -1.38144,-0.25227 -1.86049,-0.0609 -0.22125,-0.22941 -0.39604,-0.80055 -0.42188,-1.48863 0,0 -1.20486,0.73864 -1.07812,2.55113 -0.002,0.14904 -0.0499,0.21348 -0.0625,0.3125 -0.13061,0.22845 -0.1553,0.40492 -0.125,0.375 -0.0656,0.13627 -0.15391,0.28402 -0.21875,0.46875 -0.0149,0.0362 -0.0495,0.0463 -0.0625,0.0937 -0.009,0.0322 0.002,0.0638 0,0.0937 -0.11512,0.36099 -0.21516,0.98244 -0.3125,1.54262 0,0 0.12424,-0.51425 0.3125,-0.88637 -0.15639,0.54353 -0.26211,1.54974 -0.1875,2.73012 0,0 0.015,-0.20429 0.0625,-0.5 0.0465,0.80102 0.25925,1.72737 0.84375,2.75 1.46152,2.5575 3.89248,3.68885 6.4375,3.46875 0.44516,-0.0296 0.89639,-0.10834 1.34375,-0.21875 5.92923,-1.46449 5.28125,-8.78118 5.28125,-8.78118 l -0.15625,1.09375 c 0,0 -0.24147,-1.99977 -0.53125,-2.75 -0.44412,-1.14957 -0.62372,-1.15791 -0.625,-1.15625 0.29743,0.77226 0.21875,1.1875 0.21875,1.1875 0,0 -0.51279,-1.43939 -1.90625,-1.90625 -0.82515,-0.27632 -1.45932,-0.38807 -1.875,-0.40625 z' id='path159-6' sodipodi:nodetypes='sccccccccccsccccscccccscccccccccccccccccccccccccccs' style='fill:#bebebe;fill-opacity:1;stroke:none'/>
+    <path inkscape:connector-curvature='0' d='m 470.87695,-164.01953 c -0.83043,0.0139 -1.67042,0.17659 -2.48047,0.5 l -0.46289,0.18359 c 0.66083,0.79767 1.84339,0.43951 1.84339,0.43951 2.50802,-0.52344 5.12427,0.6034 6.44177,2.89252 1.49591,2.59908 0.85463,5.89258 -1.50586,7.74219 -2.36049,1.84961 -5.71108,1.68349 -7.87695,-0.39062 -2.16588,-2.07412 -2.47623,-5.41522 -0.73047,-7.85352 l 0.29101,-0.40625 -0.81445,-0.58203 -0.29101,0.40625 c -2.03104,2.83673 -1.66628,6.74516 0.85351,9.1582 2.5198,2.41305 6.43934,2.60693 9.18555,0.45508 2.74621,-2.15185 3.49621,-6.00355 1.75586,-9.02734 -1.30527,-2.26785 -3.7177,-3.55935 -6.20899,-3.51758 z' id='path22109' sodipodi:nodetypes='ccccsssccccsssc' style='color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate'/>
+  </g>
+</svg>
diff --git a/SOURCES/mozilla-1703636-slot-fail-workaround.patch b/SOURCES/mozilla-1703636-slot-fail-workaround.patch
new file mode 100644
index 0000000..079a15b
--- /dev/null
+++ b/SOURCES/mozilla-1703636-slot-fail-workaround.patch
@@ -0,0 +1,12 @@
+diff -up firefox-78.9.0/security/certverifier/NSSCertDBTrustDomain.cpp.slot-fail firefox-78.9.0/security/certverifier/NSSCertDBTrustDomain.cpp
+--- firefox-78.9.0/security/certverifier/NSSCertDBTrustDomain.cpp.slot-fail	2021-04-08 08:02:13.879018493 +0200
++++ firefox-78.9.0/security/certverifier/NSSCertDBTrustDomain.cpp	2021-04-08 08:05:56.713623197 +0200
+@@ -118,7 +118,7 @@ static Result FindRootsWithSubject(Uniqu
+     CERTCertificateList* rawResults = nullptr;
+     if (PK11_FindRawCertsWithSubject(rootsModule->slots[slotIndex], &subject,
+                                      &rawResults) != SECSuccess) {
+-      return Result::FATAL_ERROR_LIBRARY_FAILURE;
++      continue;
+     }
+     // rawResults == nullptr means we didn't find any matching certificates
+     if (!rawResults) {
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index caa71df..874c55f 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -6,31 +6,30 @@
 %global debug_package %{nil}
 %endif
 
-%global rhel_minor_version -1
-%if 0%{?flatpak:1}
-%global rhel_minor_version 4
-%endif
-%if "%{?dist}" == ".el8"
-%global rhel_minor_version 4
-%endif
-%if "%{?dist}" == ".el8_3"
-%global rhel_minor_version 3
-%endif
-%if "%{?dist}" == ".el8_2"
-%global rhel_minor_version 2
-%endif
-%if "%{?dist}" == ".el8_1"
-%global rhel_minor_version 1
-%endif
-%if "%{?dist}" == ".el8_0"
-%global rhel_minor_version 0
-%endif
+%{lua:
+function dist_to_rhel_minor(str, start)
+  match = string.match(str, ".module%+el8.%d+")
+  if match then
+     return string.sub(match, 13)
+  end
+  match = string.match(str, ".el8_%d+")
+  if match then
+     return string.sub(match, 6)
+  end
+  match = string.match(str, ".el8")
+  if match then
+     return 5
+  end
+  return -1
+end}
+
+%global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand("%dist")))}
 
 %global system_nss        1
 %global bundle_nss        0
 
 %if 0%{?rhel} == 8
-  %if 0%{?rhel_minor_version} < 2
+  %if %{rhel_minor_version} < 2
 %global bundle_nss        1
   %endif
 %endif
@@ -129,7 +128,7 @@
 # Build as a debug package?
 %global debug_build       0
 
-#%global default_bookmarks_file  %{_datadir}/bookmarks/default-bookmarks.html
+#%%global default_bookmarks_file  %%{_datadir}/bookmarks/default-bookmarks.html
 # need to use full path because of flatpak where datadir is /app/share
 %global default_bookmarks_file  /usr/share/bookmarks/default-bookmarks.html
 %global firefox_app_id  \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
@@ -144,10 +143,10 @@
 %global nspr_version 4.25
 # NSS/NSPR quite often ends in build override, so as requirement the version
 # we're building against could bring us some broken dependencies from time to time.
-#%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
+#%%global nspr_build_version %%(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
 %global nspr_build_version %{nspr_version}
 %global nss_version 3.53.1
-#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
+#%%global nss_build_version %%(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
 %global nss_build_version %{nss_version}
 %endif
 
@@ -164,7 +163,7 @@
 %define use_bundled_yasm        0
 
 %if 0%{?rhel} == 8
-  %if 0%{?rhel_minor_version} <= 2
+  %if %{rhel_minor_version} <= 2
 %define use_bundled_nodejs      1
   %endif
 %endif
@@ -215,7 +214,7 @@
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        78.7.0
+Version:        78.13.0
 Release:        2%{?dist}
 URL:            https://www.mozilla.org/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
@@ -228,7 +227,7 @@ ExclusiveArch:  i686 x86_64 ppc64 s390x
 
 Source0:        https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?pre_version}-20210122.tar.xz
+Source1:        firefox-langpacks-%{version}%{?pre_version}-20210805.tar.xz
 %endif
 Source2:        cbindgen-vendor-0.14.3.tar.xz
 Source10:       firefox-mozconfig
@@ -307,6 +306,8 @@ Patch513:        mozilla-bmo998749.patch
 Patch514:        mozilla-s390x-skia-gradient.patch
 Patch515:        mozilla-bmo1626236.patch
 Patch516:        D87019-thin-vec-big-endian.diff
+Patch517:        mozilla-1703636-slot-fail-workaround.patch
+Patch518:        D110204-fscreen.diff
 
 
 # CentOS patches
@@ -419,7 +420,7 @@ BuildRequires:  openssl-devel
 %endif
 
 %if 0%{?rhel} == 8
-  %if 0%{?rhel_minor_version} >= 3
+  %if %{rhel_minor_version} >= 3
 BuildRequires:  pkgconfig(libpipewire-0.3)
   %else
 BuildRequires:  pipewire-devel
@@ -601,7 +602,7 @@ https://extensions.gnome.org.
 %prep
 echo "Build environment"
 echo "dist                  %{?dist}"
-echo "RHEL 8 minor version: %{?rhel_minor_version}"
+echo "RHEL 8 minor version: %{rhel_minor_version}"
 echo "use_bundled_ffi       %{?use_bundled_ffi}"
 echo "use_bundled_python_2  %{?use_bundled_python_2}"
 echo "use_bundled_python_3  %{?use_bundled_python_3}"
@@ -647,7 +648,7 @@ sed -ie 's|/usr/include|/app/include|' %_sourcedir/firefox-pipewire-0-3.patch
 %endif
 
 %if 0%{?rhel} == 8
-  %if 0%{?rhel_minor_version} >= 3
+  %if %{rhel_minor_version} >= 3
 %patch235 -p1 -b .pipewire-0-3
   %else
 %patch231 -p1 -b .pipewire
@@ -681,6 +682,8 @@ sed -ie 's|/usr/include|/app/include|' %_sourcedir/firefox-pipewire-0-3.patch
 %patch514 -p1 -b .mozilla-s390x-skia-gradient
 %patch515 -p1 -b .mozilla-bmo1626236
 %patch516 -p1 -b .D87019-thin-vec-big-endian.diff
+%patch517 -p1 -b .mozilla-1703636-slot-fail-workaround
+%patch518 -p1 -b .D110204-fscreen.diff
 
 
 %patch1001 -p1 -b .ppc64le-inline
@@ -1428,6 +1431,7 @@ SentUpstream: 2014-09-22
 <application>
   <id type="desktop">firefox.desktop</id>
   <metadata_license>CC0-1.0</metadata_license>
+  <project_license>MPLv1.1 or GPLv2+ or LGPLv2+</project_license>
   <description>
     <p>
       Bringing together all kinds of awesomeness to make browsing better for you.
@@ -1504,6 +1508,7 @@ create_default_langpack "zh-TW" "zh"
 ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences
 # Default preferences
 %{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
+sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
 
 # System config dir
 %{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref
@@ -1684,6 +1689,42 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
+* Thu Aug 05 2021 Eike Rathke <erack@redhat.com> - 78.13.0-2
+- Update to 78.13.0 build2
+
+* Tue Aug 03 2021 Eike Rathke <erack@redhat.com> - 78.13.0-1
+- Update to 78.13.0 build1
+
+* Fri Jul 16 2021 Jan Horak <jhorak@redhat.com> - 78.12.0-2
+- Rebuild to pickup older nss
+
+* Wed Jul 07 2021 Eike Rathke <erack@redhat.com> - 78.12.0-1
+- Update to 78.12.0 build1
+
+* Mon May 31 2021 Eike Rathke <erack@redhat.com> - 78.11.0-3
+- Update to 78.11.0 build2 (release)
+
+* Thu May 27 2021 Eike Rathke <erack@redhat.com> - 78.11.0-2
+- Fix rhel_minor_version for dist .el8_4 and .el8
+
+* Tue May 25 2021 Eike Rathke <erack@redhat.com> - 78.11.0-1
+- Update to 78.11.0 build1
+
+* Tue Apr 20 2021 Eike Rathke <erack@redhat.com> - 78.10.0-1
+- Update to 78.10.0
+
+* Wed Mar 17 2021 Eike Rathke <erack@redhat.com> - 78.9.0-1
+- Update to 78.9.0 build1
+
+* Wed Feb 17 2021 Eike Rathke <erack@redhat.com> - 78.8.0-1
+- Update to 78.8.0 build2
+
+* Tue Feb 09 2021 Eike Rathke <erack@redhat.com> - 78.7.1-1
+- Update to 78.7.1
+
+* Tue Feb 09 2021 Jan Horak <jhorak@redhat.com> - 78.7.0-3
+- Fixing install prefix for the homepage
+
 * Fri Jan 22 2021 Eike Rathke <erack@redhat.com> - 78.7.0-2
 - Update to 78.7.0 build2