diff options
author | Björn Bidar | 2020-05-08 23:56:30 +0200 |
---|---|---|
committer | Björn Bidar | 2020-05-14 00:36:05 +0200 |
commit | 076043130ba141389beeaf5a4b69fad5f0bc852e (patch) | |
tree | 5c077c0689e5af77ed73e7b5ea798236a65740f1 | |
parent | 681d606ccc2217114f7c9360724c8ee64a15e08e (diff) | |
download | aur-076043130ba141389beeaf5a4b69fad5f0bc852e.tar.gz |
Upkg
- New upstream release
- Require graphite with mozilla additions for system-graphite
- Update firefox-kde patches from openSUSE
- Update unity-menubar patch from ubuntu
- Drop patch to workaround issue GCC/Clang6 not supporting class-temporary#6.7
Its already merged for Firefox 73.
- Updated pgo patches for KDE patchset
- Add patch to renable system-sqlite
- Add patch from MOZILLA#1624128 to fix builds with NSS 3.52
- Add patch to fix builds when GCC is used and LTO is enabled (MOZILLA#1516803)
- Add patch to disable elfhack to avoid build errors
-rw-r--r-- | .SRCINFO | 50 | ||||
-rw-r--r-- | 0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch | 70 | ||||
-rw-r--r-- | 2000_system_harfbuzz_support.patch | 30 | ||||
-rw-r--r-- | 2001_system_graphite2_support.patch | 46 | ||||
-rw-r--r-- | 5022efe33088.patch | 361 | ||||
-rw-r--r-- | 7002_system_av1_support.patch | 28 | ||||
-rw-r--r-- | Bug_1584000___Migrate_glyph_to_character_association_code.patch | 380 | ||||
-rw-r--r-- | PKGBUILD | 65 | ||||
-rw-r--r-- | build-disable-elfhack.patch | 12 | ||||
-rw-r--r-- | mozconfig | 2 | ||||
-rw-r--r-- | mozilla-1516803.patch | 16 | ||||
-rw-r--r-- | pgo_fix_missing_kdejs.patch | 6 | ||||
-rw-r--r-- | unity-menubar.patch | 90 | ||||
-rw-r--r-- | workaround_dom_indexdb_actorsparent_allignment.patch | 83 |
14 files changed, 625 insertions, 614 deletions
@@ -1,8 +1,8 @@ # Generated by mksrcinfo v8 -# Fri Jan 31 08:14:52 UTC 2020 +# Wed May 13 22:35:52 UTC 2020 pkgbase = firefox-kde-opensuse pkgdesc = Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE - pkgver = 72.0.2 + pkgver = 76.0.1 pkgrel = 1 url = https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox arch = i686 @@ -53,53 +53,57 @@ pkgbase = firefox-kde-opensuse depends = dav1d depends = aom depends = harfbuzz - depends = graphite + depends = graphite-mozilla depends = libwebp depends = libevent optdepends = networkmanager: Location detection via available WiFi networks optdepends = speech-dispatcher: Text-to-Speech optdepends = pulseaudio: Audio support - provides = firefox=72.0.2 + provides = firefox=76.0.1 conflicts = firefox options = !emptydirs - source = hg+https://hg.mozilla.org/mozilla-unified#tag=FIREFOX_72_0_2_RELEASE + source = hg+https://hg.mozilla.org/mozilla-unified#tag=FIREFOX_76_0_1_RELEASE source = mozconfig source = firefox.desktop source = vendor.js source = kde.js - source = firefox-branded-icons-4c5d44d40a03.patch::http://www.rosenauer.org/hg/mozilla/raw-file/4c5d44d40a03/firefox-branded-icons.patch - source = firefox-kde-4c5d44d40a03.patch::http://www.rosenauer.org/hg/mozilla/raw-file/4c5d44d40a03/firefox-kde.patch - source = mozilla-kde-4c5d44d40a03.patch::http://www.rosenauer.org/hg/mozilla/raw-file/4c5d44d40a03/mozilla-kde.patch - source = mozilla-nongnome-proxies-4c5d44d40a03.patch::http://www.rosenauer.org/hg/mozilla/raw-file/4c5d44d40a03/mozilla-nongnome-proxies.patch + source = firefox-branded-icons-3fd9346c90a6.patch::http://www.rosenauer.org/hg/mozilla/raw-file/3fd9346c90a6/firefox-branded-icons.patch + source = firefox-kde-3fd9346c90a6.patch::http://www.rosenauer.org/hg/mozilla/raw-file/3fd9346c90a6/firefox-kde.patch + source = mozilla-kde-3fd9346c90a6.patch::http://www.rosenauer.org/hg/mozilla/raw-file/3fd9346c90a6/mozilla-kde.patch + source = mozilla-nongnome-proxies-3fd9346c90a6.patch::http://www.rosenauer.org/hg/mozilla/raw-file/3fd9346c90a6/mozilla-nongnome-proxies.patch source = unity-menubar.patch source = add_missing_pgo_rule.patch source = pgo_fix_missing_kdejs.patch - source = Bug_1584000___Migrate_glyph_to_character_association_code.patch source = 2000_system_harfbuzz_support.patch source = 2001_system_graphite2_support.patch source = pgo.patch source = 7002_system_av1_support.patch source = 0001-Use-remoting-name-for-GDK-application-names.patch - source = workaround_dom_indexdb_actorsparent_allignment.patch + source = 5022efe33088.patch + source = 0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch + source = mozilla-1516803.patch + source = build-disable-elfhack.patch md5sums = SKIP - md5sums = f758e064e1463b90878790124f398197 + md5sums = fb9297f063386d8f2bef768fcbfc12c4 md5sums = a26a061efb4def6572d5b319d657f1d6 md5sums = 4c23d9c0a691d70919beb1dafbbecbd3 md5sums = 05bb69d25fb3572c618e3adf1ee7b670 - md5sums = ad055db454c9263623fdbc857e8290fe - md5sums = 0756f1b090f9c3371df957257907b0c7 - md5sums = 3bc553e23a3578991c7e205bfff1bb14 - md5sums = e083ae314eaa9355aa2d4aa75a7fc277 - md5sums = 4ced0c5110d6471b79aaa6e4215a183c + md5sums = 6821ee347a094765776d8aec0a1d07e2 + md5sums = 9fbeda9d97bdd05082e1b9b954839c65 + md5sums = 69a4e699468346c47457186205c6316f + md5sums = 0f9fcd2ec38e339e4f2d602e1b13e3ef + md5sums = dab1119e8575751064cd616718ce3eb4 md5sums = fe24f5ea463013bb7f1c12d12dce41b2 - md5sums = 3fa8bd22d97248de529780f5797178af - md5sums = 0ca36620e6004703a3d0354ac5625576 - md5sums = 28c2eff56d3d95da6e9ba444fc60e90b - md5sums = 8d0c0ebc805e4e52a3cb2c0dc64ea2de + md5sums = 39f19e3fc4acb7dd5ff92c656228c244 + md5sums = fc2299d95a9230c5bfe79462a7b1bfc6 + md5sums = 86bf0a147c5d07b57caf81456db4bdc6 md5sums = f867ae41a722630cc5567e2dcc51676d - md5sums = d87270bfe02ea30e2fde3fcae5daf18d + md5sums = 215e69f9941a0855e005a7b5a351df60 md5sums = 0ffabb81dd8a5fe98bb8afe47d6541d3 - md5sums = a8b9025375443d1f41ae94360f495798 + md5sums = cae73e7bbb8496192bee5aa83dfa2e8d + md5sums = b3955b522692ff778b571ae5014b4841 + md5sums = efcddfb6595b356b3faaf6b93313659e + md5sums = aa9261c4d407cf809bf8275e6f2e52c7 pkgname = firefox-kde-opensuse diff --git a/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch b/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch new file mode 100644 index 000000000000..99c05bb2bb94 --- /dev/null +++ b/0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch @@ -0,0 +1,70 @@ +From c3acffdb8e0cd46561d2c5131227dc92967cf3d2 Mon Sep 17 00:00:00 2001 +From: Kevin Jacobs <kjacobs@mozilla.com> +Date: Tue, 14 Apr 2020 18:32:19 +0000 +Subject: [PATCH] Bug 1624128 - Update CK_GCM_PARAMS uses for PKCS11 v3.0 + definition r=keeler + +This patch initializes the ulIvBits member of CK_GCM_PARAMS, which is new in PKCS11 v3. + +For libprio, we instead define NSS_PKCS11_2_0_COMPAT, which yields the old struct definition. + +Differential Revision: https://phabricator.services.mozilla.com/D67740 +--- + dom/crypto/WebCryptoTask.cpp | 1 + + netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c | 1 + + security/manager/ssl/OSKeyStore.cpp | 1 + + third_party/prio/moz.build | 5 +++++ + 4 files changed, 8 insertions(+) + +diff --git a/dom/crypto/WebCryptoTask.cpp b/dom/crypto/WebCryptoTask.cpp +index ad0d1432738f..60a265972d21 100644 +--- a/dom/crypto/WebCryptoTask.cpp ++++ b/dom/crypto/WebCryptoTask.cpp +@@ -600,6 +600,7 @@ class AesTask : public ReturnArrayBufferViewTask, public DeferredData { + case CKM_AES_GCM: + gcmParams.pIv = mIv.Elements(); + gcmParams.ulIvLen = mIv.Length(); ++ gcmParams.ulIvBits = gcmParams.ulIvLen * 8; + gcmParams.pAAD = mAad.Elements(); + gcmParams.ulAADLen = mAad.Length(); + gcmParams.ulTagBits = mTagLength; +diff --git a/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c b/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c +index e1fdbe36fbf8..2be2ce932ddf 100644 +--- a/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c ++++ b/netwerk/srtp/src/crypto/cipher/aes_gcm_nss.c +@@ -271,6 +271,7 @@ static srtp_err_status_t srtp_aes_gcm_nss_do_crypto(void *cv, + + c->params.pIv = c->iv; + c->params.ulIvLen = GCM_IV_LEN; ++ c->params.ulIvBits = GCM_IV_LEN * 8; + c->params.pAAD = c->aad; + c->params.ulAADLen = c->aad_size; + +diff --git a/security/manager/ssl/OSKeyStore.cpp b/security/manager/ssl/OSKeyStore.cpp +index 00bc918c5fdd..c83a559d9c1e 100644 +--- a/security/manager/ssl/OSKeyStore.cpp ++++ b/security/manager/ssl/OSKeyStore.cpp +@@ -663,6 +663,7 @@ nsresult AbstractOSKeyStore::DoCipher(const UniquePK11SymKey& aSymKey, + CK_GCM_PARAMS gcm_params; + gcm_params.pIv = const_cast<unsigned char*>(ivp); + gcm_params.ulIvLen = mIVLength; ++ gcm_params.ulIvBits = gcm_params.ulIvLen * 8; + gcm_params.ulTagBits = 128; + gcm_params.pAAD = nullptr; + gcm_params.ulAADLen = 0; +diff --git a/third_party/prio/moz.build b/third_party/prio/moz.build +index 3e10fe71ce8e..0a6e3c74a269 100644 +--- a/third_party/prio/moz.build ++++ b/third_party/prio/moz.build +@@ -42,3 +42,8 @@ SOURCES += [ + ] + + FINAL_LIBRARY = 'xul' ++ ++# Use PKCS11 v2 struct definitions for now, otherwise NSS requires ++# CK_GCM_PARAMS.ulIvBits to be set. This workaround is only required ++# until NSS 3.52 RTM and upstream correctly initializes the field. ++DEFINES['NSS_PKCS11_2_0_COMPAT'] = True +-- +2.26.2 + diff --git a/2000_system_harfbuzz_support.patch b/2000_system_harfbuzz_support.patch index 21ccd1f0cd40..680d9bfce22d 100644 --- a/2000_system_harfbuzz_support.patch +++ b/2000_system_harfbuzz_support.patch @@ -1,5 +1,5 @@ -From: Jan Beich <jbeich@FreeBSD.org> - +# HG changeset patch +# Parent 7b4a61d079f0d07c410e5f143ca666791349432f Add ability to use system-harfbuzz instead of bundled. https://bugzilla.mozilla.org/show_bug.cgi?id=847568 @@ -7,7 +7,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=847568 diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild --- a/config/system-headers.mozbuild +++ b/config/system-headers.mozbuild -@@ -1228,16 +1228,23 @@ if CONFIG['OS_TARGET'] == 'Android': +@@ -1227,16 +1227,23 @@ if CONFIG['OS_TARGET'] == 'Android': 'utils/TypeHelpers.h', 'utils/Unicode.h', 'utils/Vector.h', @@ -34,7 +34,7 @@ diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild diff --git a/dom/base/moz.build b/dom/base/moz.build --- a/dom/base/moz.build +++ b/dom/base/moz.build -@@ -538,13 +538,16 @@ include('/ipc/chromium/chromium-config.m +@@ -537,16 +537,19 @@ include('/ipc/chromium/chromium-config.m FINAL_LIBRARY = 'xul' if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: @@ -49,6 +49,9 @@ diff --git a/dom/base/moz.build b/dom/base/moz.build GeneratedFile('UseCounterList.h', script='gen-usecounters.py', entry_point='use_counter_list', inputs=['UseCounters.conf']) + GeneratedFile('UseCounterWorkerList.h', script='gen-usecounters.py', + entry_point='use_counter_list', inputs=['UseCountersWorker.conf']) + if CONFIG['CC_TYPE'] in ('clang', 'gcc'): CXXFLAGS += ['-Wno-error=shadow'] diff --git a/gfx/moz.build b/gfx/moz.build @@ -87,7 +90,7 @@ diff --git a/gfx/moz.build b/gfx/moz.build diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py --- a/gfx/skia/generate_mozbuild.py +++ b/gfx/skia/generate_mozbuild.py -@@ -112,16 +112,19 @@ if CONFIG['CC_TYPE'] == 'gcc': +@@ -93,16 +93,19 @@ if CONFIG['CC_TYPE'] == 'gcc': if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): CXXFLAGS += [ '-Wno-implicit-fallthrough', @@ -110,7 +113,7 @@ diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build --- a/gfx/skia/moz.build +++ b/gfx/skia/moz.build -@@ -488,16 +488,19 @@ if CONFIG['CC_TYPE'] == 'gcc': +@@ -485,16 +485,19 @@ if CONFIG['CC_TYPE'] == 'gcc': if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): CXXFLAGS += [ '-Wno-implicit-fallthrough', @@ -133,7 +136,7 @@ diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build --- a/gfx/thebes/moz.build +++ b/gfx/thebes/moz.build -@@ -281,11 +281,14 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk' +@@ -283,11 +283,14 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk' if CONFIG['MOZ_WAYLAND']: CXXFLAGS += CONFIG['MOZ_WAYLAND_CFLAGS'] @@ -167,13 +170,8 @@ diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build --- a/netwerk/dns/moz.build +++ b/netwerk/dns/moz.build -@@ -77,12 +77,15 @@ FINAL_LIBRARY = 'xul' - GeneratedFile('etld_data.inc', script='prepare_tlds.py', - inputs=['effective_tld_names.dat']) - - # need to include etld_data.inc - LOCAL_INCLUDES += [ - '/netwerk/base', +@@ -84,6 +84,9 @@ + '/netwerk/protocol/http', ] +if CONFIG['MOZ_SYSTEM_HARFBUZZ']: @@ -182,7 +180,7 @@ diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build USE_LIBS += ['icu'] if CONFIG['CC_TYPE'] in ('clang', 'gcc'): - CXXFLAGS += ['-Wno-error=shadow'] + diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build --- a/toolkit/library/moz.build +++ b/toolkit/library/moz.build @@ -209,7 +207,7 @@ diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build diff --git a/toolkit/moz.configure b/toolkit/moz.configure --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -394,16 +394,26 @@ def freetype2_combined_info(fontconfig_i +@@ -399,16 +399,26 @@ def freetype2_combined_info(fontconfig_i return namespace( cflags=freetype2_info.cflags + fontconfig_info.cflags, libs=freetype2_info.libs + fontconfig_info.libs, diff --git a/2001_system_graphite2_support.patch b/2001_system_graphite2_support.patch index 6d15f1b15c0f..0aa93375bea2 100644 --- a/2001_system_graphite2_support.patch +++ b/2001_system_graphite2_support.patch @@ -1,5 +1,5 @@ -From: Jan Beich <jbeich@FreeBSD.org> - +# HG changeset patch +# Parent 6a7e586f839ddc687046e2b1fea168d7ad9b72bd Allow building against system-wide graphite2. https://bugzilla.mozilla.org/show_bug.cgi?id=847568 @@ -7,7 +7,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=847568 diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild --- a/config/system-headers.mozbuild +++ b/config/system-headers.mozbuild -@@ -1235,16 +1235,22 @@ if CONFIG['OS_TARGET'] == 'Android': +@@ -1234,16 +1234,22 @@ if CONFIG['OS_TARGET'] == 'Android': if CONFIG['MOZ_SYSTEM_HARFBUZZ']: system_headers += [ @@ -30,6 +30,32 @@ diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild if CONFIG['MOZ_SYSTEM_JPEG']: system_headers += [ +diff --git a/gfx/graphite2/geckoextra/moz.build b/gfx/graphite2/geckoextra/moz.build +new file mode 100644 +--- /dev/null ++++ b/gfx/graphite2/geckoextra/moz.build +@@ -0,0 +1,21 @@ ++# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- ++# vim: set filetype=python: ++# This Source Code Form is subject to the terms of the Mozilla Public ++# License, v. 2.0. If a copy of the MPL was not distributed with this ++# file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ ++EXPORTS.graphite2 += [ ++ 'include/GraphiteExtra.h', ++ 'include/GraphiteStructsForRLBox.h', ++] ++ ++UNIFIED_SOURCES += [ ++ '../geckoextra/src/GraphiteExtra.cpp', ++] ++ ++CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] ++ ++# Match bundled graphite2 configuration ++AllowCompilerWarnings() ++ ++FINAL_LIBRARY = 'gkmedias' diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh --- a/gfx/graphite2/moz-gr-update.sh +++ b/gfx/graphite2/moz-gr-update.sh @@ -77,7 +103,7 @@ diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh diff --git a/gfx/moz.build b/gfx/moz.build --- a/gfx/moz.build +++ b/gfx/moz.build -@@ -8,28 +8,30 @@ with Files('**'): +@@ -8,28 +8,32 @@ with Files('**'): BUG_COMPONENT = ('Core', 'Graphics') SCHEDULES.inclusive += ['android-hw-gfx'] with Files('wr/**'): @@ -86,7 +112,9 @@ diff --git a/gfx/moz.build b/gfx/moz.build if CONFIG['MOZ_TREE_CAIRO']: DIRS += ['cairo'] -+if not CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++if CONFIG['MOZ_SYSTEM_GRAPHITE2']: ++ DIRS += ['graphite2/geckoextra'] ++else: + DIRS += ['graphite2/src' ] + if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: @@ -112,7 +140,7 @@ diff --git a/gfx/moz.build b/gfx/moz.build diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build --- a/gfx/thebes/moz.build +++ b/gfx/thebes/moz.build -@@ -279,16 +279,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('and +@@ -281,16 +281,19 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('and if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk': CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS'] @@ -136,7 +164,7 @@ diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build diff --git a/old-configure.in b/old-configure.in --- a/old-configure.in +++ b/old-configure.in -@@ -2649,16 +2649,37 @@ if test "$USE_FC_FREETYPE"; then +@@ -2595,16 +2595,37 @@ if test "$USE_FC_FREETYPE"; then CPPFLAGS="$CPPFLAGS $FT2_CFLAGS $XCFLAGS" MOZ_CHECK_HEADERS([fontconfig/fcfreetype.h], , [AC_MSG_ERROR(Can't find header fontconfig/fcfreetype.h.)], [#include <fontconfig/fontconfig.h>]) @@ -177,7 +205,7 @@ diff --git a/old-configure.in b/old-configure.in diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build --- a/toolkit/library/moz.build +++ b/toolkit/library/moz.build -@@ -240,16 +240,19 @@ if CONFIG['MOZ_ANDROID_GOOGLE_VR']: +@@ -234,16 +234,19 @@ if CONFIG['MOZ_ANDROID_GOOGLE_VR']: OS_LIBS += [ '-L%s' % CONFIG['MOZ_ANDROID_GOOGLE_VR_LIBS'], '-lgvr', @@ -200,7 +228,7 @@ diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build diff --git a/toolkit/moz.configure b/toolkit/moz.configure --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -390,16 +390,30 @@ def freetype2_combined_info(fontconfig_i +@@ -399,16 +399,30 @@ def freetype2_combined_info(fontconfig_i return namespace( cflags=freetype2_info.cflags + fontconfig_info.cflags, libs=freetype2_info.libs + fontconfig_info.libs, diff --git a/5022efe33088.patch b/5022efe33088.patch new file mode 100644 index 000000000000..a114eaaa09f7 --- /dev/null +++ b/5022efe33088.patch @@ -0,0 +1,361 @@ + +# HG changeset patch +# User Marco Bonardo <mbonardo@mozilla.com> +# Date 1582236963 0 +# Node ID 5022efe33088676d18253c3c2f86ada5ba7a9cbe +# Parent b22c07ea7c728cc962094c94d18aeed414c4936a +Bug 1611386 - Drop support for --enable-system-sqlite. r=asuth,glandium + +Differential Revision: https://phabricator.services.mozilla.com/D63177 + +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 +@@ -138,11 +138,9 @@ + @RESPATH@/update-settings.ini + #endif + @RESPATH@/platform.ini +-#ifndef MOZ_SYSTEM_SQLITE + #ifndef MOZ_FOLD_LIBS + @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@ + #endif +-#endif + @BINPATH@/@DLL_PREFIX@lgpllibs@DLL_SUFFIX@ + #ifdef MOZ_FFVPX + @BINPATH@/@DLL_PREFIX@mozavutil@DLL_SUFFIX@ + +diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure +--- a/build/moz.configure/old.configure ++++ b/build/moz.configure/old.configure +@@ -240,17 +240,16 @@ def old_configure_options(*options): + '--enable-sandbox', + '--enable-startup-notification', + '--enable-startupcache', + '--enable-strip', + '--enable-synth-pico', + '--enable-system-cairo', + '--enable-system-extension-dirs', + '--enable-system-pixman', +- '--enable-system-sqlite', + '--enable-universalchardet', + '--enable-updater', + '--enable-xul', + '--enable-zipwriter', + '--includedir', + '--libdir', + '--prefix', + '--with-android-distribution-directory', +diff --git a/config/external/sqlite/moz.build b/config/external/sqlite/moz.build +--- a/config/external/sqlite/moz.build ++++ b/config/external/sqlite/moz.build +@@ -1,22 +1,18 @@ + # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- + # vim: set filetype=python: + # This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + +-if CONFIG['MOZ_SYSTEM_SQLITE']: ++DIRS += ['../../../third_party/sqlite3/src'] ++if CONFIG['MOZ_FOLD_LIBS']: + Library('sqlite') +- OS_LIBS += CONFIG['SQLITE_LIBS'] ++ # When folding libraries, sqlite is actually in the nss library. ++ USE_LIBS += [ ++ 'nss', ++ ] + else: +- DIRS += ['../../../third_party/sqlite3/src'] +- if CONFIG['MOZ_FOLD_LIBS']: +- Library('sqlite') +- # When folding libraries, sqlite is actually in the nss library. +- USE_LIBS += [ +- 'nss', +- ] +- else: +- SharedLibrary('sqlite') +- SHARED_LIBRARY_NAME = 'mozsqlite3' ++ SharedLibrary('sqlite') ++ SHARED_LIBRARY_NAME = 'mozsqlite3' + +- SYMBOLS_FILE = '/third_party/sqlite3/src/sqlite.symbols' ++ SYMBOLS_FILE = '/third_party/sqlite3/src/sqlite.symbols' +diff --git a/old-configure.in b/old-configure.in +--- a/old-configure.in ++++ b/old-configure.in +@@ -57,17 +57,16 @@ GLIB_VERSION=2.22 + # The macro won't be used when compiling with earlier versions anyway. + GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 + CAIRO_VERSION=1.10 + GTK2_VERSION=2.18.0 + GTK3_VERSION=3.4.0 + GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4 + W32API_VERSION=3.14 + DBUS_VERSION=0.60 +-SQLITE_VERSION=3.31.1 + + dnl Set various checks + dnl ======================================================== + MISSING_X= + + dnl Initialize the Pthread test variables early so they can be + dnl overridden by each platform. + dnl ======================================================== +@@ -2127,45 +2126,21 @@ AC_SUBST(MOZ_SANDBOX) + + dnl ======================================================== + dnl = + dnl = Module specific options + dnl = + dnl ======================================================== + MOZ_ARG_HEADER(Individual module options) + +-dnl ======================================================== +-dnl Check for sqlite +-dnl ======================================================== +- +-MOZ_SYSTEM_SQLITE= +-MOZ_ARG_ENABLE_BOOL(system-sqlite, +-[ --enable-system-sqlite Use system sqlite (located with pkgconfig)], +-MOZ_SYSTEM_SQLITE=1, +-MOZ_SYSTEM_SQLITE= ) +- +-if test -n "$MOZ_SYSTEM_SQLITE" +-then +- dnl ============================ +- dnl === SQLite Version check === +- dnl ============================ +- dnl Check to see if the system SQLite package is new enough. +- PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION) +-else +- dnl ============================== +- dnl === SQLite fdatasync check === +- dnl ============================== +- dnl Check to see if fdatasync is available +- AC_CHECK_FUNC(fdatasync) +-fi +- +-if test -n "$MOZ_SYSTEM_SQLITE"; then +- AC_DEFINE(MOZ_SYSTEM_SQLITE) +-fi +-AC_SUBST(MOZ_SYSTEM_SQLITE) ++dnl ============================== ++dnl === SQLite fdatasync check === ++dnl ============================== ++dnl Check to see if fdatasync is available and make use of it ++AC_CHECK_FUNC(fdatasync) + + dnl ======================================================== + dnl = Disable zipwriter + dnl ======================================================== + MOZ_ARG_DISABLE_BOOL(zipwriter, + [ --disable-zipwriter Disable zipwriter component], + MOZ_ZIPWRITER=, + MOZ_ZIPWRITER=1 ) +diff --git a/storage/SQLiteMutex.h b/storage/SQLiteMutex.h +--- a/storage/SQLiteMutex.h ++++ b/storage/SQLiteMutex.h +@@ -51,35 +51,35 @@ class SQLiteMutex : private BlockingReso + */ + void destroy() { mMutex = NULL; } + + /** + * Acquires the mutex. + */ + void lock() { + MOZ_ASSERT(mMutex, "No mutex associated with this wrapper!"); +-#if defined(DEBUG) && !defined(MOZ_SYSTEM_SQLITE) ++#if defined(DEBUG) + // While SQLite Mutexes may be recursive, in our own code we do not want to + // treat them as such. + CheckAcquire(); + #endif + + ::sqlite3_mutex_enter(mMutex); + +-#if defined(DEBUG) && !defined(MOZ_SYSTEM_SQLITE) ++#if defined(DEBUG) + Acquire(); // Call is protected by us holding the mutex. + #endif + } + + /** + * Releases the mutex. + */ + void unlock() { + MOZ_ASSERT(mMutex, "No mutex associated with this wrapper!"); +-#if defined(DEBUG) && !defined(MOZ_SYSTEM_SQLITE) ++#if defined(DEBUG) + // While SQLite Mutexes may be recursive, in our own code we do not want to + // treat them as such. + Release(); // Call is protected by us holding the mutex. + #endif + + ::sqlite3_mutex_leave(mMutex); + } + +diff --git a/storage/moz.build b/storage/moz.build +--- a/storage/moz.build ++++ b/storage/moz.build +@@ -93,20 +93,14 @@ FINAL_LIBRARY = 'xul' + # Thunderbird needs the 2-argument version of fts3_tokenizer() + if CONFIG['MOZ_THUNDERBIRD'] or CONFIG['MOZ_SUITE']: + DEFINES['MOZ_SQLITE_FTS3_TOKENIZER'] = 1 + + # This is the default value. If we ever change it when compiling sqlite, we + # will need to change it here as well. + DEFINES['SQLITE_MAX_LIKE_PATTERN_LENGTH'] = 50000 + +-# See Sqlite moz.build for reasoning about TEMP_STORE. +-# For system sqlite we cannot use the compile time option, so we use a pragma. +-if CONFIG['MOZ_SYSTEM_SQLITE'] and (CONFIG['OS_TARGET'] == 'Android' +- or CONFIG['HAVE_64BIT_BUILD']): +- DEFINES['MOZ_MEMORY_TEMP_STORE_PRAGMA'] = True +- + LOCAL_INCLUDES += [ + '/dom/base', + '/third_party/sqlite3/src', + ] + + CXXFLAGS += CONFIG['SQLITE_CFLAGS'] +diff --git a/storage/mozStorageConnection.cpp b/storage/mozStorageConnection.cpp +--- a/storage/mozStorageConnection.cpp ++++ b/storage/mozStorageConnection.cpp +@@ -761,20 +761,16 @@ nsresult Connection::initializeInternal( + nsAutoCString cacheSizeQuery(MOZ_STORAGE_UNIQUIFY_QUERY_STR + "PRAGMA cache_size = "); + cacheSizeQuery.AppendInt(-MAX_CACHE_SIZE_KIBIBYTES); + srv = executeSql(mDBConn, cacheSizeQuery.get()); + if (srv != SQLITE_OK) { + return convertResultCode(srv); + } + +-#if defined(MOZ_MEMORY_TEMP_STORE_PRAGMA) +- (void)ExecuteSimpleSQL(NS_LITERAL_CSTRING("PRAGMA temp_store = 2;")); +-#endif +- + // Register our built-in SQL functions. + srv = registerFunctions(mDBConn); + if (srv != SQLITE_OK) { + return convertResultCode(srv); + } + + // Register our built-in SQL collating sequences. + srv = registerCollations(mDBConn, mStorageService); +diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp +--- a/storage/mozStorageService.cpp ++++ b/storage/mozStorageService.cpp +@@ -27,18 +27,16 @@ + #include "sqlite3.h" + #include "mozilla/AutoSQLiteLifetime.h" + + #ifdef XP_WIN + // "windows.h" was included and it can #define lots of things we care about... + # undef CompareString + #endif + +-#include "nsIPromptService.h" +- + //////////////////////////////////////////////////////////////////////////////// + //// Defines + + #define PREF_TS_SYNCHRONOUS "toolkit.storage.synchronous" + #define PREF_TS_SYNCHRONOUS_DEFAULT 1 + + #define PREF_TS_PAGESIZE "toolkit.storage.pageSize" + +@@ -179,41 +177,16 @@ NS_IMPL_ISUPPORTS(Service, mozIStorageSe + + Service* Service::gService = nullptr; + + already_AddRefed<Service> Service::getSingleton() { + if (gService) { + return do_AddRef(gService); + } + +- // Ensure that we are using the same version of SQLite that we compiled with +- // or newer. Our configure check ensures we are using a new enough version +- // at compile time. +- if (SQLITE_VERSION_NUMBER > ::sqlite3_libversion_number() || +- !::sqlite3_compileoption_used("SQLITE_SECURE_DELETE") || +- !::sqlite3_compileoption_used("SQLITE_THREADSAFE=1") || +- !::sqlite3_compileoption_used("SQLITE_ENABLE_FTS3") || +- !::sqlite3_compileoption_used("SQLITE_ENABLE_UNLOCK_NOTIFY") || +- !::sqlite3_compileoption_used("SQLITE_ENABLE_DBSTAT_VTAB")) { +- nsCOMPtr<nsIPromptService> ps(do_GetService(NS_PROMPTSERVICE_CONTRACTID)); +- if (ps) { +- nsAutoString title, message; +- title.AppendLiteral("SQLite Version Error"); +- message.AppendLiteral( +- "The application has been updated, but the SQLite " +- "library wasn't updated properly and the application " +- "cannot run. Please try to launch the application again. " +- "If that should still fail, please try reinstalling " +- "it, or contact the support of where you got the " +- "application from."); +- (void)ps->Alert(nullptr, title.get(), message.get()); +- } +- MOZ_CRASH("SQLite Version Error"); +- } +- + // The first reference to the storage service must be obtained on the + // main thread. + NS_ENSURE_TRUE(NS_IsMainThread(), nullptr); + RefPtr<Service> service = new Service(); + if (NS_SUCCEEDED(service->initialize())) { + // Note: This is cleared in the Service destructor. + gService = service.get(); + return service.forget(); +diff --git a/third_party/sqlite3/src/moz.build b/third_party/sqlite3/src/moz.build +--- a/third_party/sqlite3/src/moz.build ++++ b/third_party/sqlite3/src/moz.build +@@ -76,27 +76,25 @@ if CONFIG['OS_ARCH'] == 'WINNT' and CONF + # Omit unused functions to save some library footprint. + DEFINES['SQLITE_OMIT_DEPRECATED'] = True + DEFINES['SQLITE_OMIT_BUILTIN_TEST'] = True + DEFINES['SQLITE_OMIT_DECLTYPE'] = True + + # Try to use a MEMORY temp store when possible. That allows for better + # performance and doesn't suffer from a full separate tmp partition. + # Exclude 32bit platforms due to address space fragmentation issues. +-# System Sqlite is managed through a PRAGMA instead. + if CONFIG['OS_TARGET'] == 'Android': + # On Android there's no tmp partition, so always use a MEMORY temp store. + DEFINES['SQLITE_TEMP_STORE'] = 3 + elif CONFIG['HAVE_64BIT_BUILD']: + # On 64bit platforms default to a MEMORY temp store for performance. + DEFINES['SQLITE_TEMP_STORE'] = 2 + + # Change the default temp files prefix, to easily distinguish files we created + # vs files created by other Sqlite instances in the system. +-# This has obviously no effect in case of System Sqlite. + DEFINES['SQLITE_TEMP_FILE_PREFIX'] = '"mz_etilqs_"' + + # Suppress warnings in third-party code. + if CONFIG['CC_TYPE'] in ('clang', 'gcc'): + CFLAGS += [ + '-Wno-sign-compare', + '-Wno-type-limits', + ] +diff --git a/third_party/sqlite3/src/sqlite.symbols b/third_party/sqlite3/src/sqlite.symbols +--- a/third_party/sqlite3/src/sqlite.symbols ++++ b/third_party/sqlite3/src/sqlite.symbols +@@ -31,17 +31,16 @@ sqlite3_column_int + sqlite3_column_int64 + sqlite3_column_name + sqlite3_column_name16 + sqlite3_column_text + sqlite3_column_text16 + sqlite3_column_type + sqlite3_column_value + sqlite3_commit_hook +-sqlite3_compileoption_used + sqlite3_complete + sqlite3_complete16 + sqlite3_config + sqlite3_create_collation + sqlite3_create_collation16 + sqlite3_create_function + sqlite3_create_function16 + sqlite3_create_module + diff --git a/7002_system_av1_support.patch b/7002_system_av1_support.patch index 765ceb5f7ab0..62f10c1a7e70 100644 --- a/7002_system_av1_support.patch +++ b/7002_system_av1_support.patch @@ -1,6 +1,6 @@ # HG changeset patch # User Thomas Deutschmann <whissi@gentoo.org> -# Parent 3a154721ac07532973fcfa0dbec3e648bd5077c7 +# Parent a58801e9e29b0db9da0b5d90b96f2e05ff062de1 # Parent 66f9c84511dda432587261f6b9ebf07c4771aad8 Add ability to use system-av1 (media-libs/libaom and media-libs/dav1d) instead of bundled. @@ -8,7 +8,7 @@ Add ability to use system-av1 (media-libs/libaom and media-libs/dav1d) instead o diff --git a/config/external/moz.build b/config/external/moz.build --- a/config/external/moz.build +++ b/config/external/moz.build -@@ -32,18 +32,19 @@ if CONFIG['MOZ_TREMOR']: +@@ -34,18 +34,19 @@ if CONFIG['MOZ_TREMOR']: if CONFIG['MOZ_WEBM_ENCODER']: external_dirs += ['media/libmkv'] @@ -33,7 +33,7 @@ diff --git a/config/external/moz.build b/config/external/moz.build diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild --- a/config/system-headers.mozbuild +++ b/config/system-headers.mozbuild -@@ -1302,16 +1302,24 @@ else: +@@ -1291,16 +1291,24 @@ else: 'sys/event.h', ] @@ -86,7 +86,7 @@ diff --git a/dom/media/platforms/moz.build b/dom/media/platforms/moz.build diff --git a/toolkit/moz.configure b/toolkit/moz.configure --- a/toolkit/moz.configure +++ b/toolkit/moz.configure -@@ -473,32 +473,49 @@ imply_option('--enable-fmp4', ffmpeg, '- +@@ -480,17 +480,33 @@ imply_option('--enable-fmp4', ffmpeg, '- option('--disable-av1', help='Disable av1 video support') @@ -118,22 +118,6 @@ diff --git a/toolkit/moz.configure b/toolkit/moz.configure if target.cpu == 'aarch64': return True elif target.cpu in ('x86', 'x86_64'): - if nasm_version < '2.13': - die('nasm 2.13 or greater is required for AV1 support. ' + if nasm_version < '2.14': + die('nasm 2.14 or greater is required for AV1 support. ' 'Either install nasm or add --disable-av1 to your configure options.') - return True - - - set_config('MOZ_DAV1D_ASM', dav1d_asm) - set_define('MOZ_DAV1D_ASM', dav1d_asm) - set_config('MOZ_AV1', av1) - set_define('MOZ_AV1', av1) -+set_config('MOZ_SYSTEM_AV1', depends_if(system_av1)(lambda _: True)) - - # Built-in fragmented MP4 support. - # ============================================================== - option('--disable-fmp4', env='MOZ_FMP4', - help='Disable support for in built Fragmented MP4 parsing') - - @depends('--disable-fmp4', target, wmf, applemedia) - def fmp4(value, target, wmf, applemedia): diff --git a/Bug_1584000___Migrate_glyph_to_character_association_code.patch b/Bug_1584000___Migrate_glyph_to_character_association_code.patch deleted file mode 100644 index 32e1e52651bd..000000000000 --- a/Bug_1584000___Migrate_glyph_to_character_association_code.patch +++ /dev/null @@ -1,380 +0,0 @@ -# HG changeset patch -# User shravanrn@gmail.com <shravanrn@gmail.com> -# Date 1572421705 0 -# Wed Oct 30 07:48:25 2019 +0000 -# Node ID 1b90fe16b26aaa175ed963b4cb1610e87cbac410 -# Parent f67361bfb377d12c0ee1f26f710833f20641bb77 -Bug 1584000 - Migrate glyph to character association code from libThebes to graphite for sandboxed libGraphite performance r=jfkthame,froydnj - -Differential Revision: https://phabricator.services.mozilla.com/D47388 - -diff -r f67361bfb377 -r 1b90fe16b26a gfx/graphite2/geckoextra/include/GraphiteExtra.h ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/gfx/graphite2/geckoextra/include/GraphiteExtra.h Wed Oct 30 07:48:25 2019 +0000 -@@ -0,0 +1,42 @@ -+// -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- -+// vim: set ts=2 et sw=2 tw=80: -+// This Source Code is subject to the terms of the Mozilla Public License -+// version 2.0 (the "License"). You can obtain a copy of the License at -+// http://mozilla.org/MPL/2.0/. -+ -+#ifndef GraphiteExtra_h__ -+#define GraphiteExtra_h__ -+ -+#include <stdint.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#include "graphite2/Segment.h" -+ -+typedef struct { -+ uint32_t baseChar; // in UTF16 code units, not Unicode character indices -+ uint32_t baseGlyph; -+ uint32_t nChars; // UTF16 code units -+ uint32_t nGlyphs; -+} gr_glyph_to_char_cluster; -+ -+typedef struct { -+ gr_glyph_to_char_cluster* clusters; -+ uint16_t* gids; -+ float* xLocs; -+ float* yLocs; -+ uint32_t cIndex; -+} gr_glyph_to_char_association; -+ -+gr_glyph_to_char_association* gr_get_glyph_to_char_association( -+ gr_segment* aSegment, uint32_t aLength, const char16_t* aText); -+ -+void gr_free_char_association(gr_glyph_to_char_association* aData); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif -\ No newline at end of file -diff -r f67361bfb377 -r 1b90fe16b26a gfx/graphite2/geckoextra/src/GraphiteExtra.cpp ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/gfx/graphite2/geckoextra/src/GraphiteExtra.cpp Wed Oct 30 07:48:25 2019 +0000 -@@ -0,0 +1,167 @@ -+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -+/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -+/* 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/. */ -+ -+#include "graphite2/Font.h" -+#include "graphite2/Segment.h" -+#include "graphite2/GraphiteExtra.h" -+ -+#include <stdlib.h> -+#include <memory> -+#include <limits> -+ -+#define CHECK(cond, str) \ -+ do { \ -+ if (!(cond)) { \ -+ return false; \ -+ } \ -+ } while (false) -+ -+// High surrogates are in the range 0xD800 -- OxDBFF -+#define NS_IS_HIGH_SURROGATE(u) ((uint32_t(u) & 0xFFFFFC00) == 0xD800) -+// Low surrogates are in the range 0xDC00 -- 0xDFFF -+#define NS_IS_LOW_SURROGATE(u) ((uint32_t(u) & 0xFFFFFC00) == 0xDC00) -+ -+#define IS_POWER_OF_2(n) (n & (n - 1)) == 0 -+ -+typedef gr_glyph_to_char_cluster Cluster; -+ -+// returns whether successful -+static bool LoopThrough(gr_segment* aSegment, const uint32_t aLength, -+ const uint32_t aGlyphCount, const char16_t* aText, -+ uint32_t& aCIndex, Cluster* aClusters, uint16_t* aGids, -+ float* aXLocs, float* aYLocs) { -+ // walk through the glyph slots and check which original character -+ // each is associated with -+ uint32_t gIndex = 0; // glyph slot index -+ for (const gr_slot* slot = gr_seg_first_slot(aSegment); slot != nullptr; -+ slot = gr_slot_next_in_segment(slot), gIndex++) { -+ CHECK(gIndex < aGlyphCount, "iterating past glyphcount"); -+ uint32_t before = -+ gr_cinfo_base(gr_seg_cinfo(aSegment, gr_slot_before(slot))); -+ uint32_t after = gr_cinfo_base(gr_seg_cinfo(aSegment, gr_slot_after(slot))); -+ aGids[gIndex] = gr_slot_gid(slot); -+ aXLocs[gIndex] = gr_slot_origin_X(slot); -+ aYLocs[gIndex] = gr_slot_origin_Y(slot); -+ -+ // if this glyph has a "before" character index that precedes the -+ // current cluster's char index, we need to merge preceding -+ // aClusters until it gets included -+ while (before < aClusters[aCIndex].baseChar && aCIndex > 0) { -+ aClusters[aCIndex - 1].nChars += aClusters[aCIndex].nChars; -+ aClusters[aCIndex - 1].nGlyphs += aClusters[aCIndex].nGlyphs; -+ --aCIndex; -+ } -+ -+ // if there's a gap between the current cluster's base character and -+ // this glyph's, extend the cluster to include the intervening chars -+ if (gr_slot_can_insert_before(slot) && aClusters[aCIndex].nChars && -+ before >= aClusters[aCIndex].baseChar + aClusters[aCIndex].nChars) { -+ CHECK(aCIndex < aLength - 1, "aCIndex at end of word"); -+ Cluster& c = aClusters[aCIndex + 1]; -+ c.baseChar = aClusters[aCIndex].baseChar + aClusters[aCIndex].nChars; -+ c.nChars = before - c.baseChar; -+ c.baseGlyph = gIndex; -+ c.nGlyphs = 0; -+ ++aCIndex; -+ } -+ -+ // increment cluster's glyph count to include current slot -+ CHECK(aCIndex < aLength, "aCIndex beyond word length"); -+ ++aClusters[aCIndex].nGlyphs; -+ -+ // bump |after| index if it falls in the middle of a surrogate pair -+ if (NS_IS_HIGH_SURROGATE(aText[after]) && after < aLength - 1 && -+ NS_IS_LOW_SURROGATE(aText[after + 1])) { -+ after++; -+ } -+ -+ // extend cluster if necessary to reach the glyph's "after" index -+ if (aClusters[aCIndex].baseChar + aClusters[aCIndex].nChars < after + 1) { -+ aClusters[aCIndex].nChars = after + 1 - aClusters[aCIndex].baseChar; -+ } -+ } -+ -+ // Succeeded -+ return true; -+} -+ -+static gr_glyph_to_char_association* calloc_glyph_to_char_association( -+ uint32_t aGlyphCount, uint32_t aLength) { -+ using Type1 = gr_glyph_to_char_association; -+ using Type2 = gr_glyph_to_char_cluster; -+ using Type3 = float; -+ using Type4 = float; -+ using Type5 = uint16_t; -+ -+ // We are allocating memory in a pool. To avoid dealing with thorny alignment -+ // issues, we allocate from most to least aligned -+ static_assert( -+ alignof(Type1) >= alignof(Type2) && alignof(Type2) >= alignof(Type3) && -+ alignof(Type3) >= alignof(Type4) && alignof(Type4) >= alignof(Type5), -+ "Unexpected alignments of types"); -+ -+ const uint64_t size1 = sizeof(Type1) * static_cast<uint64_t>(1); -+ const uint64_t size2 = sizeof(Type2) * static_cast<uint64_t>(aLength); -+ const uint64_t size3 = sizeof(Type3) * static_cast<uint64_t>(aGlyphCount); -+ const uint64_t size4 = sizeof(Type4) * static_cast<uint64_t>(aGlyphCount); -+ const uint64_t size5 = sizeof(Type5) * static_cast<uint64_t>(aGlyphCount); -+ -+ uint64_t totalSize = size1 + size2 + size3 + size4 + size5; -+ -+ if (totalSize > std::numeric_limits<uint32_t>::max()) { -+ // allocation request got too large -+ return nullptr; -+ } -+ -+ char* const memoryPool = static_cast<char*>(calloc(1, totalSize)); -+ if (!memoryPool) { -+ return nullptr; -+ } -+ -+ char* currentPoolFront = memoryPool; -+ -+ auto data = reinterpret_cast<Type1*>(currentPoolFront); -+ currentPoolFront += size1; -+ data->clusters = reinterpret_cast<Type2*>(currentPoolFront); -+ currentPoolFront += size2; -+ data->xLocs = reinterpret_cast<Type3*>(currentPoolFront); -+ currentPoolFront += size3; -+ data->yLocs = reinterpret_cast<Type4*>(currentPoolFront); -+ currentPoolFront += size4; -+ data->gids = reinterpret_cast<Type5*>(currentPoolFront); -+ -+ return data; -+} -+ -+// returns nullptr on failure and the glyph to char association on success -+gr_glyph_to_char_association* gr_get_glyph_to_char_association( -+ gr_segment* aSegment, uint32_t aLength, const char16_t* aText) { -+ uint32_t glyphCount = gr_seg_n_slots(aSegment); -+ -+ gr_glyph_to_char_association* data = -+ calloc_glyph_to_char_association(glyphCount, aLength); -+ if (!data) { -+ return nullptr; -+ } -+ -+ bool succeeded = -+ LoopThrough(aSegment, aLength, glyphCount, aText, data->cIndex, -+ data->clusters, data->gids, data->xLocs, data->yLocs); -+ if (!succeeded) { -+ gr_free_char_association(data); -+ return nullptr; -+ } -+ return data; -+} -+ -+void gr_free_char_association(gr_glyph_to_char_association* aData) { -+ free(aData); -+} -+ -+#undef CHECK -+#undef NS_IS_HIGH_SURROGATE -+#undef NS_IS_LOW_SURROGATE -+#undef IS_POWER_OF_2 -diff -r f67361bfb377 -r 1b90fe16b26a gfx/graphite2/src/moz.build ---- a/gfx/graphite2/src/moz.build Wed Oct 30 11:00:40 2019 +0000 -+++ b/gfx/graphite2/src/moz.build Wed Oct 30 07:48:25 2019 +0000 -@@ -6,6 +6,7 @@ - - # This should contain all of the _PUBLIC_HEADERS from files.mk - EXPORTS.graphite2 += [ -+ '../geckoextra/include/GraphiteExtra.h', - '../include/graphite2/Font.h', - '../include/graphite2/Log.h', - '../include/graphite2/Segment.h', -@@ -23,6 +24,7 @@ - - # This should contain all of the _SOURCES from files.mk, except *_machine.cpp - UNIFIED_SOURCES += [ -+ '../geckoextra/src/GraphiteExtra.cpp', - 'CmapCache.cpp', - 'Code.cpp', - 'Collider.cpp', -diff -r f67361bfb377 -r 1b90fe16b26a gfx/thebes/gfxGraphiteShaper.cpp ---- a/gfx/thebes/gfxGraphiteShaper.cpp Wed Oct 30 11:00:40 2019 +0000 -+++ b/gfx/thebes/gfxGraphiteShaper.cpp Wed Oct 30 07:48:25 2019 +0000 -@@ -10,6 +10,7 @@ - #include "gfxTextRun.h" - - #include "graphite2/Font.h" -+#include "graphite2/GraphiteExtra.h" - #include "graphite2/Segment.h" - - #include "harfbuzz/hb.h" -@@ -191,18 +192,6 @@ - return NS_SUCCEEDED(rv); - } - --#define SMALL_GLYPH_RUN \ -- 256 // avoid heap allocation of per-glyph data arrays -- // for short (typical) runs up to this length -- --struct Cluster { -- uint32_t baseChar; // in UTF16 code units, not Unicode character indices -- uint32_t baseGlyph; -- uint32_t nChars; // UTF16 code units -- uint32_t nGlyphs; -- Cluster() : baseChar(0), baseGlyph(0), nChars(0), nGlyphs(0) {} --}; -- - nsresult gfxGraphiteShaper::SetGlyphsFromSegment( - gfxShapedText* aShapedText, uint32_t aOffset, uint32_t aLength, - const char16_t* aText, gr_segment* aSegment, RoundingFlags aRounding) { -@@ -211,70 +200,19 @@ - int32_t dev2appUnits = aShapedText->GetAppUnitsPerDevUnit(); - bool rtl = aShapedText->IsRightToLeft(); - -- uint32_t glyphCount = gr_seg_n_slots(aSegment); -+ // identify clusters; graphite may have reordered/expanded/ligated glyphs. -+ gr_glyph_to_char_association* data = -+ gr_get_glyph_to_char_association(aSegment, aLength, aText); - -- // identify clusters; graphite may have reordered/expanded/ligated glyphs. -- AutoTArray<Cluster, SMALL_GLYPH_RUN> clusters; -- AutoTArray<uint16_t, SMALL_GLYPH_RUN> gids; -- AutoTArray<float, SMALL_GLYPH_RUN> xLocs; -- AutoTArray<float, SMALL_GLYPH_RUN> yLocs; -- -- if (!clusters.SetLength(aLength, fallible) || -- !gids.SetLength(glyphCount, fallible) || -- !xLocs.SetLength(glyphCount, fallible) || -- !yLocs.SetLength(glyphCount, fallible)) { -- return NS_ERROR_OUT_OF_MEMORY; -+ if (!data) { -+ return NS_ERROR_FAILURE; - } - -- // walk through the glyph slots and check which original character -- // each is associated with -- uint32_t gIndex = 0; // glyph slot index -- uint32_t cIndex = 0; // current cluster index -- for (const gr_slot* slot = gr_seg_first_slot(aSegment); slot != nullptr; -- slot = gr_slot_next_in_segment(slot), gIndex++) { -- uint32_t before = -- gr_cinfo_base(gr_seg_cinfo(aSegment, gr_slot_before(slot))); -- uint32_t after = gr_cinfo_base(gr_seg_cinfo(aSegment, gr_slot_after(slot))); -- gids[gIndex] = gr_slot_gid(slot); -- xLocs[gIndex] = gr_slot_origin_X(slot); -- yLocs[gIndex] = gr_slot_origin_Y(slot); -- -- // if this glyph has a "before" character index that precedes the -- // current cluster's char index, we need to merge preceding -- // clusters until it gets included -- while (before < clusters[cIndex].baseChar && cIndex > 0) { -- clusters[cIndex - 1].nChars += clusters[cIndex].nChars; -- clusters[cIndex - 1].nGlyphs += clusters[cIndex].nGlyphs; -- --cIndex; -- } -- -- // if there's a gap between the current cluster's base character and -- // this glyph's, extend the cluster to include the intervening chars -- if (gr_slot_can_insert_before(slot) && clusters[cIndex].nChars && -- before >= clusters[cIndex].baseChar + clusters[cIndex].nChars) { -- NS_ASSERTION(cIndex < aLength - 1, "cIndex at end of word"); -- Cluster& c = clusters[cIndex + 1]; -- c.baseChar = clusters[cIndex].baseChar + clusters[cIndex].nChars; -- c.nChars = before - c.baseChar; -- c.baseGlyph = gIndex; -- c.nGlyphs = 0; -- ++cIndex; -- } -- -- // increment cluster's glyph count to include current slot -- NS_ASSERTION(cIndex < aLength, "cIndex beyond word length"); -- ++clusters[cIndex].nGlyphs; -- -- // bump |after| index if it falls in the middle of a surrogate pair -- if (NS_IS_HIGH_SURROGATE(aText[after]) && after < aLength - 1 && -- NS_IS_LOW_SURROGATE(aText[after + 1])) { -- after++; -- } -- // extend cluster if necessary to reach the glyph's "after" index -- if (clusters[cIndex].baseChar + clusters[cIndex].nChars < after + 1) { -- clusters[cIndex].nChars = after + 1 - clusters[cIndex].baseChar; -- } -- } -+ uint32_t cIndex = data->cIndex; -+ gr_glyph_to_char_cluster* clusters = data->clusters; -+ uint16_t* gids = data->gids; -+ float* xLocs = data->xLocs; -+ float* yLocs = data->yLocs; - - CompressedGlyph* charGlyphs = aShapedText->GetCharacterGlyphs() + aOffset; - -@@ -283,7 +221,7 @@ - - // now put glyphs into the textrun, one cluster at a time - for (uint32_t i = 0; i <= cIndex; ++i) { -- const Cluster& c = clusters[i]; -+ const gr_glyph_to_char_cluster& c = clusters[i]; - - float adv; // total advance of the cluster - if (rtl) { -@@ -350,11 +288,10 @@ - } - } - -+ gr_free_char_association(data); - return NS_OK; - } - --#undef SMALL_GLYPH_RUN -- - // for language tag validation - include list of tags from the IANA registry - #include "gfxLanguageTagList.cpp" - @@ -19,7 +19,7 @@ _pgo=true _pkgname=firefox pkgname=$_pkgname-kde-opensuse -pkgver=72.0.2 +pkgver=76.0.1 pkgrel=1 pkgdesc="Standalone web browser from mozilla.org with OpenSUSE patch, integrate better with KDE" arch=('i686' 'x86_64') @@ -34,7 +34,7 @@ depends=('mozilla-common' 'libxt' 'startup-notification' 'mime-types' # system harfbuzz 'harfbuzz' # system graphite - 'graphite' + 'graphite-mozilla' # system webp 'libwebp' # system libevent @@ -51,7 +51,7 @@ optdepends=('networkmanager: Location detection via available WiFi networks' 'pulseaudio: Audio support') provides=("firefox=${pkgver}") conflicts=('firefox') -_patchrev=4c5d44d40a03 +_patchrev=3fd9346c90a6 options=('!emptydirs') _patchurl=http://www.rosenauer.org/hg/mozilla/raw-file/$_patchrev _repo=https://hg.mozilla.org/mozilla-unified @@ -69,7 +69,6 @@ source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE" unity-menubar.patch add_missing_pgo_rule.patch pgo_fix_missing_kdejs.patch - Bug_1584000___Migrate_glyph_to_character_association_code.patch 2000_system_harfbuzz_support.patch 2001_system_graphite2_support.patch pgo.patch @@ -77,9 +76,15 @@ source=("hg+$_repo#tag=FIREFOX_${pkgver//./_}_RELEASE" 7002_system_av1_support.patch # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 0001-Use-remoting-name-for-GDK-application-names.patch - # Workaround objects no being allocated with the correct alignment - # inside dom/indexedDB/ActorsParent.cpp - workaround_dom_indexdb_actorsparent_allignment.patch + # reenable system sqlite + 5022efe33088.patch + # https://bugs.archlinux.org/task/66549 + 0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch + # Fix MOZILLA#1516803 + # https://bugzilla.mozilla.org/show_bug.cgi?id=1516803 + mozilla-1516803.patch + # Force disable elfhack to fix build errors + build-disable-elfhack.patch ) # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) @@ -120,10 +125,6 @@ prepare() { # add globalmenu support patch -Np1 -i "$srcdir/unity-menubar.patch" - - # Revert https://bugzilla.mozilla.org/show_bug.cgi?id=1584000 - # To fix system graphite2 - patch -R -p1 -i "$srcdir"/Bug_1584000___Migrate_glyph_to_character_association_code.patch patch -Np1 -i "$srcdir"/2000_system_harfbuzz_support.patch patch -Np1 -i "$srcdir"/2001_system_graphite2_support.patch @@ -132,9 +133,18 @@ prepare() { # https://bugzilla.mozilla.org/show_bug.cgi?id=1530052 patch -Np1 -i "$srcdir"/0001-Use-remoting-name-for-GDK-application-names.patch - # Workaround objects no being allocated with the correct alignment - # inside dom/indexedDB/ActorsParent.cpp - patch -Np1 -i "$srcdir"/workaround_dom_indexdb_actorsparent_allignment.patch + # https://bugs.archlinux.org/task/66549 + patch -Np1 -i ../0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch + # reenable system sqlite + patch -R -p1 -i "$srcdir"/5022efe33088.patch + + # Fix MOZILLA#1516803 + # sandbox needs to be built with --param lto-partitions=1 when + # GCC LTO is enabled + patch -Np1 -i "$srcdir"/mozilla-1516803.patch + + # Force disable elfhack to fix build errors + patch -Np1 -i "$srcdir"/build-disable-elfhack.patch if [[ $_pgo ]] ; then # add missing rule for pgo builds @@ -146,7 +156,6 @@ prepare() { patch -Np1 -i "$srcdir"/pgo_fix_missing_kdejs.patch echo "ac_add_options --enable-lto" >> .mozconfig - echo "ac_add_options --disable-elf-hack" >> .mozconfig fi } @@ -232,21 +241,23 @@ END ln -sf firefox "$pkgdir/usr/lib/firefox/firefox-bin" } md5sums=('SKIP' - 'f758e064e1463b90878790124f398197' + 'fb9297f063386d8f2bef768fcbfc12c4' 'a26a061efb4def6572d5b319d657f1d6' '4c23d9c0a691d70919beb1dafbbecbd3' '05bb69d25fb3572c618e3adf1ee7b670' - 'ad055db454c9263623fdbc857e8290fe' - '0756f1b090f9c3371df957257907b0c7' - '3bc553e23a3578991c7e205bfff1bb14' - 'e083ae314eaa9355aa2d4aa75a7fc277' - '4ced0c5110d6471b79aaa6e4215a183c' + '6821ee347a094765776d8aec0a1d07e2' + '9fbeda9d97bdd05082e1b9b954839c65' + '69a4e699468346c47457186205c6316f' + '0f9fcd2ec38e339e4f2d602e1b13e3ef' + 'dab1119e8575751064cd616718ce3eb4' 'fe24f5ea463013bb7f1c12d12dce41b2' - '3fa8bd22d97248de529780f5797178af' - '0ca36620e6004703a3d0354ac5625576' - '28c2eff56d3d95da6e9ba444fc60e90b' - '8d0c0ebc805e4e52a3cb2c0dc64ea2de' + '39f19e3fc4acb7dd5ff92c656228c244' + 'fc2299d95a9230c5bfe79462a7b1bfc6' + '86bf0a147c5d07b57caf81456db4bdc6' 'f867ae41a722630cc5567e2dcc51676d' - 'd87270bfe02ea30e2fde3fcae5daf18d' + '215e69f9941a0855e005a7b5a351df60' '0ffabb81dd8a5fe98bb8afe47d6541d3' - 'a8b9025375443d1f41ae94360f495798') + 'cae73e7bbb8496192bee5aa83dfa2e8d' + 'b3955b522692ff778b571ae5014b4841' + 'efcddfb6595b356b3faaf6b93313659e' + 'aa9261c4d407cf809bf8275e6f2e52c7') diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch new file mode 100644 index 000000000000..a80c5518dbfb --- /dev/null +++ b/build-disable-elfhack.patch @@ -0,0 +1,12 @@ +diff -up firefox-65.0/toolkit/moz.configure.disable-elfhack firefox-65.0/toolkit/moz.configure +--- firefox-65.0/toolkit/moz.configure.disable-elfhack 2019-01-28 14:16:48.530345132 +0100 ++++ firefox-65.0/toolkit/moz.configure 2019-01-28 14:18:03.231029682 +0100 +@@ -1036,7 +1036,7 @@ with only_when('--enable-compile-environ + help='{Enable|Disable} elf hacks') + + set_config('USE_ELF_HACK', +- depends_if('--enable-elf-hack')(lambda _: True)) ++ depends_if('--enable-elf-hack')(lambda _: False)) + + + @depends(check_build_environment) diff --git a/mozconfig b/mozconfig index 065643c756a5..2b0943bbcda3 100644 --- a/mozconfig +++ b/mozconfig @@ -29,7 +29,7 @@ ac_add_options --with-system-webp ac_add_options --with-system-zlib ac_add_options --with-system-bz2 ac_add_options --with-system-libevent -#ac_add_options --with-system-libvpx +ac_add_options --with-system-libvpx ac_add_options --with-system-harfbuzz ac_add_options --with-system-graphite2 #ac_add_options --enable-system-hunspell diff --git a/mozilla-1516803.patch b/mozilla-1516803.patch new file mode 100644 index 000000000000..00e362540481 --- /dev/null +++ b/mozilla-1516803.patch @@ -0,0 +1,16 @@ +diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build +--- a/security/sandbox/linux/moz.build ++++ b/security/sandbox/linux/moz.build +@@ -99,9 +99,8 @@ + # gcc lto likes to put the top level asm in syscall.cc in a different partition + # from the function using it which breaks the build. Work around that by + # forcing there to be only one partition. +-for f in CONFIG['OS_CXXFLAGS']: +- if f.startswith('-flto') and CONFIG['CC_TYPE'] != 'clang': +- LDFLAGS += ['--param lto-partitions=1'] ++if CONFIG['CC_TYPE'] != 'clang' and CONFIG['MOZ_LTO']: ++ LDFLAGS += ['--param', 'lto-partitions=1'] + + DEFINES['NS_NO_XPCOM'] = True + DisableStlWrapping() + diff --git a/pgo_fix_missing_kdejs.patch b/pgo_fix_missing_kdejs.patch index b3487b620dd0..ad1ff8714e33 100644 --- a/pgo_fix_missing_kdejs.patch +++ b/pgo_fix_missing_kdejs.patch @@ -1,10 +1,10 @@ --- b/browser/app/Makefile.in 2016-02-14 15:57:50.000000000 +0100 +++ a/browser/app/Makefile.in 2016-02-14 16:08:29.823744590 +0100 -@@ -71,6 +71,7 @@ +@@ -57,6 +57,7 @@ libs:: $(srcdir)/profile/channel-prefs.js $(NSINSTALL) -D $(DIST)/bin/defaults/pref - $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) -+ cp $(topsrcdir)/../kde.js $(DIST)/bin/defaults/pref/kde.js + $(call py3_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) ++ cp $(topsrcdir)/../kde.js $(DIST)/bin/defaults/pref/kde.js ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) diff --git a/unity-menubar.patch b/unity-menubar.patch index 2be5af7fa76e..ee88291d15cc 100644 --- a/unity-menubar.patch +++ b/unity-menubar.patch @@ -14,7 +14,7 @@ <menu id="file-menu" data-l10n-id="menu-file"> --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js -@@ -6463,11 +6463,17 @@ function onViewToolbarsPopupShowing(aEve +@@ -6373,11 +6373,17 @@ function onViewToolbarsPopupShowing(aEve let toolbarNodes = gNavToolbox.querySelectorAll("toolbar"); @@ -32,9 +32,9 @@ let menuItem = document.createXULElement("menuitem"); let hidingAttribute = toolbar.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; ---- a/browser/components/places/content/places.xul -+++ b/browser/components/places/content/places.xul -@@ -166,7 +166,7 @@ +--- a/browser/components/places/content/places.xhtml ++++ b/browser/components/places/content/places.xhtml +@@ -171,7 +171,7 @@ <toolbarbutton type="menu" class="tabbable" onpopupshowing="document.getElementById('placeContent').focus()" #else @@ -45,7 +45,7 @@ id="organizeButton" label="&organize.label;" --- a/dom/xul/XULPopupElement.cpp +++ b/dom/xul/XULPopupElement.cpp -@@ -156,6 +156,10 @@ void XULPopupElement::GetState(nsString& +@@ -158,6 +158,10 @@ void XULPopupElement::GetState(nsString& // set this here in case there's no frame for the popup aState.AssignLiteral("closed"); @@ -56,7 +56,7 @@ nsMenuPopupFrame* menuPopupFrame = do_QueryFrame(GetPrimaryFrame()); if (menuPopupFrame) { switch (menuPopupFrame->PopupState()) { -@@ -179,6 +183,11 @@ void XULPopupElement::GetState(nsString& +@@ -181,6 +185,11 @@ void XULPopupElement::GetState(nsString& break; } } @@ -70,7 +70,7 @@ nsINode* XULPopupElement::GetTriggerNode() const { --- a/dom/xul/moz.build +++ b/dom/xul/moz.build -@@ -82,6 +82,11 @@ LOCAL_INCLUDES += [ +@@ -83,6 +83,11 @@ LOCAL_INCLUDES += [ include('/ipc/chromium/chromium-config.mozbuild') @@ -97,7 +97,7 @@ 'components.conf', --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js -@@ -311,6 +311,9 @@ pref("dom.mouseevent.click.hack.use_lega +@@ -317,6 +317,9 @@ pref("dom.mouseevent.click.hack.use_lega // of content viewers to cache based on the amount of available memory. pref("browser.sessionhistory.max_total_viewers", -1); @@ -109,7 +109,7 @@ pref("ui.android.mouse_as_touch", 1); --- a/toolkit/content/xul.css +++ b/toolkit/content/xul.css -@@ -201,6 +201,13 @@ toolbar[type="menubar"] { +@@ -204,6 +204,13 @@ toolbar[type="menubar"] { } %endif @@ -125,10 +125,10 @@ } --- a/widget/gtk/moz.build +++ b/widget/gtk/moz.build -@@ -53,6 +53,15 @@ UNIFIED_SOURCES += [ - ] +@@ -55,6 +55,15 @@ UNIFIED_SOURCES += [ SOURCES += [ + 'MediaKeysEventSourceFactory.cpp', + 'nsDbusmenu.cpp', + 'nsMenu.cpp', # conflicts with X11 headers + 'nsMenuBar.cpp', @@ -141,7 +141,7 @@ 'nsWindow.cpp', # conflicts with X11 headers 'WaylandVsyncSource.cpp', # conflicts with X11 headers ] -@@ -130,6 +139,7 @@ FINAL_LIBRARY = 'xul' +@@ -132,6 +141,7 @@ FINAL_LIBRARY = 'xul' LOCAL_INCLUDES += [ '/layout/base', '/layout/generic', @@ -319,7 +319,7 @@ +#endif /* __nsDbusmenu_h__ */ --- /dev/null +++ b/widget/gtk/nsMenu.cpp -@@ -0,0 +1,798 @@ +@@ -0,0 +1,797 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -336,7 +336,6 @@ +#include "mozilla/EventDispatcher.h" +#include "mozilla/GuardObjects.h" +#include "mozilla/MouseEvents.h" -+#include "mozilla/Move.h" +#include "mozilla/PresShell.h" +#include "mozilla/PresShellInlines.h" +#include "nsAutoPtr.h" @@ -1246,7 +1245,7 @@ +#endif /* __nsMenu_h__ */ --- /dev/null +++ b/widget/gtk/nsMenuBar.cpp -@@ -0,0 +1,550 @@ +@@ -0,0 +1,549 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -1261,7 +1260,6 @@ +#include "mozilla/dom/Event.h" +#include "mozilla/dom/KeyboardEvent.h" +#include "mozilla/dom/KeyboardEventBinding.h" -+#include "mozilla/Move.h" +#include "mozilla/Preferences.h" +#include "nsAutoPtr.h" +#include "nsContentUtils.h" @@ -1913,7 +1911,7 @@ +#endif /* __nsMenuBar_h__ */ --- /dev/null +++ b/widget/gtk/nsMenuContainer.cpp -@@ -0,0 +1,171 @@ +@@ -0,0 +1,170 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -1922,7 +1920,6 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/DebugOnly.h" -+#include "mozilla/Move.h" +#include "nsGkAtoms.h" +#include "nsIContent.h" + @@ -2160,7 +2157,7 @@ +#endif /* __nsMenuContainer_h__ */ --- /dev/null +++ b/widget/gtk/nsMenuItem.cpp -@@ -0,0 +1,764 @@ +@@ -0,0 +1,767 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -2174,7 +2171,6 @@ +#include "mozilla/dom/Element.h" +#include "mozilla/dom/KeyboardEventBinding.h" +#include "mozilla/dom/XULCommandEvent.h" -+#include "mozilla/Move.h" +#include "mozilla/Preferences.h" +#include "mozilla/TextEvents.h" +#include "nsAutoPtr.h" @@ -2744,6 +2740,10 @@ + for (uint32_t i = 0; i < count; ++i) { + nsIContent *sibling = parent->GetChildAt_Deprecated(i); + ++ if (sibling->IsComment()) { ++ continue; ++ } ++ + nsAutoString otherName; + sibling->AsElement()->GetAttr(kNameSpaceID_None, nsGkAtoms::name, + otherName); @@ -3099,16 +3099,16 @@ + +NS_IMPL_ISUPPORTS(nsMenuObjectIconLoader, imgINotificationObserver) + -+NS_IMETHODIMP ++void +nsMenuObjectIconLoader::Notify(imgIRequest *aProxy, + int32_t aType, const nsIntRect *aRect) +{ + if (!mOwner) { -+ return NS_OK; ++ return; + } + + if (aProxy != mImageRequest) { -+ return NS_ERROR_FAILURE; ++ return; + } + + if (aType == imgINotificationObserver::LOAD_COMPLETE) { @@ -3117,7 +3117,7 @@ + (status & imgIRequest::STATUS_ERROR)) { + mImageRequest->Cancel(NS_BINDING_ABORTED); + mImageRequest = nullptr; -+ return NS_ERROR_FAILURE; ++ return; + } + + nsCOMPtr<imgIContainer> image; @@ -3129,23 +3129,23 @@ + image->GetWidth(&width); + image->GetHeight(&height); + image->RequestDecodeForSize(nsIntSize(width, height), imgIContainer::FLAG_NONE); -+ return NS_OK; ++ return; + } + + if (aType == imgINotificationObserver::DECODE_COMPLETE) { + mImageRequest->Cancel(NS_BINDING_ABORTED); + mImageRequest = nullptr; -+ return NS_OK; ++ return; + } + + if (aType != imgINotificationObserver::FRAME_COMPLETE) { -+ return NS_OK; ++ return; + } + + nsCOMPtr<imgIContainer> img; + mImageRequest->GetImage(getter_AddRefs(img)); + if (!img) { -+ return NS_ERROR_FAILURE; ++ return; + } + + if (!mImageRect.IsEmpty()) { @@ -3158,7 +3158,7 @@ + + if (width <= 0 || height <= 0) { + mOwner->ClearIcon(); -+ return NS_OK; ++ return; + } + + if (width > 100 || height > 100) { @@ -3167,7 +3167,7 @@ + // GDbus helpfully aborts the application. Thank you :) + NS_WARNING("Icon data too large"); + mOwner->ClearIcon(); -+ return NS_OK; ++ return; + } + + GdkPixbuf *pixbuf = nsImageToPixbuf::ImageToPixbuf(img); @@ -3178,7 +3178,7 @@ + g_object_unref(pixbuf); + } + -+ return NS_OK; ++ return; +} + +void @@ -3455,7 +3455,7 @@ + if (aComputedStyle && + (aComputedStyle->StyleDisplay()->mDisplay == StyleDisplay::None || + aComputedStyle->StyleVisibility()->mVisible == -+ NS_STYLE_VISIBILITY_COLLAPSE)) { ++ StyleVisibility::Collapse)) { + vis = false; + } + @@ -3849,7 +3849,7 @@ +#endif /* __nsMenuObject_h__ */ --- /dev/null +++ b/widget/gtk/nsMenuSeparator.cpp -@@ -0,0 +1,84 @@ +@@ -0,0 +1,83 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -3858,7 +3858,6 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/Assertions.h" -+#include "mozilla/Move.h" +#include "nsAutoPtr.h" +#include "nsCRT.h" +#include "nsGkAtoms.h" @@ -4489,7 +4488,7 @@ +#endif /* __nsNativeMenuDocListener_h__ */ --- /dev/null +++ b/widget/gtk/nsNativeMenuService.cpp -@@ -0,0 +1,505 @@ +@@ -0,0 +1,504 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* vim:expandtab:shiftwidth=4:tabstop=4: + */ @@ -4498,7 +4497,6 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/Assertions.h" -+#include "mozilla/Move.h" +#include "mozilla/Preferences.h" +#include "mozilla/UniquePtr.h" +#include "nsAutoPtr.h" @@ -5084,15 +5082,7 @@ +#endif /* __nsNativeMenuService_h__ */ --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp -@@ -74,6 +74,7 @@ - - #include "mozilla/Assertions.h" - #include "mozilla/Likely.h" -+#include "mozilla/Move.h" - #include "mozilla/Preferences.h" - #include "nsIPrefService.h" - #include "nsIServiceManager.h" -@@ -5486,6 +5487,10 @@ void nsWindow::HideWindowChrome(bool aSh +@@ -5793,6 +5793,10 @@ void nsWindow::HideWindowChrome(bool aSh SetWindowDecoration(aShouldHide ? eBorderStyle_none : mBorderStyle); } @@ -5105,7 +5095,7 @@ nsIRollupListener* rollupListener = GetActiveRollupListener(); --- a/widget/gtk/nsWindow.h +++ b/widget/gtk/nsWindow.h -@@ -40,6 +40,8 @@ +@@ -39,6 +39,8 @@ #include "IMContextWrapper.h" @@ -5114,7 +5104,7 @@ #undef LOG #ifdef MOZ_LOGGING -@@ -175,6 +177,8 @@ class nsWindow final : public nsBaseWidg +@@ -186,6 +188,8 @@ class nsWindow final : public nsBaseWidg nsIScreen* aTargetScreen = nullptr) override; virtual void HideWindowChrome(bool aShouldHide) override; @@ -5123,7 +5113,7 @@ /** * GetLastUserInputTime returns a timestamp for the most recent user input * event. This is intended for pointer grab requests (including drags). -@@ -671,6 +675,8 @@ class nsWindow final : public nsBaseWidg +@@ -712,6 +716,8 @@ class nsWindow final : public nsBaseWidg mozilla::UniquePtr<mozilla::CurrentX11TimeGetter> mCurrentTimeGetter; static CSDSupportLevel sCSDSupportLevel; @@ -5169,7 +5159,7 @@ import sys # Static atom definitions, used to generate nsGkAtomList.h. -@@ -2532,7 +2533,7 @@ STATIC_ATOMS = [ +@@ -2537,7 +2538,7 @@ STATIC_ATOMS = [ InheritingAnonBoxAtom("AnonBox_mozSVGForeignContent", ":-moz-svg-foreign-content"), InheritingAnonBoxAtom("AnonBox_mozSVGText", ":-moz-svg-text"), # END ATOMS @@ -5197,7 +5187,7 @@ if defined('MOZ_X11'): --- a/xpfe/appshell/AppWindow.cpp +++ b/xpfe/appshell/AppWindow.cpp -@@ -69,7 +69,7 @@ +@@ -66,7 +66,7 @@ # include "mozilla/XULStore.h" #endif diff --git a/workaround_dom_indexdb_actorsparent_allignment.patch b/workaround_dom_indexdb_actorsparent_allignment.patch deleted file mode 100644 index 17f274e564b5..000000000000 --- a/workaround_dom_indexdb_actorsparent_allignment.patch +++ /dev/null @@ -1,83 +0,0 @@ - -# HG changeset patch -# User Simon Giesecke <sgiesecke@mozilla.com> -# Date 1576592608 0 -# Node ID 8e71fa07fe004c2e4d04db6b9e77cdfbc7810d6a -# Parent 23dbcfafb3b73d6c1c26c5021199b6fa608150c4 -Bug 1601707 - Workaround for compilers that do not extend the lifetime of temporaries resulting from ?: expressions. r=janv, a=RyanVM - -Differential Revision: https://phabricator.services.mozilla.com/D56873 - -diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp ---- a/dom/indexedDB/ActorsParent.cpp -+++ b/dom/indexedDB/ActorsParent.cpp -@@ -24578,19 +24578,19 @@ nsresult ObjectStoreAddOrPutRequestOp::D - } - } - - // The "|| keyUnset" here is mostly a debugging tool. If a key isn't - // specified we should never have a collision and so it shouldn't matter - // if we allow overwrite or not. By not allowing overwrite we raise - // detectable errors rather than corrupting data. - DatabaseConnection::CachedStatement stmt; -- const auto& optReplaceDirective = (!mOverwrite || keyUnset) -- ? NS_LITERAL_CSTRING("") -- : NS_LITERAL_CSTRING("OR REPLACE "); -+ const auto optReplaceDirective = (!mOverwrite || keyUnset) -+ ? NS_LITERAL_CSTRING("") -+ : NS_LITERAL_CSTRING("OR REPLACE "); - rv = aConnection->GetCachedStatement( - NS_LITERAL_CSTRING("INSERT ") + optReplaceDirective + - NS_LITERAL_CSTRING("INTO object_data " - "(object_store_id, key, file_ids, data) " - "VALUES (:") + - kStmtParamNameObjectStoreId + NS_LITERAL_CSTRING(", :") + - kStmtParamNameKey + NS_LITERAL_CSTRING(", :") + - kStmtParamNameFileIds + NS_LITERAL_CSTRING(", :") + -@@ -26422,19 +26422,19 @@ nsresult Cursor::OpenOp::DoIndexDatabase - MOZ_ASSERT(mCursor->mType == OpenCursorParams::TIndexOpenCursorParams); - MOZ_ASSERT(mCursor->mObjectStoreId); - MOZ_ASSERT(mCursor->mIndexId); - - AUTO_PROFILER_LABEL("Cursor::OpenOp::DoIndexDatabaseWork", DOM); - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& indexTable = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); -+ const auto indexTable = mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data"); - - // The result of MakeColumnPairSelectionList is stored in a local variable, - // since inlining it into the next statement causes a crash on some Mac OS X - // builds (see https://bugzilla.mozilla.org/show_bug.cgi?id=1168606#c110). - const auto columnPairSelectionList = MakeColumnPairSelectionList( - NS_LITERAL_CSTRING("index_table.value"), - NS_LITERAL_CSTRING("index_table.value_locale"), kColumnNameAliasSortKey, - mCursor->IsLocaleAware()); -@@ -26528,19 +26528,19 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab - MOZ_ASSERT(mCursor->mType == OpenCursorParams::TIndexOpenKeyCursorParams); - MOZ_ASSERT(mCursor->mObjectStoreId); - MOZ_ASSERT(mCursor->mIndexId); - - AUTO_PROFILER_LABEL("Cursor::OpenOp::DoIndexKeyDatabaseWork", DOM); - - const bool usingKeyRange = mOptionalKeyRange.isSome(); - -- const auto& table = mCursor->mUniqueIndex -- ? NS_LITERAL_CSTRING("unique_index_data") -- : NS_LITERAL_CSTRING("index_data"); -+ const auto table = mCursor->mUniqueIndex -+ ? NS_LITERAL_CSTRING("unique_index_data") -+ : NS_LITERAL_CSTRING("index_data"); - - // The result of MakeColumnPairSelectionList is stored in a local variable, - // since inlining it into the next statement causes a crash on some Mac OS X - // builds (see https://bugzilla.mozilla.org/show_bug.cgi?id=1168606#c110). - const auto columnPairSelectionList = MakeColumnPairSelectionList( - NS_LITERAL_CSTRING("value"), NS_LITERAL_CSTRING("value_locale"), - kColumnNameAliasSortKey, mCursor->IsLocaleAware()); - const nsCString sortColumnAlias = NS_LITERAL_CSTRING("SELECT ") + - |