summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Bidar2020-05-08 23:56:30 +0200
committerBjörn Bidar2020-05-14 00:36:05 +0200
commit076043130ba141389beeaf5a4b69fad5f0bc852e (patch)
tree5c077c0689e5af77ed73e7b5ea798236a65740f1
parent681d606ccc2217114f7c9360724c8ee64a15e08e (diff)
downloadaur-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--.SRCINFO50
-rw-r--r--0001-Bug-1624128-Update-CK_GCM_PARAMS-uses-for-PKCS11-v3..patch70
-rw-r--r--2000_system_harfbuzz_support.patch30
-rw-r--r--2001_system_graphite2_support.patch46
-rw-r--r--5022efe33088.patch361
-rw-r--r--7002_system_av1_support.patch28
-rw-r--r--Bug_1584000___Migrate_glyph_to_character_association_code.patch380
-rw-r--r--PKGBUILD65
-rw-r--r--build-disable-elfhack.patch12
-rw-r--r--mozconfig2
-rw-r--r--mozilla-1516803.patch16
-rw-r--r--pgo_fix_missing_kdejs.patch6
-rw-r--r--unity-menubar.patch90
-rw-r--r--workaround_dom_indexdb_actorsparent_allignment.patch83
14 files changed, 625 insertions, 614 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 77576a116950..fe24956fbe75 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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"
-
diff --git a/PKGBUILD b/PKGBUILD
index b4e5640087e9..54069fabbdbc 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 ") +
-