# HG changeset patch # User Wolfgang Rosenauer # Date 1552985360 -3600 # Node ID 554cd9503f75d158f9f947aed403d32ce73b7647 # Parent e8d4a33582b89f1024a2a91369beccc8f9fbbe78 ESR 60.5 diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/MozillaFirefox.changes --- a/MozillaFirefox/MozillaFirefox.changes Mon Dec 10 22:33:01 2018 +0100 +++ b/MozillaFirefox/MozillaFirefox.changes Tue Mar 19 09:49:20 2019 +0100 @@ -1,8 +1,39 @@ ------------------------------------------------------------------- +Wed Jan 23 23:17:37 UTC 2019 - Wolfgang Rosenauer + +- Mozilla Firefox 60.5.0esr +- requires NSS >= 3.36.7 +- removed obsolete patch: + mozilla-no-stdcxx-check.patch + +------------------------------------------------------------------- +Wed Jan 9 15:01:00 UTC 2019 - Guillaume GARDET + +- Add patch to fix armv7 build (boo#1121255): + * mozilla-bmo1463035.patch + +------------------------------------------------------------------- Mon Dec 10 21:25:38 UTC 2018 - Wolfgang Rosenauer - Mozilla Firefox 60.4.0esr: - MFSA 2018-29 + * Updated list of currency codes to include Unidad Previsional (UYW) + (bmo#1499028) + MFSA 2018-30 (bsc#1119105) + * CVE-2018-17466 bmo#1488295 + Buffer overflow and out-of-bounds read in ANGLE library with + TextureStorage11 + * CVE-2018-18492 bmo#1499861 + Use-after-free with select element + * CVE-2018-18493 bmo#1504452 + Buffer overflow in accelerated 2D canvas with Skia + * CVE-2018-18494 bmo#1487964 + Same-origin policy violation using location attribute and + performance.getEntries to steal cross-origin URLs + * CVE-2018-18498 bmo#1500011 + Integer overflow when calculating buffer sizes for images + * CVE-2018-12405 bmo#1494752 bmo#1503326 bmo#1505181 bmo#1500759 + bmo#1504365 bmo#1506640 bmo#1503082 bmo#1502013 bmo#1510471 + Memory safety bugs fixed in Firefox 64 and Firefox ESR 60.4 - requires NSS >= 3.36.6 ------------------------------------------------------------------- diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/MozillaFirefox.spec --- a/MozillaFirefox/MozillaFirefox.spec Mon Dec 10 22:33:01 2018 +0100 +++ b/MozillaFirefox/MozillaFirefox.spec Tue Mar 19 09:49:20 2019 +0100 @@ -2,7 +2,7 @@ # spec file for package MozillaFirefox # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. -# 2006-2018 Wolfgang Rosenauer +# 2006-2019 Wolfgang Rosenauer # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,10 +19,10 @@ # changed with every update %define major 60 -%define mainver %major.4.0 +%define mainver %major.5.0 %define update_channel esr %define branding 1 -%define releasedate 20181203164059 +%define releasedate 20190121141556 %define source_prefix firefox-%{mainver} # PIE, full relro (x86_64 for now) @@ -73,7 +73,7 @@ BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.19 -BuildRequires: mozilla-nss-devel >= 3.36.6 +BuildRequires: mozilla-nss-devel >= 3.36.7 BuildRequires: python-devel BuildRequires: python2-xml BuildRequires: rust >= 1.24 @@ -150,7 +150,6 @@ Patch2: mozilla-kde.patch Patch3: mozilla-ntlm-full-path.patch Patch4: mozilla-openaes-decl.patch -Patch5: mozilla-no-stdcxx-check.patch Patch6: mozilla-reduce-files-per-UnifiedBindings.patch Patch7: mozilla-aarch64-startup-crash.patch Patch8: mozilla-bmo256180.patch @@ -159,6 +158,7 @@ Patch11: mozilla-bmo1464766.patch Patch13: mozilla-bmo1375074.patch Patch14: mozilla-bmo1436242.patch +Patch15: mozilla-bmo1463035.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -262,7 +262,6 @@ %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 %ifarch %ix86 %patch6 -p1 %endif @@ -275,6 +274,7 @@ %patch11 -p1 %patch13 -p1 %patch14 -p1 +%patch15 -p1 # Firefox %patch101 -p1 %patch102 -p1 diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/_constraints --- a/MozillaFirefox/_constraints Mon Dec 10 22:33:01 2018 +0100 +++ b/MozillaFirefox/_constraints Tue Mar 19 09:49:20 2019 +0100 @@ -5,7 +5,7 @@ 16 - 12 + 8 diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/create-tar.sh --- a/MozillaFirefox/create-tar.sh Mon Dec 10 22:33:01 2018 +0100 +++ b/MozillaFirefox/create-tar.sh Tue Mar 19 09:49:20 2019 +0100 @@ -7,8 +7,8 @@ CHANNEL="esr60" BRANCH="releases/mozilla-$CHANNEL" -RELEASE_TAG="6cc5fc0eaeaf9a9abcfc2722999ecdc6b539c23d" -VERSION="60.4.0" +RELEASE_TAG="15cf33587a608bd7ab91a3cd4ae47dea66ce73db" +VERSION="60.5.0" VERSION_SUFFIX="esr" LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json" diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/mozilla-bmo1463035.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MozillaFirefox/mozilla-bmo1463035.patch Tue Mar 19 09:49:20 2019 +0100 @@ -0,0 +1,1 @@ +../mozilla-bmo1463035.patch \ No newline at end of file diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/mozilla-no-stdcxx-check.patch --- a/MozillaFirefox/mozilla-no-stdcxx-check.patch Mon Dec 10 22:33:01 2018 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../mozilla-no-stdcxx-check.patch \ No newline at end of file diff -r e8d4a33582b8 -r 554cd9503f75 MozillaFirefox/source-stamp.txt --- a/MozillaFirefox/source-stamp.txt Mon Dec 10 22:33:01 2018 +0100 +++ b/MozillaFirefox/source-stamp.txt Tue Mar 19 09:49:20 2019 +0100 @@ -1,2 +1,2 @@ -REV=6cc5fc0eaeaf +REV=15cf33587a60 REPO=http://hg.mozilla.org/releases/mozilla-esr60 diff -r e8d4a33582b8 -r 554cd9503f75 firefox-kde.patch --- a/firefox-kde.patch Mon Dec 10 22:33:01 2018 +0100 +++ b/firefox-kde.patch Tue Mar 19 09:49:20 2019 +0100 @@ -1,5 +1,5 @@ # HG changeset patch -# Parent 1b44c077e473c5a7d02fab26e2a220ebf219e0ab +# Parent 9420d583bb274ee7070d3a39292ac6238062b855 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul new file mode 100644 @@ -1349,11 +1349,11 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer) -@@ -64,17 +62,17 @@ NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID) - NS_GENERIC_FACTORY_CONSTRUCTOR(nsSessionStoreUtils) +@@ -65,17 +63,17 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsSession NS_DEFINE_NAMED_CID(NS_SESSIONSTOREUTILS_CID); static const mozilla::Module::CIDEntry kBrowserCIDs[] = { + // clang-format off { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, nullptr, DirectoryProviderConstructor }, #if defined(XP_WIN) { &kNS_SHELLSERVICE_CID, false, nullptr, nsWindowsShellServiceConstructor }, diff -r e8d4a33582b8 -r 554cd9503f75 mozilla-aarch64-startup-crash.patch --- a/mozilla-aarch64-startup-crash.patch Mon Dec 10 22:33:01 2018 +0100 +++ b/mozilla-aarch64-startup-crash.patch Tue Mar 19 09:49:20 2019 +0100 @@ -1,32 +1,33 @@ # HG changeset patch # Parent a5cfa3aa11a9d3391df49de6fc5a0e5232c12c10 -# Parent 3005da37da3f1e2c568b1675307d10860182d214 +# Parent 85c2e07d2a9ec3e45f55d0e482c7b663626bfc8a Bug 991344 - Rpi3: Firefox crashes after a few seconds of usage diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp --- a/netwerk/base/nsIOService.cpp +++ b/netwerk/base/nsIOService.cpp -@@ -887,17 +887,23 @@ nsIOService::NewChannelFromURIWithProxyF - "doesn't support nsIUploadChannel2. An extension has " - "supplied a non-functional http protocol handler. This will " - "break behavior and in future releases not work at all."); - } - gHasWarnedUploadChannel2 = true; - } +@@ -874,18 +874,23 @@ nsresult nsIOService::NewChannelFromURIW + u"Http channel implementation " + "doesn't support nsIUploadChannel2. An extension has " + "supplied a non-functional http protocol handler. This will " + "break behavior and in future releases not work at all."); + } + gHasWarnedUploadChannel2 = true; } - + } +- +#if defined(__aarch64__) -+ if (result) { -+ channel.forget(result); -+ } ++ if (result) { ++ channel.forget(result); ++ } +#else - channel.forget(result); + channel.forget(result); +#endif - return NS_OK; + return NS_OK; } NS_IMETHODIMP - nsIOService::NewChannelFromURIWithProxyFlags2(nsIURI* aURI, - nsIURI* aProxyURI, - uint32_t aProxyFlags, - nsIDOMNode* aLoadingNode, + nsIOService::NewChannelFromURIWithProxyFlags2( + nsIURI *aURI, nsIURI *aProxyURI, uint32_t aProxyFlags, + nsIDOMNode *aLoadingNode, nsIPrincipal *aLoadingPrincipal, + nsIPrincipal *aTriggeringPrincipal, uint32_t aSecurityFlags, diff -r e8d4a33582b8 -r 554cd9503f75 mozilla-bmo1375074.patch --- a/mozilla-bmo1375074.patch Mon Dec 10 22:33:01 2018 +0100 +++ b/mozilla-bmo1375074.patch Tue Mar 19 09:49:20 2019 +0100 @@ -3,7 +3,7 @@ # User Lars T Hansen # Date 1519822672 -3600 # Node ID 800abe66894d6b07b24bccecbf6a65e2261076f6 -# Parent 223c97459e96183eb616aed39147207bdb953ba8 +# Parent 13ecd3214b18e4cab73c54e12e16071d58bed11e Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. r=sstangl diff --git a/js/src/jit-test/tests/bug1375074.js b/js/src/jit-test/tests/bug1375074.js @@ -32,64 +32,64 @@ diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp --- a/js/src/vm/UnboxedObject.cpp +++ b/js/src/vm/UnboxedObject.cpp -@@ -90,17 +90,25 @@ UnboxedLayout::makeConstructorCode(JSCon - masm.loadPtr(Address(masm.getStackPointer(), sizeof(void*)), propertiesReg); - masm.loadPtr(Address(masm.getStackPointer(), 2 * sizeof(void*)), newKindReg); +@@ -81,18 +81,25 @@ static const uintptr_t CLEAR_CONSTRUCTOR + masm.loadPtr(Address(masm.getStackPointer(), sizeof(void*)), propertiesReg); + masm.loadPtr(Address(masm.getStackPointer(), 2 * sizeof(void*)), newKindReg); #else - propertiesReg = IntArgReg0; - newKindReg = IntArgReg1; + propertiesReg = IntArgReg0; + newKindReg = IntArgReg1; #endif #ifdef JS_CODEGEN_ARM64 -- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing. -+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for -+ // addressing. The register we use for PSP may however also be used by -+ // calling code, and it is nonvolatile, so save it. Do this as a special -+ // case first because the generic save/restore code needs the PSP to be -+ // initialized already. -+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); -+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); +- // ARM64 communicates stack address via sp, but uses a pseudo-sp for +- // addressing. ++ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for ++ // addressing. The register we use for PSP may however also be used by ++ // calling code, and it is nonvolatile, so save it. Do this as a special ++ // case first because the generic save/restore code needs the PSP to be ++ // initialized already. ++ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); ++ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); + -+ // Initialize the PSP from the SP. - masm.initStackPtr(); ++ // Initialize the PSP from the SP. + masm.initStackPtr(); #endif - MOZ_ASSERT(propertiesReg.volatile_()); - MOZ_ASSERT(newKindReg.volatile_()); + MOZ_ASSERT(propertiesReg.volatile_()); + MOZ_ASSERT(newKindReg.volatile_()); - AllocatableGeneralRegisterSet regs(GeneralRegisterSet::All()); - regs.take(propertiesReg); -@@ -228,17 +236,32 @@ UnboxedLayout::makeConstructorCode(JSCon - if (object != ReturnReg) - masm.movePtr(object, ReturnReg); + AllocatableGeneralRegisterSet regs(GeneralRegisterSet::All()); + regs.take(propertiesReg); +@@ -234,17 +241,32 @@ static const uintptr_t CLEAR_CONSTRUCTOR + masm.bind(&done); - // Restore non-volatile registers which were saved on entry. - if (ScratchDoubleReg.volatile_()) - masm.pop(ScratchDoubleReg); - masm.PopRegsInMask(savedNonVolatileRegisters); + if (object != ReturnReg) masm.movePtr(object, ReturnReg); + + // Restore non-volatile registers which were saved on entry. + if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg); + masm.PopRegsInMask(savedNonVolatileRegisters); +#ifdef JS_CODEGEN_ARM64 -+ // Now restore the value that was in the PSP register on entry, and return. ++ // Now restore the value that was in the PSP register on entry, and return. + -+ // Obtain the correct SP from the PSP. -+ masm.Mov(sp, PseudoStackPointer64); ++ // Obtain the correct SP from the PSP. ++ masm.Mov(sp, PseudoStackPointer64); + -+ // Restore the saved value of the PSP register, this value is whatever the -+ // caller had saved in it, not any actual SP value, and it must not be -+ // overwritten subsequently. -+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); ++ // Restore the saved value of the PSP register, this value is whatever the ++ // caller had saved in it, not any actual SP value, and it must not be ++ // overwritten subsequently. ++ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); + -+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. -+ masm.Ret(vixl::lr); ++ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. ++ masm.Ret(vixl::lr); +#else - masm.abiret(); + masm.abiret(); +#endif - masm.bind(&failureStoreOther); + masm.bind(&failureStoreOther); - // There was a failure while storing a value which cannot be stored at all - // in the unboxed object. Initialize the object so it is safe for GC and - // return null. - masm.initUnboxedObjectContents(object, templateObject); + // There was a failure while storing a value which cannot be stored at all + // in the unboxed object. Initialize the object so it is safe for GC and + // return null. + masm.initUnboxedObjectContents(object, templateObject); - diff -r e8d4a33582b8 -r 554cd9503f75 mozilla-bmo1463035.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mozilla-bmo1463035.patch Tue Mar 19 09:49:20 2019 +0100 @@ -0,0 +1,121 @@ + +# HG changeset patch +# User Mike Hommey +# Date 1526871862 -32400 +# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43 +# Parent 4a2e8085417fe782738bfd736b69806d9ed19d6a +Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons + +For some reason, GNU as is not happy with the assembly generated after +bug 1238661 anymore on Debian armel. + +OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this +workaround anymore, so let's just kill it. + +diff --git a/mfbt/LinuxSignal.h b/mfbt/LinuxSignal.h +deleted file mode 100644 +--- a/mfbt/LinuxSignal.h ++++ /dev/null +@@ -1,38 +0,0 @@ +-/* This Source Code Form is subject to the terms of the Mozilla Public +- * License, v. 2.0. If a copy of the MPL was not distributed with this +- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +- +-#ifndef mozilla_LinuxSignal_h +-#define mozilla_LinuxSignal_h +- +-namespace mozilla { +- +-#if defined(__arm__) +- +-// Some (old) Linux kernels on ARM have a bug where a signal handler +-// can be called without clearing the IT bits in CPSR first. The result +-// is that the first few instructions of the handler could be skipped, +-// ultimately resulting in crashes. To workaround this bug, the handler +-// on ARM is a trampoline that starts with enough NOP instructions, so +-// that even if the IT bits are not cleared, only the NOP instructions +-// will be skipped over. +- +-template +-__attribute__((naked)) void SignalTrampoline(int aSignal, siginfo_t* aInfo, +- void* aContext) { +- asm volatile("nop; nop; nop; nop" : : : "memory"); +- +- asm volatile("b %0" : : "X"(H) : "memory"); +-} +- +-#define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) +- +-#else // __arm__ +- +-#define MOZ_SIGNAL_TRAMPOLINE(h) (h) +- +-#endif // __arm__ +- +-} // namespace mozilla +- +-#endif // mozilla_LinuxSignal_h +diff --git a/mfbt/moz.build b/mfbt/moz.build +--- a/mfbt/moz.build ++++ b/mfbt/moz.build +@@ -115,20 +115,16 @@ EXPORTS["double-conversion"] = [ + LOCAL_INCLUDES += [ + '/mfbt/double-conversion', + ] + + if CONFIG['OS_ARCH'] == 'WINNT': + EXPORTS.mozilla += [ + 'WindowsVersion.h', + ] +-elif CONFIG['OS_ARCH'] == 'Linux': +- EXPORTS.mozilla += [ +- 'LinuxSignal.h', +- ] + + UNIFIED_SOURCES += [ + 'Assertions.cpp', + 'ChaosMode.cpp', + 'double-conversion/double-conversion/bignum-dtoa.cc', + 'double-conversion/double-conversion/bignum.cc', + 'double-conversion/double-conversion/cached-powers.cc', + 'double-conversion/double-conversion/diy-fp.cc', +diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp +--- a/tools/profiler/core/platform-linux-android.cpp ++++ b/tools/profiler/core/platform-linux-android.cpp +@@ -55,17 +55,16 @@ + #ifdef __GLIBC__ + #include // backtrace, backtrace_symbols + #endif // def __GLIBC__ + #include // index + #include + #include + + #include "prenv.h" +-#include "mozilla/LinuxSignal.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + + #include + #include + + using namespace mozilla; + +@@ -248,17 +247,17 @@ Sampler::Sampler(PSLockRef aLock) + + // NOTE: We don't initialize LUL here, instead initializing it in + // SamplerThread's constructor. This is because with the + // profiler_suspend_and_sample_thread entry point, we want to be able to + // sample without waiting for LUL to be initialized. + + // Request profiling signals. + struct sigaction sa; +- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler); ++ sa.sa_sigaction = SigprofHandler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART | SA_SIGINFO; + if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) { + MOZ_CRASH("Error installing SIGPROF handler in the profiler"); + } + } + + void Sampler::Disable(PSLockRef aLock) { diff -r e8d4a33582b8 -r 554cd9503f75 mozilla-bmo256180.patch --- a/mozilla-bmo256180.patch Mon Dec 10 22:33:01 2018 +0100 +++ b/mozilla-bmo256180.patch Tue Mar 19 09:49:20 2019 +0100 @@ -1,11 +1,25 @@ ---- a/layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200 -+++ b/layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200 -@@ -13,7 +13,7 @@ +# HG changeset patch +# Parent 1f4171c3a5ca8a659154b0a846f9b9158c7f7923 + +diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h +--- a/layout/generic/nsIFrame.h ++++ b/layout/generic/nsIFrame.h +@@ -8,17 +8,17 @@ + + #ifndef nsIFrame_h___ + #define nsIFrame_h___ + + #ifndef MOZILLA_INTERNAL_API #error This header/class should only be used within Mozilla code. It should not be used by extensions. #endif -#define MAX_REFLOW_DEPTH 200 +#define MAX_REFLOW_DEPTH 1000 - /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually - going to be eliminated, and all callers will use nsFrame instead. At the moment + /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is + eventually going to be eliminated, and all callers will use nsFrame instead. + At the moment we're midway through this process, so you will see inlined + functions and member variables in this file. -dwh */ + + #include + #include diff -r e8d4a33582b8 -r 554cd9503f75 mozilla-kde.patch --- a/mozilla-kde.patch Mon Dec 10 22:33:01 2018 +0100 +++ b/mozilla-kde.patch Tue Mar 19 09:49:20 2019 +0100 @@ -1,16 +1,20 @@ # HG changeset patch -# Parent d7a4d772ba2afb3ac43e2f2f234ffa55bcf50e70 +# Parent 58a0b60e25e7160c9877299a37a2f10660888e9a Description: Add KDE integration to Firefox (toolkit parts) Author: Wolfgang Rosenauer Author: Lubos Lunak Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751 https://bugzilla.novell.com/show_bug.cgi?id=170055 -Index: firefox-60.2.0/modules/libpref/Preferences.cpp -=================================================================== ---- firefox-60.2.0.orig/modules/libpref/Preferences.cpp 2018-09-05 21:49:23.102829401 +0200 -+++ firefox-60.2.0/modules/libpref/Preferences.cpp 2018-09-05 21:49:31.498872824 +0200 -@@ -81,6 +81,7 @@ +diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp +--- a/modules/libpref/Preferences.cpp ++++ b/modules/libpref/Preferences.cpp +@@ -76,16 +76,17 @@ + #include "nsXPCOMCID.h" + #include "nsXPCOM.h" + #include "nsXULAppAPI.h" + #include "nsZipArchive.h" + #include "plbase64.h" #include "PLDHashTable.h" #include "plstr.h" #include "prlink.h" @@ -18,7 +22,17 @@ #ifdef XP_WIN #include "windows.h" -@@ -3873,6 +3874,7 @@ Preferences::InitInitialObjects() + #endif + + using namespace mozilla; + + #ifdef DEBUG +@@ -3519,25 +3520,37 @@ static nsresult pref_ReadPrefFromJar(nsZ + // application pref files for backwards compatibility. + static const char* specialFiles[] = { + #if defined(XP_MACOSX) + "macprefs.js" + #elif defined(XP_WIN) "winpref.js" #elif defined(XP_UNIX) "unix.js" @@ -26,7 +40,9 @@ #if defined(_AIX) , "aix.js" -@@ -3882,6 +3884,17 @@ Preferences::InitInitialObjects() + #endif + #elif defined(XP_BEOS) + "beos.js" #endif }; @@ -41,10 +57,20 @@ + } + } + - rv = pref_LoadPrefsInDir( - defaultPrefDir, specialFiles, ArrayLength(specialFiles)); + rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, + ArrayLength(specialFiles)); if (NS_FAILED(rv)) { -@@ -3940,7 +3953,7 @@ Preferences::InitInitialObjects() + NS_WARNING("Error parsing application default preferences."); + } + + // Load jar:$app/omni.jar!/defaults/preferences/*.js + // or jar:$gre/omni.jar!/defaults/preferences/*.js. +@@ -3585,17 +3598,17 @@ static nsresult pref_ReadPrefFromJar(nsZ + } + + nsCOMPtr path = do_QueryInterface(elem); + if (!path) { + continue; } // Do we care if a file provided by this process fails to load? @@ -53,11 +79,20 @@ } } -Index: firefox-60.2.0/modules/libpref/moz.build -=================================================================== ---- firefox-60.2.0.orig/modules/libpref/moz.build 2018-09-05 21:49:23.106829422 +0200 -+++ firefox-60.2.0/modules/libpref/moz.build 2018-09-05 21:49:31.498872824 +0200 -@@ -32,6 +32,10 @@ UNIFIED_SOURCES += [ + #ifdef MOZ_WIDGET_ANDROID + // Set up the correct default for toolkit.telemetry.enabled. If this build + // has MOZ_TELEMETRY_ON_BY_DEFAULT *or* we're on the beta channel, telemetry + // is on by default, otherwise not. This is necessary so that beta users who + // are testing final release builds don't flipflop defaults. +diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build +--- a/modules/libpref/moz.build ++++ b/modules/libpref/moz.build +@@ -27,16 +27,20 @@ XPIDL_MODULE = 'pref' + EXPORTS.mozilla += [ + 'Preferences.h', + ] + + UNIFIED_SOURCES += [ 'Preferences.cpp', ] @@ -68,11 +103,20 @@ include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' -Index: firefox-60.2.0/python/mozbuild/mozpack/chrome/flags.py -=================================================================== ---- firefox-60.2.0.orig/python/mozbuild/mozpack/chrome/flags.py 2018-09-05 21:49:23.106829422 +0200 -+++ firefox-60.2.0/python/mozbuild/mozpack/chrome/flags.py 2018-09-05 21:49:31.498872824 +0200 -@@ -225,6 +225,7 @@ class Flags(OrderedDict): + + DEFINES['OS_ARCH'] = CONFIG['OS_ARCH'] + DEFINES['MOZ_WIDGET_TOOLKIT'] = CONFIG['MOZ_WIDGET_TOOLKIT'] + if CONFIG['MOZ_ENABLE_WEBRENDER']: + DEFINES['MOZ_ENABLE_WEBRENDER'] = True +diff --git a/python/mozbuild/mozpack/chrome/flags.py b/python/mozbuild/mozpack/chrome/flags.py +--- a/python/mozbuild/mozpack/chrome/flags.py ++++ b/python/mozbuild/mozpack/chrome/flags.py +@@ -220,16 +220,17 @@ class Flags(OrderedDict): + 'contentaccessible': Flag, + 'os': StringFlag, + 'osversion': VersionFlag, + 'abi': StringFlag, + 'platform': Flag, 'xpcnativewrappers': Flag, 'tablet': Flag, 'process': StringFlag, @@ -80,11 +124,20 @@ } RE = re.compile(r'([!<>=]+)') -Index: firefox-60.2.0/python/mozbuild/mozpack/chrome/manifest.py -=================================================================== ---- firefox-60.2.0.orig/python/mozbuild/mozpack/chrome/manifest.py 2018-09-05 21:49:23.106829422 +0200 -+++ firefox-60.2.0/python/mozbuild/mozpack/chrome/manifest.py 2018-09-05 21:49:31.498872824 +0200 -@@ -39,6 +39,7 @@ class ManifestEntry(object): + def __init__(self, *flags): + ''' + Initialize a set of flags given in string form. + flags = Flags('contentaccessible=yes', 'appversion>=3.5') + ''' +diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py +--- a/python/mozbuild/mozpack/chrome/manifest.py ++++ b/python/mozbuild/mozpack/chrome/manifest.py +@@ -34,16 +34,17 @@ class ManifestEntry(object): + 'platformversion', + 'os', + 'osversion', + 'abi', + 'xpcnativewrappers', 'tablet', 'process', 'contentaccessible', @@ -92,11 +145,20 @@ ] def __init__(self, base, *flags): -Index: firefox-60.2.0/toolkit/components/downloads/moz.build -=================================================================== ---- firefox-60.2.0.orig/toolkit/components/downloads/moz.build 2018-09-05 21:49:23.106829422 +0200 -+++ firefox-60.2.0/toolkit/components/downloads/moz.build 2018-09-05 21:49:31.498872824 +0200 -@@ -46,5 +46,9 @@ if CONFIG['MOZ_PLACES']: + ''' + Initialize a manifest entry with the given base path and flags. + ''' + self.base = base + self.flags = Flags(*flags) +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 +@@ -41,10 +41,14 @@ EXTRA_JS_MODULES += [ + + if CONFIG['MOZ_PLACES']: + EXTRA_JS_MODULES += [ + 'DownloadHistory.jsm', + ] FINAL_LIBRARY = 'xul' @@ -106,11 +168,15 @@ + with Files('**'): BUG_COMPONENT = ('Toolkit', 'Download Manager') -Index: firefox-60.2.0/toolkit/content/jar.mn -=================================================================== ---- firefox-60.2.0.orig/toolkit/content/jar.mn 2018-09-05 21:49:23.106829422 +0200 -+++ firefox-60.2.0/toolkit/content/jar.mn 2018-09-05 21:49:31.498872824 +0200 -@@ -74,6 +74,8 @@ toolkit.jar: +diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn +--- a/toolkit/content/jar.mn ++++ b/toolkit/content/jar.mn +@@ -69,16 +69,18 @@ toolkit.jar: + content/global/bindings/checkbox.xml (widgets/checkbox.xml) + content/global/bindings/colorpicker.xml (widgets/colorpicker.xml) + content/global/bindings/datekeeper.js (widgets/datekeeper.js) + content/global/bindings/datepicker.js (widgets/datepicker.js) + content/global/bindings/datetimepopup.xml (widgets/datetimepopup.xml) content/global/bindings/datetimebox.xml (widgets/datetimebox.xml) content/global/bindings/datetimebox.css (widgets/datetimebox.css) * content/global/bindings/dialog.xml (widgets/dialog.xml) @@ -119,10 +185,15 @@ content/global/bindings/editor.xml (widgets/editor.xml) content/global/bindings/filefield.xml (widgets/filefield.xml) * content/global/bindings/findbar.xml (widgets/findbar.xml) -Index: firefox-60.2.0/toolkit/content/widgets/dialog-kde.xml -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ firefox-60.2.0/toolkit/content/widgets/dialog-kde.xml 2018-09-05 21:49:31.498872824 +0200 + content/global/bindings/general.xml (widgets/general.xml) + content/global/bindings/groupbox.xml (widgets/groupbox.xml) + content/global/bindings/listbox.xml (widgets/listbox.xml) + content/global/bindings/menu.xml (widgets/menu.xml) + content/global/bindings/menulist.xml (widgets/menulist.xml) +diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml +new file mode 100644 +--- /dev/null ++++ b/toolkit/content/widgets/dialog-kde.xml @@ -0,0 +1,478 @@ + +