Firefox 70.0 firefox70
authorWolfgang Rosenauer <wr@rosenauer.org>
Fri, 25 Oct 2019 11:19:31 +0200
branchfirefox70
changeset 1112 8a4f5aea2475
parent 1111 97a6da6d7e29
child 1113 8e9195853a32
Firefox 70.0
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-bmo1573381.patch
MozillaFirefox/mozilla-nestegg-big-endian.patch
MozillaFirefox/source-stamp.txt
MozillaFirefox/tar_stamps
firefox-branded-icons.patch
firefox-kde.patch
mozilla-bmo1573381.patch
mozilla-kde.patch
mozilla-nestegg-big-endian.patch
mozilla-reduce-rust-debuginfo.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Sun Oct 20 14:25:55 2019 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Fri Oct 25 11:19:31 2019 +0200
@@ -1,4 +1,50 @@
 -------------------------------------------------------------------
+Sun Oct 20 20:19:31 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- Mozilla Firefox 70.0
+  * more privacy protections from Enhanced Tracking Protection
+  * Firefox Lockwise passwordmanager
+  * Improvements to core engine components, for better browsing on more sites
+  * Improved privacy and security indicators
+  MFSA 2019-34
+  * CVE-2018-6156 (bmo#1480088)
+    Heap buffer overflow in FEC processing in WebRTC
+  * CVE-2019-15903 (bmo#1584907)
+    Heap overflow in expat library in XML_GetCurrentLineNumber
+  * CVE-2019-11757 (bmo#1577107)
+    Use-after-free when creating index updates in IndexedDB
+  * CVE-2019-11759 (bmo#1577953)
+    Stack buffer overflow in HKDF output
+  * CVE-2019-11760 (bmo#1577719)
+    Stack buffer overflow in WebRTC networking
+  * CVE-2019-11761 (bmo#1561502)
+    Unintended access to a privileged JSONView object
+  * CVE-2019-11762 (bmo#1582857)
+    document.domain-based origin isolation has same-origin-property violation
+  * CVE-2019-11763 (bmo#1584216)
+    Incorrect HTML parsing results in XSS bypass technique
+  * CVE-2019-11765 (bmo#1562582)
+    Incorrect permissions could be granted to a website
+  * CVE-2019-17000 (bmo#1441468)
+    CSP bypass using object tag with data: URI
+  * CVE-2019-17001 (bmo#1587976)
+    CSP bypass using object tag when script-src 'none' is specified
+  * CVE-2019-17002 (bmo#1561056)
+    upgrade-insecure-requests was not being honored for links dragged and dropped
+  * CVE-2019-11764 (bmo#1558522, bmo#1577061, bmo#1548044, bmo#1571223,
+    bmo#1573048, bmo#1578933, bmo#1575217, bmo#1583684, bmo#1586845, bmo#1581950,
+    bmo#1583463, bmo#1586599)
+    Memory safety bugs fixed in Firefox 70 and Firefox ESR 68.2
+- requires
+    rust/cargo >= 1.36
+    NSPR >= 4.22
+    NSS >= 3.46.1
+    rust-cbindgen >= 0.9.1
+- removed obsolete patches
+    mozilla-bmo1573381.patch
+    mozilla-nestegg-big-endian.patch
+
+-------------------------------------------------------------------
 Sun Oct 13 08:58:12 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
 
 - Mozilla Firefox 69.0.3
--- a/MozillaFirefox/MozillaFirefox.spec	Sun Oct 20 14:25:55 2019 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Fri Oct 25 11:19:31 2019 +0200
@@ -18,14 +18,14 @@
 
 
 # changed with every update
-%define major          69
-%define mainver        %major.0.3
-%define orig_version   69.0.3
+%define major          70
+%define mainver        %major.0
+%define orig_version   70.0
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
 %define devpkg         1
-%define releasedate    20191009172106
+%define releasedate    20191016161957
 
 # always build with GCC as SUSE Security Team requires that
 %define clang_build 0
@@ -73,7 +73,7 @@
 %else
 BuildRequires:  gcc-c++
 %endif
-BuildRequires:  cargo >= 1.35
+BuildRequires:  cargo >= 1.36
 BuildRequires:  libXcomposite-devel
 BuildRequires:  libcurl-devel
 BuildRequires:  libidl-devel
@@ -81,15 +81,15 @@
 BuildRequires:  libnotify-devel
 BuildRequires:  libproxy-devel
 BuildRequires:  makeinfo
-BuildRequires:  mozilla-nspr-devel >= 4.21
-BuildRequires:  mozilla-nss-devel >= 3.45
+BuildRequires:  mozilla-nspr-devel >= 4.22
+BuildRequires:  mozilla-nss-devel >= 3.46.1
 BuildRequires:  nasm >= 2.13
 BuildRequires:  nodejs8 >= 8.11
 BuildRequires:  python-devel
 BuildRequires:  python2-xml
 BuildRequires:  python3 >= 3.5
-BuildRequires:  rust >= 1.35
-BuildRequires:  rust-cbindgen >= 0.9.0
+BuildRequires:  rust >= 1.36
+BuildRequires:  rust-cbindgen >= 0.9.1
 BuildRequires:  startup-notification-devel
 BuildRequires:  unzip
 BuildRequires:  update-desktop-files
@@ -179,15 +179,13 @@
 Patch13:        mozilla-ppc-altivec_static_inline.patch
 Patch14:        mozilla-bmo1005535.patch
 Patch15:        mozilla-bmo1568145.patch
-Patch16:        mozilla-bmo1573381.patch
-Patch17:        mozilla-bmo1504834-part1.patch
-Patch18:        mozilla-bmo1504834-part2.patch
-Patch19:        mozilla-bmo1504834-part3.patch
-Patch20:        mozilla-bmo1511604.patch
-Patch21:        mozilla-bmo1554971.patch
-Patch22:        mozilla-nestegg-big-endian.patch
-Patch23:        mozilla-bmo1512162.patch
-Patch24:        mozilla-fix-top-level-asm.patch
+Patch16:        mozilla-bmo1504834-part1.patch
+Patch17:        mozilla-bmo1504834-part2.patch
+Patch18:        mozilla-bmo1504834-part3.patch
+Patch19:        mozilla-bmo1511604.patch
+Patch20:        mozilla-bmo1554971.patch
+Patch21:        mozilla-bmo1512162.patch
+Patch22:        mozilla-fix-top-level-asm.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
@@ -323,8 +321,6 @@
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
-%patch23 -p1
-%patch24 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
@@ -346,6 +342,7 @@
 source %{SOURCE5}
 %endif # only_print_mozconfig
 
+export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
 export MOZ_SOURCE_CHANGESET=$REV
 export SOURCE_REPO=$REPO
 export source_repo=$REPO
@@ -501,7 +498,7 @@
 # renaming executables (for regular vs. ESR)
 %if "%{srcname}" != "%{progname}"
 mv %{buildroot}%{progdir}/%{srcname} %{buildroot}%{progdir}/%{progname}
-mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}
+mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}-bin
 %endif
 # install gre prefs
 install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
--- a/MozillaFirefox/mozilla-bmo1573381.patch	Sun Oct 20 14:25:55 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-bmo1573381.patch
\ No newline at end of file
--- a/MozillaFirefox/mozilla-nestegg-big-endian.patch	Sun Oct 20 14:25:55 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-../mozilla-nestegg-big-endian.patch
\ No newline at end of file
--- a/MozillaFirefox/source-stamp.txt	Sun Oct 20 14:25:55 2019 +0200
+++ b/MozillaFirefox/source-stamp.txt	Fri Oct 25 11:19:31 2019 +0200
@@ -1,2 +1,2 @@
-REV=e40b66e55c283267a74ea411b9dfeeb7ddbb879c
+REV=990d9f90f0f5c02b8af12d784dc76ab40ea84781
 REPO=http://hg.mozilla.org/releases/mozilla-release
--- a/MozillaFirefox/tar_stamps	Sun Oct 20 14:25:55 2019 +0200
+++ b/MozillaFirefox/tar_stamps	Fri Oct 25 11:19:31 2019 +0200
@@ -1,8 +1,8 @@
 PRODUCT="firefox"
 CHANNEL="release"
-VERSION="69.0.3"
+VERSION="70.0"
 VERSION_SUFFIX=""
-RELEASE_TAG="c4227f95dae9e613acd966b9999fda0565eafb9d"
+RELEASE_TAG="990d9f90f0f5c02b8af12d784dc76ab40ea84781"
 PREV_VERSION=""
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
--- a/firefox-branded-icons.patch	Sun Oct 20 14:25:55 2019 +0200
+++ b/firefox-branded-icons.patch	Fri Oct 25 11:19:31 2019 +0200
@@ -1,6 +1,6 @@
 # HG changeset patch
 # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
-# Parent  8a401a01454e9f5e8a357262d774e0ff348d9bc1
+# Parent  b75f4c79d0757cd16065811d34a563bdb5cfb15e
 
 diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
 --- a/browser/branding/branding-common.mozbuild
@@ -10,13 +10,13 @@
              'VisualElements_150.png',
              'VisualElements_70.png',
          ]
-     elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+     elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
          FINAL_TARGET_FILES.chrome.icons.default += [
              'default128.png',
              'default16.png',
-+	    'default22.png',
-+	    'default24.png',
-+	    'default256.png',
++            'default22.png',
++            'default24.png',
++            'default256.png',
              'default32.png',
              'default48.png',
              'default64.png',
@@ -24,7 +24,7 @@
 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
-@@ -404,20 +404,23 @@
+@@ -246,20 +246,23 @@
  @RESPATH@/browser/chrome/pdfjs.manifest
  @RESPATH@/browser/chrome/pdfjs/*
  @RESPATH@/chrome/toolkit@JAREXT@
@@ -46,5 +46,5 @@
  ; [Webide Files]
  @RESPATH@/browser/chrome/webide@JAREXT@
  @RESPATH@/browser/chrome/webide.manifest
- @RESPATH@/browser/@PREF_DIR@/webide.js
  
+ ; [DevTools Startup Files]
--- a/firefox-kde.patch	Sun Oct 20 14:25:55 2019 +0200
+++ b/firefox-kde.patch	Fri Oct 25 11:19:31 2019 +0200
@@ -3,7 +3,7 @@
 # Date 1559300151 -7200
 #      Fri May 31 12:55:51 2019 +0200
 # Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
-# Parent  28bde69150771a1530f784903bf68214dd5790ea
+# Parent  4faaad3619f286bd6077754d8e59d339a5142b80
 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/in-content/main.js b/browser/components/preferences/in-content/main.js
 --- a/browser/components/preferences/in-content/main.js
 +++ b/browser/components/preferences/in-content/main.js
-@@ -339,16 +339,23 @@ var gMainPane = {
+@@ -341,16 +341,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") +
-@@ -1146,16 +1153,27 @@ var gMainPane = {
+@@ -1199,16 +1206,27 @@ var gMainPane = {
        this._backoffIndex = 0;
  
        let shellSvc = getShellService();
@@ -71,7 +71,7 @@
 +++ b/browser/components/shell/moz.build
 @@ -28,16 +28,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
      ]
- elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      XPIDL_SOURCES += [
          'nsIGNOMEShellService.idl',
      ]
@@ -92,7 +92,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/browser/components/shell/nsKDEShellService.cpp
-@@ -0,0 +1,150 @@
+@@ -0,0 +1,103 @@
 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 +/* 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
@@ -196,53 +196,6 @@
 +    return NS_ERROR_NOT_IMPLEMENTED;
 +}
 +
-+NS_IMETHODIMP
-+nsKDEShellService::OpenApplication(PRInt32 aApplication)
-+{
-+    nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
-+    if (!command)
-+        return NS_ERROR_FAILURE;
-+
-+    nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
-+    if (!str)
-+        return NS_ERROR_FAILURE;
-+
-+    if( aApplication == APPLICATION_MAIL )
-+        str->SetData( NS_LITERAL_CSTRING( "OPENMAIL" ));
-+    else if( aApplication == APPLICATION_NEWS )
-+        str->SetData( NS_LITERAL_CSTRING( "OPENNEWS" ));
-+    else
-+        return NS_ERROR_NOT_IMPLEMENTED;
-+
-+    command->AppendElement( str );
-+    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
-+}
-+
-+NS_IMETHODIMP
-+nsKDEShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI)
-+{
-+    nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
-+    if (!command)
-+        return NS_ERROR_FAILURE;
-+
-+    nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
-+    nsCOMPtr<nsISupportsCString> appstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
-+    nsCOMPtr<nsISupportsCString> uristr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
-+    if (!cmdstr || !appstr || !uristr)
-+        return NS_ERROR_FAILURE;
-+
-+    cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" ));
-+    command->AppendElement( cmdstr );
-+    nsAutoCString app;
-+    nsresult rv = aApplication->GetNativePath( app );
-+    NS_ENSURE_SUCCESS( rv, rv );
-+    appstr->SetData( app );
-+    command->AppendElement( appstr );
-+    uristr->SetData( aURI );
-+    command->AppendElement( uristr );
-+    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
-+}
-+
 diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h
 new file mode 100644
 --- /dev/null
--- a/mozilla-bmo1573381.patch	Sun Oct 20 14:25:55 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-# HG changeset patch
-# Parent  45680ce4ca06795cbca1ea5a9ae8a7a11ab95cf1
-The code tries to find a codec in a list of codecs. For this it searches for a given prefix.
-But the prefix is of type char16_t, which means 2 bytes per character instead of 1, as was compared here.
-On big endian this created some false positives, as the order of bytes is different and some characters only
-occupy "the first" byte, having the second null'ed out.
-Noticed because of gtest: MediaMIMETypes.MediaCodecs
-
-Upstream bugreport: https://bugzilla.mozilla.org/show_bug.cgi?id=1573381
-
-diff -r 45680ce4ca06 -r 381102061fcc dom/media/MediaMIMETypes.cpp
---- a/dom/media/MediaMIMETypes.cpp	Mon Aug 05 09:28:53 2019 +0200
-+++ b/dom/media/MediaMIMETypes.cpp	Tue Aug 13 07:51:27 2019 +0200
-@@ -87,7 +87,7 @@
-   const size_t prefixLength = aCodecPrefix.Length();
-   for (const auto& myCodec : Range()) {
-     if (myCodec.Length() >= prefixLength &&
--        memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength) == 0) {
-+        memcmp(myCodec.Data(), aCodecPrefix.Data(), prefixLength * sizeof(char16_t)) == 0) {
-       return true;
-     }
-   }
--- a/mozilla-kde.patch	Sun Oct 20 14:25:55 2019 +0200
+++ b/mozilla-kde.patch	Fri Oct 25 11:19:31 2019 +0200
@@ -3,7 +3,7 @@
 # Date 1559294891 -7200
 #      Fri May 31 11:28:11 2019 +0200
 # Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
-# Parent  85e4798b74da9c377f84cf8f5dd59a7f952d92eb
+# Parent  86d7ace0b36abf542e56fbb702a5f9b308b9bf77
 Description: Add KDE integration to Firefox (toolkit parts)
 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
 Author: Lubos Lunak <lunak@suse.com>
@@ -13,7 +13,7 @@
 diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
 --- a/modules/libpref/Preferences.cpp
 +++ b/modules/libpref/Preferences.cpp
-@@ -83,16 +83,17 @@
+@@ -88,16 +88,17 @@
  #include "nsXPCOM.h"
  #include "nsXULAppAPI.h"
  #include "nsZipArchive.h"
@@ -31,7 +31,7 @@
  #ifdef MOZ_MEMORY
  #  include "mozmemory.h"
  #endif
-@@ -4623,25 +4624,37 @@ Result<Ok, const char*> Preferences::Ini
+@@ -4542,25 +4543,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.
-@@ -4688,17 +4701,17 @@ Result<Ok, const char*> Preferences::Ini
+@@ -4606,17 +4619,17 @@ nsresult Preferences::InitInitialObjects
        }
  
        nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@@ -91,9 +91,9 @@
 diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
 --- a/modules/libpref/moz.build
 +++ b/modules/libpref/moz.build
-@@ -31,16 +31,20 @@ EXPORTS.mozilla += [
-     'StaticPrefs.h',
+@@ -110,16 +110,20 @@ EXPORTS.mozilla += [
  ]
+ EXPORTS.mozilla += sorted(['!' + g for g in gen_h])
  
  UNIFIED_SOURCES += [
      'Preferences.cpp',
@@ -104,13 +104,13 @@
 +    '/toolkit/xre'
 +]
 +
- XPCOM_MANIFESTS += [
-     'components.conf',
- ]
+ gen_all_tuple = tuple(gen_h + gen_cpp + gen_rs)
+ 
+ GENERATED_FILES += [gen_all_tuple]
  
- include('/ipc/chromium/chromium-config.mozbuild')
- 
- FINAL_LIBRARY = 'xul'
+ static_pref_list = GENERATED_FILES[gen_all_tuple]
+ static_pref_list.script = 'init/generate_static_pref_list.py:emit_code'
+ static_pref_list.inputs = ['init/StaticPrefList.yaml']
  
 diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py
 --- a/python/mozbuild/mozpack/chrome/flags.py
@@ -175,7 +175,7 @@
 diff --git a/toolkit/mozapps/downloads/HelperAppDlg.jsm b/toolkit/mozapps/downloads/HelperAppDlg.jsm
 --- a/toolkit/mozapps/downloads/HelperAppDlg.jsm
 +++ b/toolkit/mozapps/downloads/HelperAppDlg.jsm
-@@ -1204,36 +1204,66 @@ nsUnknownContentTypeDialog.prototype = {
+@@ -1199,36 +1199,66 @@ nsUnknownContentTypeDialog.prototype = {
          params.handlerApp &&
          params.handlerApp.executable &&
          params.handlerApp.executable.isFile()
@@ -302,7 +302,7 @@
  nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
    // dbus prevents us from being threadsafe, but this routine should not block
    // anyhow
-@@ -382,21 +385,50 @@ nsresult nsUnixSystemProxySettings::GetP
+@@ -381,21 +384,50 @@ nsresult nsUnixSystemProxySettings::GetP
    return NS_OK;
  }
  
@@ -356,7 +356,7 @@
 diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
 --- a/toolkit/xre/moz.build
 +++ b/toolkit/xre/moz.build
-@@ -83,17 +83,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
+@@ -85,17 +85,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
          '../components/printingui',
      ]
  elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
@@ -364,7 +364,7 @@
          'nsNativeAppSupportDefault.cpp',
          'UIKitDirProvider.mm',
      ]
- elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
 +    EXPORTS += ['nsKDEUtils.h']
      UNIFIED_SOURCES += [
 +        'nsKDEUtils.cpp',
@@ -781,7 +781,7 @@
 diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandler/HandlerServiceParent.cpp
 --- a/uriloader/exthandler/HandlerServiceParent.cpp
 +++ b/uriloader/exthandler/HandlerServiceParent.cpp
-@@ -1,17 +1,17 @@
+@@ -7,17 +7,17 @@
  #include "mozilla/ipc/ProtocolUtils.h"
  #include "mozilla/Logging.h"
  #include "HandlerServiceParent.h"
@@ -800,7 +800,7 @@
  using mozilla::dom::RemoteHandlerApp;
  
  namespace {
-@@ -282,17 +282,17 @@ mozilla::ipc::IPCResult HandlerServicePa
+@@ -288,17 +288,17 @@ mozilla::ipc::IPCResult HandlerServicePa
  mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocolOS(
      const nsCString& aProtocolScheme, bool* aHandlerExists) {
    if (aProtocolScheme.Length() > MAX_SCHEME_LENGTH) {
@@ -819,7 +819,7 @@
  
  /*
   * Check if a handler exists for the provided protocol. Check the datastore
-@@ -311,17 +311,17 @@ mozilla::ipc::IPCResult HandlerServicePa
+@@ -317,17 +317,17 @@ mozilla::ipc::IPCResult HandlerServicePa
    nsCOMPtr<nsIExternalProtocolService> protoSvc =
        do_GetService(NS_EXTERNALPROTOCOLSERVICE_CONTRACTID, &rv);
    if (NS_WARN_IF(NS_FAILED(rv))) {
@@ -848,7 +848,7 @@
      if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
          CXXFLAGS += ['-Wno-error=shadow']
  
- if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      UNIFIED_SOURCES += [
 +        'unix/nsCommonRegistry.cpp',
          'unix/nsGNOMERegistry.cpp',
@@ -877,7 +877,7 @@
      CXXFLAGS += CONFIG['TK_CFLAGS']
      CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
  
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      CXXFLAGS += CONFIG['TK_CFLAGS']
 diff --git a/uriloader/exthandler/unix/nsCommonRegistry.cpp b/uriloader/exthandler/unix/nsCommonRegistry.cpp
 new file mode 100644
@@ -1826,7 +1826,7 @@
 +    '/toolkit/xre',
  ]
  
- if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
      CXXFLAGS += CONFIG['TK_CFLAGS']
  
  if CONFIG['MOZ_LAYOUT_DEBUGGER']:
--- a/mozilla-nestegg-big-endian.patch	Sun Oct 20 14:25:55 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-# HG changeset patch
-# Parent  381102061fccdec40efda75c7423a766f68201ba
-Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play
-Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by
-        nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had 
-        valid video nor audio. Which led to an endless-loop in the video state machine.
-Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes.
-Link: https://github.com/kinetiknz/nestegg/issues/64
-
-diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c
---- a/media/libnestegg/src/nestegg.c	Tue Aug 13 07:51:27 2019 +0200
-+++ b/media/libnestegg/src/nestegg.c	Tue Aug 20 07:59:54 2019 +0200
-@@ -768,7 +768,15 @@
- {
-   union {
-     uint64_t u;
--    float f;
-+    struct {
-+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
-+      uint32_t _pad;
-+      float f;
-+#else
-+      float f;
-+      uint32_t _pad;
-+#endif
-+    } f;
-     double d;
-   } value;
-   int r;
-@@ -780,7 +788,7 @@
-   if (r != 1)
-     return r;
-   if (length == 4)
--    *val = value.f;
-+    *val = value.f.f;
-   else
-     *val = value.d;
-   return 1;
--- a/mozilla-reduce-rust-debuginfo.patch	Sun Oct 20 14:25:55 2019 +0200
+++ b/mozilla-reduce-rust-debuginfo.patch	Fri Oct 25 11:19:31 2019 +0200
@@ -3,27 +3,42 @@
 # Date 1560754926 -7200
 #      Mon Jun 17 09:02:06 2019 +0200
 # Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
-# Parent  6cd963b6c82ea6629aaf4050851789b78f310338
+# Parent  fa1cf8b9cb4efdf89fe19e543fb54272b726a353
 #Description: reduce the rust debuginfo level on selected architectures where
 # compiling with debuginfo=2 causes the OOM killer to interrupt the build on
 # launchpad builders. Initially this was only on 32 bit architectures, but with
 # firefox 63 it started happening frequently on arm64 and ppc64el too.
 
-diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure
---- a/build/moz.configure/toolchain.configure	Tue May 21 17:26:58 2019 +0200
-+++ b/build/moz.configure/toolchain.configure	Mon Jun 17 09:02:06 2019 +0200
-@@ -1865,8 +1865,8 @@
+diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -1861,18 +1861,18 @@ imply_option('RUSTC_OPT_LEVEL', '2', whe
+ @depends('RUSTC_OPT_LEVEL', moz_optimize)
+ def rustc_opt_level(opt_level_option, moz_optimize):
+     if opt_level_option:
+         return opt_level_option[0]
+     else:
          return '1' if moz_optimize.optimize else '0'
  
  
--@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols')
--def rust_compile_flags(opt_level, debug_rust, debug_symbols):
-+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host)
-+def rust_compile_flags(opt_level, debug_rust, debug_symbols, host):
+-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers')
+-def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers):
++@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', '--enable-frame-pointers', host)
++def rust_compile_flags(opt_level, debug_rust, debug_symbols, frame_pointers, host):
      # Cargo currently supports only two interesting profiles for building:
      # development and release. Those map (roughly) to --enable-debug and
      # --disable-debug in Gecko, respectively.
-@@ -1889,6 +1889,8 @@
+     #
+     # But we'd also like to support an additional axis of control for
+     # optimization level. Since Cargo only supports 2 profiles, we're in
+     # a bit of a bind.
+     #
+@@ -1885,16 +1885,18 @@ def rust_compile_flags(opt_level, debug_
+ 
+     # opt-level=0 implies -C debug-assertions, which may not be desired
+     # unless Rust debugging is enabled.
+     if opt_level == '0' and not debug_rust:
+         debug_assertions = False
  
      if debug_symbols:
          debug_info = '2'
@@ -32,3 +47,8 @@
  
      opts = []
  
+     if opt_level is not None:
+         opts.append('opt-level=%s' % opt_level)
+     if debug_assertions is not None:
+         opts.append('debug-assertions=%s' %
+                     ('yes' if debug_assertions else 'no'))
--- a/series	Sun Oct 20 14:25:55 2019 +0200
+++ b/series	Fri Oct 25 11:19:31 2019 +0200
@@ -14,13 +14,11 @@
 mozilla-ppc-altivec_static_inline.patch
 mozilla-bmo1005535.patch
 mozilla-bmo1568145.patch
-mozilla-bmo1573381.patch
 mozilla-bmo1504834-part1.patch
 mozilla-bmo1504834-part2.patch
 mozilla-bmo1504834-part3.patch
 mozilla-bmo1511604.patch
 mozilla-bmo1554971.patch
-mozilla-nestegg-big-endian.patch
 mozilla-bmo1512162.patch
 mozilla-fix-top-level-asm.patch