Firefox 80.0 firefox80
authorWolfgang Rosenauer <wr@rosenauer.org>
Tue, 25 Aug 2020 21:27:22 +0200
branchfirefox80
changeset 1141 edb0ebe8cccc
parent 1140 a9aa543a508a
child 1142 c5e32127317c
Firefox 80.0
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-system-nspr.patch
MozillaFirefox/tar_stamps
firefox-branded-icons.patch
firefox-kde.patch
mozilla-kde.patch
mozilla-nongnome-proxies.patch
mozilla-system-nspr.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Sat Aug 22 08:33:39 2020 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Tue Aug 25 21:27:22 2020 +0200
@@ -1,4 +1,46 @@
 -------------------------------------------------------------------
+Sat Aug 22 06:52:01 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 80.0
+  MFSA 2020-36 (bsc#1175686)
+  * CVE-2020-15663 (bmo#1643199)
+    Downgrade attack on the Mozilla Maintenance Service could
+    have resulted in escalation of privilege
+  * CVE-2020-15664 (bmo#1658214)
+    Attacker-induced prompt for extension installation
+  * CVE-2020-12401 (bmo#1631573)
+    Timing-attack on ECDSA signature generation
+  * CVE-2020-6829 (bmo#1631583)
+    P-384 and P-521 vulnerable to an electro-magnetic side
+    channel attack on signature generation
+  * CVE-2020-12400 (bmo#1623116)
+    P-384 and P-521 vulnerable to a side channel attack on
+    modular inversion
+  * CVE-2020-15665 (bmo#1651636)
+    Address bar not reset when choosing to stay on a page after
+    the beforeunload dialog is shown
+  * CVE-2020-15666 (bmo#1450853)
+    MediaError message property leaks cross-origin response
+    status
+  * CVE-2020-15667 (bmo#1653371)
+    Heap overflow when processing an update file
+  * CVE-2020-15668 (bmo#1651520)
+    Data Race when reading certificate information
+  * CVE-2020-15670 (bmo#1651001, bmo#1651449, bmo#1653626,
+    bmo#1656957)
+    Memory safety bugs fixed in Firefox 80 and Firefox ESR 78.2
+- requires
+  * NSPR 4.27
+  * NSS 3.55
+- added mozilla-system-nspr.patch (bmo#1661096)
+- exclude ga-IE locale as it's failing to build
+- rollback parallelize locale build because it breaks bookmarks
+  (boo#1167976)
+- preserve original default bookmark file during langpack build
+  (boo#1167976)
+- add some ccache output during build
+
+-------------------------------------------------------------------
 Thu Aug 20 13:07:33 UTC 2020 - Martin Liška <mliska@suse.cz>
 
 - Use new memoryperjob _constraints instead of %limit_build macro.
--- a/MozillaFirefox/MozillaFirefox.spec	Sat Aug 22 08:33:39 2020 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Tue Aug 25 21:27:22 2020 +0200
@@ -25,9 +25,9 @@
 # orig_suffix b3
 # major 69
 # mainver %major.99
-%define major          79
+%define major          80
 %define mainver        %major.0
-%define orig_version   79.0
+%define orig_version   80.0
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
@@ -95,8 +95,8 @@
 BuildRequires:  libiw-devel
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
-BuildRequires:  mozilla-nspr-devel >= 4.26
-BuildRequires:  mozilla-nss-devel >= 3.54
+BuildRequires:  mozilla-nspr-devel >= 4.27
+BuildRequires:  mozilla-nss-devel >= 3.55
 BuildRequires:  nasm >= 2.14
 BuildRequires:  nodejs10 >= 10.21.0
 BuildRequires:  python-devel
@@ -208,6 +208,7 @@
 Patch26:        mozilla-bmo1626236.patch
 Patch27:        mozilla-s390x-skia-gradient.patch
 Patch28:        mozilla-libavcodec58_91.patch
+Patch29:        mozilla-system-nspr.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -350,6 +351,7 @@
 %patch26 -p1
 %patch27 -p1
 %patch28 -p1
+%patch29 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
@@ -518,6 +520,7 @@
 ls -l config/external/icu/data
 rm -f config/external/icu/data/icudt*l.dat
 %endif
+ccache -s
 %if 0%{?do_profiling}
 xvfb-run --server-args="-screen 0 1920x1080x24" \
 %endif
@@ -525,10 +528,19 @@
 
 # build additional locales
 %if %localize
+# The file obj/browser/locales/bookmarks.html will be overwritten by each langpack-build with the current translation
+# Thus we save here the original, to restore it afterwards, so that the default installation will not have zh-TW
+# bookmarks
+# See also https://bugzilla.opensuse.org/show_bug.cgi?id=1167976
+cp ../obj/browser/locales/bookmarks.html ../obj/browser/locales/bookmarks.html_ORIG
+
 mkdir -p %{buildroot}%{progdir}/browser/extensions
 truncate -s 0 %{_tmppath}/translations.{common,other}
-sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
-    | xargs -n 1 -P 0 -I {} /bin/sh -c '
+# Adding "-P 0" would give us parallel builds of langpacks. Unfortunately, mach currently doesn't support
+# building them in parallel. If we do, we get race-conditions and have mixed languages in the langpacks.
+# See https://bugzilla.suse.com/show_bug.cgi?id=1173986
+sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
+    | xargs -n 1 -I {} /bin/sh -c '
         locale=$1
         ./mach build langpack-$locale
         cp -L ../obj/dist/linux-*/xpi/firefox-%{orig_version}.$locale.langpack.xpi \
@@ -545,8 +557,12 @@
         echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi \
             >> %{_tmppath}/translations.$_l10ntarget
 ' -- {}
+
+# Restoring the original bookmarksfile
+cp ../obj/browser/locales/bookmarks.html_ORIG ../obj/browser/locales/bookmarks.html
 %endif
 
+ccache -s
 %endif # only_print_mozconfig
 
 %install
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-system-nspr.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -0,0 +1,1 @@
+../mozilla-system-nspr.patch
\ No newline at end of file
--- a/MozillaFirefox/tar_stamps	Sat Aug 22 08:33:39 2020 +0200
+++ b/MozillaFirefox/tar_stamps	Tue Aug 25 21:27:22 2020 +0200
@@ -1,11 +1,11 @@
 PRODUCT="firefox"
 CHANNEL="release"
-VERSION="79.0"
+VERSION="80.0"
 VERSION_SUFFIX=""
-PREV_VERSION="78.0.2"
+PREV_VERSION="79.0"
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
 
 RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
-RELEASE_TAG="df3ed76cf46b23c9b658cd5be4cdd4162d86f736"
-RELEASE_TIMESTAMP="20200720193547"
+RELEASE_TAG="bd5d1f49975deb730064a16b3079edb53c4a5f84"
+RELEASE_TIMESTAMP="20200818235255"
--- a/firefox-branded-icons.patch	Sat Aug 22 08:33:39 2020 +0200
+++ b/firefox-branded-icons.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
-# Parent  91064bb25b378c1fdcc2d99a89aeaf5e821b1689
+# Parent  fe8ed2b997914bef9446d854a4c189fb69394bac
 
 diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
 --- a/browser/branding/branding-common.mozbuild
@@ -24,9 +24,9 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -249,20 +249,23 @@
- @RESPATH@/browser/chrome/pdfjs.manifest
- @RESPATH@/browser/chrome/pdfjs/*
+@@ -252,20 +252,23 @@
+ @RESPATH@/chrome/pdfjs.manifest
+ @RESPATH@/chrome/pdfjs/*
  @RESPATH@/chrome/toolkit@JAREXT@
  @RESPATH@/chrome/toolkit.manifest
  @RESPATH@/chrome/recording.manifest
--- a/firefox-kde.patch	Sat Aug 22 08:33:39 2020 +0200
+++ b/firefox-kde.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1559300151 -7200
 #      Fri May 31 12:55:51 2019 +0200
 # Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
-# Parent  0fd58e0df883086574263e0881e1503cf110562a
+# Parent  3804871eac4171b99e9049dbc881b5304b5ac207
 How to apply this patch:
 1. Import and apply it
 2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
@@ -14,7 +14,7 @@
 diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
 --- a/browser/components/preferences/main.js
 +++ b/browser/components/preferences/main.js
-@@ -336,16 +336,23 @@ var gMainPane = {
+@@ -335,16 +335,23 @@ var gMainPane = {
          }, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
        };
  
@@ -38,7 +38,7 @@
      );
      let performanceSettingsUrl =
        Services.urlFormatter.formatURLPref("app.support.baseURL") +
-@@ -1301,16 +1308,27 @@ var gMainPane = {
+@@ -1291,16 +1298,27 @@ var gMainPane = {
        this._backoffIndex = 0;
  
        let shellSvc = getShellService();
@@ -139,7 +139,7 @@
 +    if (!str)
 +        return NS_ERROR_FAILURE;
 +
-+    str->SetData( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" ));
++    str->SetData("ISDEFAULTBROWSER"_ns);
 +    command->AppendElement( str );
 +
 +    if( nsKDEUtils::command( command ))
@@ -160,10 +160,10 @@
 +    if (!cmdstr || !paramstr)
 +        return NS_ERROR_FAILURE;
 +
-+    cmdstr->SetData( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" ));
++    cmdstr->SetData("SETDEFAULTBROWSER"_ns);
 +    command->AppendElement( cmdstr );
 +
-+    paramstr->SetData( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" ));
++    paramstr->SetData( aClaimAllTypes ? "ALLTYPES"_ns : "NORMAL"_ns );
 +    command->AppendElement( paramstr );
 +
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
--- a/mozilla-kde.patch	Sat Aug 22 08:33:39 2020 +0200
+++ b/mozilla-kde.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1559294891 -7200
 #      Fri May 31 11:28:11 2019 +0200
 # Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
-# Parent  43647626f7204e312a4e38cac0414a461b06667f
+# Parent  a22a4c4e41107a0809c33a83e9d14916738c5a82
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -31,7 +31,7 @@
  #ifdef MOZ_MEMORY
  #  include "mozmemory.h"
  #endif
-@@ -4570,25 +4571,37 @@ nsresult Preferences::InitInitialObjects
+@@ -4530,25 +4531,37 @@ nsresult Preferences::InitInitialObjects
    // application pref files for backwards compatibility.
    static const char* specialFiles[] = {
  #if defined(XP_MACOSX)
@@ -69,7 +69,7 @@
  
    // Load jar:$app/omni.jar!/defaults/preferences/*.js
    // or jar:$gre/omni.jar!/defaults/preferences/*.js.
-@@ -4634,17 +4647,17 @@ nsresult Preferences::InitInitialObjects
+@@ -4594,17 +4607,17 @@ nsresult Preferences::InitInitialObjects
        }
  
        nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@@ -91,7 +91,7 @@
 diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
 --- a/modules/libpref/moz.build
 +++ b/modules/libpref/moz.build
-@@ -117,16 +117,20 @@ EXPORTS.mozilla += [
+@@ -118,16 +118,20 @@ EXPORTS.mozilla += [
  ]
  EXPORTS.mozilla += sorted(['!' + g for g in gen_h])
  
@@ -157,7 +157,7 @@
 diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloads/moz.build
 --- a/toolkit/components/downloads/moz.build
 +++ b/toolkit/components/downloads/moz.build
-@@ -46,10 +46,14 @@ XPCOM_MANIFESTS += [
+@@ -45,10 +45,14 @@ XPCOM_MANIFESTS += [
  
  if CONFIG['MOZ_PLACES']:
      EXTRA_JS_MODULES += [
@@ -302,7 +302,7 @@
  nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
    // dbus prevents us from being threadsafe, but this routine should not block
    // anyhow
-@@ -384,21 +387,50 @@ nsresult nsUnixSystemProxySettings::GetP
+@@ -381,21 +384,50 @@ nsresult nsUnixSystemProxySettings::GetP
    return NS_OK;
  }
  
@@ -338,7 +338,7 @@
 +    url += nsPrintfCString("%d", aPort);
 +  }
 +  nsTArray<nsCString> command;
-+  command.AppendElement( NS_LITERAL_CSTRING( "GETPROXY" ));
++  command.AppendElement( "GETPROXY"_ns );
 +  command.AppendElement( url );
 +  nsTArray<nsCString> result;
 +  if( !nsKDEUtils::command( command, &result ) || result.Length() != 1 )
@@ -454,8 +454,8 @@
 +static bool getKdeSupport()
 +    {
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "CHECK" ));
-+    command.AppendElement( NS_LITERAL_CSTRING( MAKE_STR( KMOZILLAHELPER_VERSION )));
++    command.AppendElement( "CHECK"_ns );
++    command.AppendElement( "KMOZILLAHELPER_VERSION"_ns );
 +    bool kde = nsKDEUtils::command( command );
 +#ifdef DEBUG_KDE
 +    fprintf( stderr, "KDE RUNNING %d\n", kde );
@@ -991,7 +991,7 @@
 +nsKDERegistry::HandlerExists(const char *aProtocolScheme)
 +{
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "HANDLEREXISTS" ));
++    command.AppendElement( "HANDLEREXISTS"_ns );
 +    command.AppendElement( nsAutoCString( aProtocolScheme ));
 +    return nsKDEUtils::command( command );
 +}
@@ -1000,7 +1000,7 @@
 +nsKDERegistry::LoadURL(nsIURI *aURL)
 +{
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "OPEN" ));
++    command.AppendElement( "OPEN"_ns );
 +    nsCString url;
 +    aURL->GetSpec( url );
 +    command.AppendElement( url );
@@ -1016,7 +1016,7 @@
 +                                     nsAString& aDesc)
 +{
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "GETAPPDESCFORSCHEME" ));
++    command.AppendElement( "GETAPPDESCFORSCHEME"_ns );
 +    command.AppendElement( aScheme );
 +    nsTArray<nsCString> output;
 +    if( nsKDEUtils::command( command, &output ) && output.Length() == 1 )
@@ -1029,7 +1029,7 @@
 +{
 +    NS_ASSERTION(aFileExt[0] != '.', "aFileExt shouldn't start with a dot");
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "GETFROMEXTENSION" ));
++    command.AppendElement( "GETFROMEXTENSION"_ns );
 +    command.AppendElement( aFileExt );
 +    return GetFromHelper( command );
 +}
@@ -1038,7 +1038,7 @@
 +nsKDERegistry::GetFromType(const nsACString& aMIMEType)
 +{
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "GETFROMTYPE" ));
++    command.AppendElement( "GETFROMTYPE"_ns );
 +    command.AppendElement( aMIMEType );
 +    return GetFromHelper( command );
 +}
@@ -1171,9 +1171,9 @@
 +    bool supports;
 +    if( NS_SUCCEEDED( GetHasDefaultHandler( &supports )) && supports ) {
 +      nsTArray<nsCString> command;
-+      command.AppendElement( NS_LITERAL_CSTRING( "OPEN" ));
++      command.AppendElement( "OPEN"_ns );
 +      command.AppendElement( nativePath );
-+      command.AppendElement( NS_LITERAL_CSTRING( "MIMETYPE" ));
++      command.AppendElement( "MIMETYPE"_ns );
 +      command.AppendElement( mSchemeOrType );
 +      if( nsKDEUtils::command( command ))
 +        return NS_OK;
@@ -1214,7 +1214,7 @@
  #include "nsIFileStreams.h"
  #include "nsILineInputStream.h"
  #include "nsIFile.h"
-@@ -1022,17 +1022,17 @@ nsresult nsOSHelperAppService::GetHandle
+@@ -1019,17 +1019,17 @@ nsresult nsOSHelperAppService::GetHandle
  
  nsresult nsOSHelperAppService::OSProtocolHandlerExists(
      const char* aProtocolScheme, bool* aHandlerExists) {
@@ -1233,7 +1233,7 @@
      nsCOMPtr<nsIHandlerService> handlerSvc =
          do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
      if (NS_SUCCEEDED(rv) && handlerSvc) {
-@@ -1042,17 +1042,17 @@ nsresult nsOSHelperAppService::OSProtoco
+@@ -1039,17 +1039,17 @@ nsresult nsOSHelperAppService::OSProtoco
    }
  
    return rv;
@@ -1252,7 +1252,7 @@
  
  NS_IMETHODIMP nsOSHelperAppService::IsCurrentAppOSDefaultForProtocol(
      const nsACString& aScheme, bool* _retval) {
-@@ -1139,17 +1139,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+@@ -1136,17 +1136,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
    nsresult rv =
        LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                 minorType, mime_types_description, true);
@@ -1271,7 +1271,7 @@
  
      rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
                                    minorType, mime_types_description, false);
-@@ -1251,17 +1251,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
+@@ -1247,17 +1247,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
  
    // Now look up our extensions
    nsAutoString extensions, mime_types_description;
@@ -1294,7 +1294,6 @@
 --- a/widget/gtk/moz.build
 +++ b/widget/gtk/moz.build
 @@ -133,16 +133,17 @@ include('/ipc/chromium/chromium-config.m
- 
  FINAL_LIBRARY = 'xul'
  
  LOCAL_INCLUDES += [
@@ -1302,6 +1301,7 @@
      '/layout/generic',
      '/layout/xul',
      '/other-licenses/atk-1.0',
+     '/third_party/cups/include',
 +    '/toolkit/xre',
      '/widget',
      '/widget/headless',
@@ -1534,10 +1534,10 @@
 +        }
 +    command.AppendElement( title );
 +    if( mMode == nsIFilePicker::modeOpenMultiple )
-+        command.AppendElement( NS_LITERAL_CSTRING( "MULTIPLE" ));
++        command.AppendElement( "MULTIPLE"_ns );
 +    if( PRInt32 xid = windowToXid( mParentWidget ))
 +        {
-+        command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
++        command.AppendElement( "PARENT"_ns );
 +        nsAutoCString parent;
 +        parent.AppendInt( xid );
 +        command.AppendElement( parent );
@@ -1625,11 +1625,11 @@
 +    title.Adopt(ToNewUTF8String(mTitle));
 +
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING( "APPSDIALOG" ));
++    command.AppendElement( "APPSDIALOG"_ns );
 +    command.AppendElement( title );
 +    if( PRInt32 xid = windowToXid( mParentWidget ))
 +        {
-+        command.AppendElement( NS_LITERAL_CSTRING( "PARENT" ));
++        command.AppendElement( "PARENT"_ns );
 +        nsAutoCString parent;
 +        parent.AppendInt( xid );
 +        command.AppendElement( parent );
@@ -1703,25 +1703,25 @@
    int argc;
  
    bool ischrome;
-@@ -394,16 +395,17 @@ void ParseManifest(NSLocationType aType,
-   NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
-   NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
-   NS_NAMED_LITERAL_STRING(kApplication, "application");
-   NS_NAMED_LITERAL_STRING(kAppVersion, "appversion");
-   NS_NAMED_LITERAL_STRING(kGeckoVersion, "platformversion");
-   NS_NAMED_LITERAL_STRING(kOs, "os");
-   NS_NAMED_LITERAL_STRING(kOsVersion, "osversion");
-   NS_NAMED_LITERAL_STRING(kABI, "abi");
-+  NS_NAMED_LITERAL_STRING(kDesktop, "desktop");
-   NS_NAMED_LITERAL_STRING(kProcess, "process");
+@@ -393,16 +394,17 @@ void ParseManifest(NSLocationType aType,
+   constexpr auto kRemoteEnabled = u"remoteenabled"_ns;
+   constexpr auto kRemoteRequired = u"remoterequired"_ns;
+   constexpr auto kApplication = u"application"_ns;
+   constexpr auto kAppVersion = u"appversion"_ns;
+   constexpr auto kGeckoVersion = u"platformversion"_ns;
+   constexpr auto kOs = u"os"_ns;
+   constexpr auto kOsVersion = u"osversion"_ns;
+   constexpr auto kABI = u"abi"_ns;
++  constexpr auto kDesktop = u"desktop"_ns;
+   constexpr auto kProcess = u"process"_ns;
  #if defined(MOZ_WIDGET_ANDROID)
-   NS_NAMED_LITERAL_STRING(kTablet, "tablet");
+   constexpr auto kTablet = u"tablet"_ns;
  #endif
  
-   NS_NAMED_LITERAL_STRING(kMain, "main");
-   NS_NAMED_LITERAL_STRING(kContent, "content");
+   constexpr auto kMain = u"main"_ns;
+   constexpr auto kContent = u"content"_ns;
  
-@@ -449,39 +451,44 @@ void ParseManifest(NSLocationType aType,
+@@ -448,39 +450,44 @@ void ParseManifest(NSLocationType aType,
          CopyUTF8toUTF16(s, abi);
          abi.Insert(char16_t('_'), 0);
          abi.Insert(osTarget, 0);
@@ -1739,17 +1739,17 @@
      nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", info.dwMajorVersion,
                                info.dwMinorVersion);
    }
-+  desktop = NS_LITERAL_STRING("win");
++  desktop = u"win"_ns;
  #  pragma warning(pop)
  #elif defined(MOZ_WIDGET_COCOA)
    SInt32 majorVersion = nsCocoaFeatures::macOSVersionMajor();
    SInt32 minorVersion = nsCocoaFeatures::macOSVersionMinor();
    nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", majorVersion, minorVersion);
-+  desktop = NS_LITERAL_STRING("macosx");
++  desktop = u"macosx"_ns);
  #elif defined(MOZ_WIDGET_GTK)
    nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", gtk_major_version,
                              gtk_minor_version);
-+  desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome");
++  desktop = nsKDEUtils::kdeSession() ? u"kde"_ns : u"gnome"_ns;
  #elif defined(MOZ_WIDGET_ANDROID)
    bool isTablet = false;
    if (mozilla::AndroidBridge::Bridge()) {
@@ -1757,7 +1757,7 @@
          "android/os/Build$VERSION", "RELEASE", osVersion);
      isTablet = java::GeckoAppShell::IsTablet();
    }
-+  desktop = NS_LITERAL_STRING("android");
++  desktop = u"android"_ns;
  #endif
  
    if (XRE_IsContentProcess()) {
@@ -1766,7 +1766,7 @@
      process = kMain;
    }
  
-@@ -568,25 +575,27 @@ void ParseManifest(NSLocationType aType,
+@@ -567,25 +574,27 @@ void ParseManifest(NSLocationType aType,
      TriState stOsVersion = eUnspecified;
      TriState stOs = eUnspecified;
      TriState stABI = eUnspecified;
@@ -1794,7 +1794,7 @@
          continue;
        }
  
-@@ -623,17 +632,17 @@ void ParseManifest(NSLocationType aType,
+@@ -622,17 +631,17 @@ void ParseManifest(NSLocationType aType,
        }
  
        LogMessageWithContext(
@@ -1907,7 +1907,7 @@
  #endif
 +  if(nsKDEUtils::kdeSupport()) {
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING("REVEAL") );
++    command.AppendElement( "REVEAL"_ns );
 +    command.AppendElement( mPath );
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
@@ -1927,7 +1927,7 @@
  #ifdef MOZ_WIDGET_GTK
 +  if( nsKDEUtils::kdeSupport()) {
 +    nsTArray<nsCString> command;
-+    command.AppendElement( NS_LITERAL_CSTRING("OPEN") );
++    command.AppendElement( "OPEN"_ns );
 +    command.AppendElement( mPath );
 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
 +  }
--- a/mozilla-nongnome-proxies.patch	Sat Aug 22 08:33:39 2020 +0200
+++ b/mozilla-nongnome-proxies.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -3,7 +3,7 @@
 # Date 1558442915 -7200
 #      Tue May 21 14:48:35 2019 +0200
 # Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
-# Parent  dc1684693eed684bdafeff0ad78d4f6d288fcae1
+# Parent  bd5d1f49975deb730064a16b3079edb53c4a5f84
 Do not use gconf for proxy settings if not running within Gnome
 Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 ===================================================================
@@ -13,7 +13,7 @@
 diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 --- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
 +++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
-@@ -49,21 +49,24 @@ NS_IMETHODIMP
+@@ -49,20 +49,24 @@ NS_IMETHODIMP
  nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
    // dbus prevents us from being threadsafe, but this routine should not block
    // anyhow
@@ -24,15 +24,14 @@
  void nsUnixSystemProxySettings::Init() {
 -  mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
 -  if (mGSettings) {
--    mGSettings->GetCollectionForSchema(
--        NS_LITERAL_CSTRING("org.gnome.system.proxy"),
--        getter_AddRefs(mProxySettings));
+-    mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
+-                                       getter_AddRefs(mProxySettings));
 +  const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
 +  if (sessionType && !strcmp(sessionType, "gnome")) {
 +    mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
 +    if (mGSettings) {
 +      mGSettings->GetCollectionForSchema(
-+          NS_LITERAL_CSTRING("org.gnome.system.proxy"),
++          "org.gnome.system.proxy"_ns,
 +          getter_AddRefs(mProxySettings));
 +    }
    }
@@ -42,4 +41,4 @@
    if (mProxySettings) {
      nsCString proxyMode;
      // Check if mode is auto
-     nsresult rv =
+     nsresult rv = mProxySettings->GetString("mode"_ns, proxyMode);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-system-nspr.patch	Tue Aug 25 21:27:22 2020 +0200
@@ -0,0 +1,52 @@
+# HG changeset patch
+# User Wolfgang Rosenauer <wr@rosenauer.org>
+# Parent  3804871eac4171b99e9049dbc881b5304b5ac207
+
+diff --git a/dom/system/IOUtils.cpp b/dom/system/IOUtils.cpp
+--- a/dom/system/IOUtils.cpp
++++ b/dom/system/IOUtils.cpp
+@@ -9,19 +9,19 @@
+ #include "mozilla/dom/IOUtils.h"
+ #include "mozilla/dom/Promise.h"
+ #include "mozilla/ErrorNames.h"
+ #include "mozilla/Result.h"
+ #include "mozilla/ResultExtensions.h"
+ #include "mozilla/Services.h"
+ #include "mozilla/Span.h"
+ #include "mozilla/TextUtils.h"
+-#include "nspr/prio.h"
+-#include "nspr/private/pprio.h"
+-#include "nspr/prtypes.h"
++#include "prio.h"
++#include "private/pprio.h"
++#include "prtypes.h"
+ #include "nsDirectoryServiceDefs.h"
+ #include "nsIFile.h"
+ #include "nsIGlobalObject.h"
+ #include "nsNativeCharsetUtils.h"
+ #include "nsReadableUtils.h"
+ #include "nsString.h"
+ #include "nsThreadManager.h"
+ #include "SpecialSystemDirectory.h"
+diff --git a/dom/system/IOUtils.h b/dom/system/IOUtils.h
+--- a/dom/system/IOUtils.h
++++ b/dom/system/IOUtils.h
+@@ -9,17 +9,17 @@
+ 
+ #include "mozilla/AlreadyAddRefed.h"
+ #include "mozilla/DataMutex.h"
+ #include "mozilla/dom/BindingDeclarations.h"
+ #include "mozilla/dom/IOUtilsBinding.h"
+ #include "mozilla/dom/TypedArray.h"
+ #include "mozilla/ErrorResult.h"
+ #include "mozilla/MozPromise.h"
+-#include "nspr/prio.h"
++#include "prio.h"
+ #include "nsIAsyncShutdown.h"
+ #include "nsISerialEventTarget.h"
+ #include "nsLocalFile.h"
+ 
+ namespace mozilla {
+ 
+ /**
+  * Utility class to be used with |UniquePtr| to automatically close NSPR file
--- a/series	Sat Aug 22 08:33:39 2020 +0200
+++ b/series	Tue Aug 25 21:27:22 2020 +0200
@@ -25,6 +25,7 @@
 mozilla-bmo1626236.patch
 mozilla-s390x-skia-gradient.patch
 mozilla-libavcodec58_91.patch
+mozilla-system-nspr.patch
 
 # Firefox patches
 firefox-kde.patch