Compare commits

..

75 Commits

Author SHA1 Message Date
75047a15db Merge branch 'a8' into a8-plus 2024-04-02 09:52:48 +00:00
fa03567c91 Merge branch 'c8' into a8 2024-04-02 08:51:01 +00:00
b80f5498b1 Merge branch 'a8' into a8-plus 2024-02-27 20:27:52 +03:00
6e3cb40c75 Merge branch 'c8' into a8 2024-02-27 20:26:44 +03:00
33113d8910 Merge branch 'a8' into a8-plus 2024-01-31 10:11:06 +03:00
cf6a17a435 Merge branch 'c8' into a8 2024-01-31 10:09:17 +03:00
e26aaf089b Merge branch 'c8' into a8 2024-01-04 10:30:08 +03:00
c528614c3d Merge branch 'a8' into a8-plus 2024-01-04 10:25:59 +03:00
229fe256c4 Merge branch 'c8' into a8 2024-01-04 10:24:54 +03:00
1ba7f7a2ec Merge branch 'a8' into a8-plus 2023-11-29 12:48:04 +04:00
b22276289f Merge branch 'c8' into a8 2023-11-29 12:46:23 +04:00
af357809f8 Merge branch 'a8' into a8-plus 2023-11-29 12:42:27 +04:00
eee1da594f Merge branch 'c8' into a8 2023-11-29 12:37:18 +04:00
6b931a6c87 Merge branch 'a8' into a8-plus 2023-11-02 11:56:21 +03:00
7381f37a2d Merge branch 'c8' into a8 2023-11-02 11:55:10 +03:00
c675fda867 Merge branch 'a8' into a8-plus 2023-10-05 18:33:59 +03:00
a09d59330f Merge branch 'c8' into a8 2023-10-05 18:31:52 +03:00
eabdullin
61f77b0ad2 Merge branch 'a8' into a8-plus 2023-09-20 12:06:30 +03:00
eabdullin
6401601ae8 Merge branch 'c8' into a8 2023-09-20 12:06:28 +03:00
eabdullin
69aaa67e04 Merge branch 'a8' into a8-plus 2023-09-05 22:36:01 +03:00
eabdullin
09cfae812e Merge branch 'c8' into a8 2023-09-05 22:35:53 +03:00
971b3cb5ea Fix release version 2023-07-14 11:19:01 +03:00
eabdullin
e049a76e53 Merge branch 'a8' into a8-plus 2023-07-14 11:15:48 +03:00
eabdullin
799fdb58dc Merge branch 'c8' into a8 2023-07-14 11:15:29 +03:00
eabdullin
971c3b597a Merge branch 'a8' into a8-plus 2023-05-18 06:16:15 +00:00
eabdullin
391b0a0502 Merge branch 'c8' into a8 2023-05-18 06:16:10 +00:00
eabdullin
8d3adf2aff Merge branch 'a8' into a8-plus 2023-04-17 13:44:50 +00:00
eabdullin
04471a5a94 Merge branch 'c8' into a8 2023-04-17 13:44:46 +00:00
eabdullin
06f2457015 Merge branch 'a8' into a8-plus 2023-03-22 10:19:11 +00:00
eabdullin
0d18902bd6 Merge branch 'c8' into a8 2023-03-22 10:19:07 +00:00
eabdullin
5a979440af Merge branch 'a8' into a8-plus 2023-02-20 11:54:59 +00:00
eabdullin
69bed650cb Merge branch 'c8' into a8 2023-02-20 11:54:55 +00:00
eabdullin
6681b968c3 Merge branch 'a8' into a8-plus 2023-02-07 09:39:58 +00:00
eabdullin
f8fa686d87 Merge branch 'c8' into a8 2023-02-07 09:39:54 +00:00
386ce39a84 Fix changelog 2023-01-25 19:25:56 +03:00
20ec8b1733 Merge branch 'a8' into a8-plus 2023-01-25 19:13:54 +03:00
eabdullin
8dd47b353f Merge branch 'c8' into a8 2023-01-25 15:10:06 +00:00
4eb7684462 Merge branch 'a8' into a8-plus 2022-12-15 22:08:27 +03:00
eabdullin
099aae8130 Merge branch 'c8' into a8 2022-12-15 15:46:24 +00:00
42e1f1baeb Add mising .plus 2022-11-21 19:31:06 +01:00
687aafd2e6 Merge branch 'c8' into a8-plus 2022-11-21 12:28:32 +01:00
eabdullin
e4072b404c Merge branch 'c8' into a8 2022-11-21 11:18:37 +00:00
b1f19d5ea2 Do not apply OpenPGP disable patch 2022-11-20 13:06:40 +01:00
846be71ef1 Add record to changelog 2022-11-01 11:42:39 +03:00
68e3bad7d8 AlmaLinux changes 2022-10-25 18:35:57 +03:00
eabdullin
268e5015ee Merge branch 'a8' into a8-plus 2022-10-25 15:31:20 +00:00
eabdullin
36135359ad Merge branch 'c8' into a8 2022-10-25 15:31:14 +00:00
12263960ff Fix changelog 2022-10-18 21:42:04 +03:00
eabdullin
82e710680f Merge branch 'a8' into a8-plus 2022-10-18 18:40:36 +00:00
eabdullin
ceb7317b05 Merge branch 'c8' into a8 2022-10-18 18:40:29 +00:00
a184e57b70 Add librnp-rnp subpackage 2022-10-03 10:05:47 +00:00
c5aa5e6997 Merge branch 'c8' into a8-plus 2022-10-02 19:42:37 +00:00
11bc7793c3 Merge branch 'c8' into a8 2022-09-26 20:50:03 +00:00
3a2f4b3437 Fix date in changelog 2022-08-24 20:48:59 +03:00
ba65851447 Merge branch 'c8' into a8-plus 2022-08-24 20:46:25 +03:00
eabdullin
89a0fd84b6 Merge branch 'c8' into a8 2022-08-24 17:25:05 +00:00
7cdcb34e3f Merge remote-tracking branch 'origin/c8' into a8-plus 2022-08-02 12:45:34 +00:00
eabdullin
82338a9b08 Merge branch 'c8' into a8 2022-08-01 08:58:38 +00:00
c5066ecf37 Fix changelog 2022-07-01 08:40:46 +03:00
f5ea9bae5c Merge branch 'c8' into a8-plus 2022-07-01 08:37:03 +03:00
eabdullin
175f3993d6 Merge branch 'c8' into a8 2022-06-30 23:24:36 +00:00
f9ee0e2f0c Merge branch 'a8' into a8-plus 2022-06-02 13:12:18 +00:00
790e38ac28 Added changelog line 2022-06-02 11:14:35 +03:00
eabdullin
fec3b15ca2 Merge branch 'c8' into a8 2022-06-02 07:51:17 +00:00
03f1ced1d2 Plus changes 2022-05-26 22:43:46 +00:00
eabdullin
cb78322c6c Merge branch 'c8' into a8 2022-05-26 11:05:42 +00:00
eabdullin
1aa5f0151b Merge branch 'c8' into a8 2022-05-05 13:34:11 +00:00
eabdullin
feac4976db Merge branch 'c8' into a8 2022-04-11 13:32:16 +00:00
eabdullin
387469dbb0 Merge branch 'c8' into a8 2022-03-14 13:44:10 +00:00
eabdullin
a6bd4d84fa Merge branch 'c8' into a8 2022-02-15 10:05:59 +00:00
eabdullin
62b23618ff Merge branch 'c8' into a8 2022-01-12 11:32:10 +00:00
eabdullin
66c23a0f50 Almalinux changes 2021-12-23 13:34:59 +03:00
eabdullin
b3f8354f54 AlmaLinux changes 2021-11-17 16:47:26 +03:00
4d1f9f8163 Merge remote-tracking branch 'origin/c8' into a8 2021-10-21 15:41:10 +00:00
f17f852148 AlmaLinux changes 2021-09-15 12:24:48 +00:00
18 changed files with 906 additions and 578 deletions

8
.gitignore vendored
View File

@ -1,6 +1,6 @@
SOURCES/cbindgen-vendor.tar.xz SOURCES/cbindgen-vendor.tar.xz
SOURCES/nspr-4.35.0-1.el8_1.src.rpm SOURCES/nspr-4.35.0-1.el8_1.src.rpm
SOURCES/nss-3.101.0-7.el8_2.src.rpm SOURCES/nss-3.90.0-2.el8_1.src.rpm
SOURCES/nss-3.101.0-7.el9_2.src.rpm SOURCES/nss-3.90.0-3.el9_0.src.rpm
SOURCES/thunderbird-128.4.0esr.processed-source.tar.xz SOURCES/thunderbird-115.9.0.processed-source.tar.xz
SOURCES/thunderbird-langpacks-128.4.0esr-20241028.tar.xz SOURCES/thunderbird-langpacks-115.9.0-20240318.tar.xz

View File

@ -1,6 +1,6 @@
5012b69e54cbebe3b5e74011dacf3a2097f49921 SOURCES/cbindgen-vendor.tar.xz b963b16f6879c5dbe6e33a3a3da058b494453922 SOURCES/cbindgen-vendor.tar.xz
d744f92e874688cc4b5376477dfdd639a97a6cd4 SOURCES/nspr-4.35.0-1.el8_1.src.rpm d744f92e874688cc4b5376477dfdd639a97a6cd4 SOURCES/nspr-4.35.0-1.el8_1.src.rpm
f466d7213e85773e002c48897524eaf909480046 SOURCES/nss-3.101.0-7.el8_2.src.rpm 39d1004f8948186cdaa33bbb90423f6f994bdf6c SOURCES/nss-3.90.0-2.el8_1.src.rpm
0413d22a58ba1bba99acec9c3c2a4db56a4100c7 SOURCES/nss-3.101.0-7.el9_2.src.rpm df0dd588680f6ade6728a1fd3ff2d71e7a46255d SOURCES/nss-3.90.0-3.el9_0.src.rpm
a084840a65ebe0e3d1884196b4a0dc27115b1320 SOURCES/thunderbird-128.4.0esr.processed-source.tar.xz cb287fa47bd8bdff66aacb2143a3c244250bae88 SOURCES/thunderbird-115.9.0.processed-source.tar.xz
76c4b27c29f49f5b3eb752bf5486394a0469e8d2 SOURCES/thunderbird-langpacks-128.4.0esr-20241028.tar.xz 12f6297fbc364c63712e13e30d289b37840a865f SOURCES/thunderbird-langpacks-115.9.0-20240318.tar.xz

View File

@ -0,0 +1,127 @@
From 263682c9a29395055f3b3afe2d97be1828a6223f Mon Sep 17 00:00:00 2001
From: Jerome Jiang <jianj@google.com>
Date: Thu, 30 Jun 2022 13:48:56 -0400
Subject: [PATCH] Fix bug with smaller width bigger size
Fixed previous patch that clusterfuzz failed on.
Bug: webm:1642
Change-Id: If0e08e72abd2e042efe4dcfac21e4cc51afdfdb9
---
test/resize_test.cc | 11 +++--------
vp9/common/vp9_alloccommon.c | 13 ++++++-------
vp9/encoder/vp9_encoder.c | 27 +++++++++++++++++++++++++--
3 files changed, 34 insertions(+), 17 deletions(-)
diff --git a/test/resize_test.cc b/test/resize_test.cc
index fd1c2a92de6..20ad2229b46 100644
--- a/test/resize_test.cc
+++ b/test/resize_test.cc
@@ -102,11 +102,8 @@ void ScaleForFrameNumber(unsigned int frame, unsigned int initial_w,
if (frame < 30) {
return;
}
- if (frame < 100) {
- *w = initial_w * 7 / 10;
- *h = initial_h * 16 / 10;
- return;
- }
+ *w = initial_w * 7 / 10;
+ *h = initial_h * 16 / 10;
return;
}
if (frame < 10) {
@@ -559,9 +556,7 @@ TEST_P(ResizeRealtimeTest, TestExternalResizeWorks) {
}
}
-// TODO(https://crbug.com/webm/1642): This causes a segfault in
-// init_encode_frame_mb_context().
-TEST_P(ResizeRealtimeTest, DISABLED_TestExternalResizeSmallerWidthBiggerSize) {
+TEST_P(ResizeRealtimeTest, TestExternalResizeSmallerWidthBiggerSize) {
ResizingVideoSource video;
video.flag_codec_ = true;
video.smaller_width_larger_size_ = true;
diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c
index e53883f621d..9e73e40ea09 100644
--- a/vp9/common/vp9_alloccommon.c
+++ b/vp9/common/vp9_alloccommon.c
@@ -135,13 +135,6 @@ int vp9_alloc_context_buffers(VP9_COMMON *cm, int width, int height) {
cm->free_mi(cm);
if (cm->alloc_mi(cm, new_mi_size)) goto fail;
}
-
- if (cm->seg_map_alloc_size < cm->mi_rows * cm->mi_cols) {
- // Create the segmentation map structure and set to 0.
- free_seg_map(cm);
- if (alloc_seg_map(cm, cm->mi_rows * cm->mi_cols)) goto fail;
- }
-
if (cm->above_context_alloc_cols < cm->mi_cols) {
vpx_free(cm->above_context);
cm->above_context = (ENTROPY_CONTEXT *)vpx_calloc(
@@ -156,6 +149,12 @@ int vp9_alloc_context_buffers(VP9_COMMON *cm, int width, int height) {
cm->above_context_alloc_cols = cm->mi_cols;
}
+ if (cm->seg_map_alloc_size < cm->mi_rows * cm->mi_cols) {
+ // Create the segmentation map structure and set to 0.
+ free_seg_map(cm);
+ if (alloc_seg_map(cm, cm->mi_rows * cm->mi_cols)) goto fail;
+ }
+
if (vp9_alloc_loop_filter(cm)) goto fail;
return 0;
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 69a4e3c314f..e3ba294c32f 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2047,6 +2047,17 @@ static void alloc_copy_partition_data(VP9_COMP *cpi) {
}
}
+static void free_copy_partition_data(VP9_COMP *cpi) {
+ vpx_free(cpi->prev_partition);
+ cpi->prev_partition = NULL;
+ vpx_free(cpi->prev_segment_id);
+ cpi->prev_segment_id = NULL;
+ vpx_free(cpi->prev_variance_low);
+ cpi->prev_variance_low = NULL;
+ vpx_free(cpi->copied_frame_cnt);
+ cpi->copied_frame_cnt = NULL;
+}
+
void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
VP9_COMMON *const cm = &cpi->common;
RATE_CONTROL *const rc = &cpi->rc;
@@ -2126,6 +2137,8 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
new_mi_size = cm->mi_stride * calc_mi_size(cm->mi_rows);
if (cm->mi_alloc_size < new_mi_size) {
vp9_free_context_buffers(cm);
+ vp9_free_pc_tree(&cpi->td);
+ vpx_free(cpi->mbmi_ext_base);
alloc_compressor_data(cpi);
realloc_segmentation_maps(cpi);
cpi->initial_width = cpi->initial_height = 0;
@@ -2144,8 +2157,18 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
update_frame_size(cpi);
if (last_w != cpi->oxcf.width || last_h != cpi->oxcf.height) {
- memset(cpi->consec_zero_mv, 0,
- cm->mi_rows * cm->mi_cols * sizeof(*cpi->consec_zero_mv));
+ vpx_free(cpi->consec_zero_mv);
+ CHECK_MEM_ERROR(
+ &cm->error, cpi->consec_zero_mv,
+ vpx_calloc(cm->mi_rows * cm->mi_cols, sizeof(*cpi->consec_zero_mv)));
+
+ vpx_free(cpi->skin_map);
+ CHECK_MEM_ERROR(
+ &cm->error, cpi->skin_map,
+ vpx_calloc(cm->mi_rows * cm->mi_cols, sizeof(cpi->skin_map[0])));
+
+ free_copy_partition_data(cpi);
+ alloc_copy_partition_data(cpi);
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ)
vp9_cyclic_refresh_reset_resize(cpi);
rc->rc_1_frame = 0;

View File

@ -1,12 +1,12 @@
diff -up firefox-128.0/toolkit/moz.configure.disable-elfhack firefox-128.0/toolkit/moz.configure diff -up firefox-115.0.2/toolkit/moz.configure.disable-elfhack firefox-115.0.2/toolkit/moz.configure
--- firefox-128.0/toolkit/moz.configure.disable-elfhack 2024-06-19 17:24:29.964976617 +0200 --- firefox-115.0.2/toolkit/moz.configure.disable-elfhack 2023-07-18 12:21:22.507358334 +0200
+++ firefox-128.0/toolkit/moz.configure 2024-06-19 17:24:53.015843805 +0200 +++ firefox-115.0.2/toolkit/moz.configure 2023-07-18 12:52:55.972727498 +0200
@@ -1553,7 +1553,7 @@ with only_when("--enable-compile-environ @@ -1520,7 +1520,7 @@ with only_when("--enable-compile-environ
@depends(host, target) "Cannot enable elfhack with lld."
def has_elfhack(host, target): " Use --enable-linker=bfd, --enable-linker=gold, or --disable-elf-hack"
return (
- target.kernel == "Linux"
+ False and target.kernel == "Linux"
and host.kernel == "Linux"
and target.cpu in ("arm", "aarch64", "x86", "x86_64")
) )
- return True
+ return False
set_config("USE_ELF_HACK", use_elf_hack)

View File

@ -1,24 +0,0 @@
diff -up thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c
--- thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx 2024-06-24 22:43:40.000000000 +0200
+++ thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c 2024-07-10 11:20:23.200948767 +0200
@@ -887,7 +887,7 @@ static av_cold int av1_decode_init(AVCod
ff_cbs_fragment_reset(&s->current_obu);
}
- s->dovi.logctx = avctx;
+ s->dovi.logctx = (AVContext *) avctx;
s->dovi.dv_profile = 10; // default for AV1
sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF);
if (sd && sd->size > 0)
diff -up thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c
--- thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx 2024-07-10 12:46:57.005539959 +0200
+++ thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c 2024-07-10 12:47:19.067507705 +0200
@@ -289,7 +289,7 @@ static av_cold int libdav1d_init(AVCodec
c->delay = res > 1 ? res : 0;
#endif
- dav1d->dovi.logctx = c;
+ dav1d->dovi.logctx = (AVContext *) c;
dav1d->dovi.dv_profile = 10; // default for AV1
sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF);
if (sd && sd->size > 0)

View File

@ -1,20 +0,0 @@
diff -up firefox-128.0/config/external/moz.build.libaom firefox-128.0/config/external/moz.build
--- firefox-128.0/config/external/moz.build.libaom 2024-07-31 15:32:39.460374047 +0200
+++ firefox-128.0/config/external/moz.build 2024-07-31 15:34:41.646064796 +0200
@@ -39,8 +39,8 @@ if CONFIG["MOZ_VORBIS"]:
if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
external_dirs += ["media/libvpx"]
+external_dirs += ["media/libaom"]
if CONFIG["MOZ_AV1"]:
- external_dirs += ["media/libaom"]
external_dirs += ["media/libdav1d"]
if not CONFIG["MOZ_SYSTEM_PNG"]:
diff -up firefox-128.0/third_party/aom/third_party/fastfeat/README.libaom firefox-128.0/third_party/aom/third_party/fastfeat/README
diff -up firefox-128.0/third_party/aom/third_party/googletest/README.libaom firefox-128.0/third_party/aom/third_party/googletest/README
diff -up firefox-128.0/third_party/aom/third_party/libwebm/README.libaom firefox-128.0/third_party/aom/third_party/libwebm/README
diff -up firefox-128.0/third_party/aom/third_party/libyuv/README.libaom firefox-128.0/third_party/aom/third_party/libyuv/README
diff -up firefox-128.0/third_party/aom/third_party/SVT-AV1/README.libaom firefox-128.0/third_party/aom/third_party/SVT-AV1/README
diff -up firefox-128.0/third_party/aom/third_party/vector/README.libaom firefox-128.0/third_party/aom/third_party/vector/README
diff -up firefox-128.0/third_party/aom/third_party/x86inc/README.libaom firefox-128.0/third_party/aom/third_party/x86inc/README

View File

@ -0,0 +1,12 @@
diff -up thunderbird-115.1.0/comm/third_party/rnp/moz.build.rnp-openssl thunderbird-115.1.0/comm/third_party/rnp/moz.build
--- thunderbird-115.1.0/comm/third_party/rnp/moz.build.rnp-openssl 2023-08-07 16:38:39.272780256 +0200
+++ thunderbird-115.1.0/comm/third_party/rnp/moz.build 2023-08-07 16:38:42.822780087 +0200
@@ -93,7 +93,7 @@ elif CONFIG["MZLA_LIBRNP_BACKEND"] == "o
# Supported, but not with RHEL's OpenSSL, disabled for now;
"ENABLE_BRAINPOOL": False,
})
- rnp_defines["PACKAGE_STRING"] = rnp_defines["PACKAGE_STRING"][:-1] + '-openssl"'
+ #rnp_defines["PACKAGE_STRING"] = rnp_defines["PACKAGE_STRING"][:-1] + '-openssl"'
if CONFIG["MZLA_LIBRNP_OPENSSL_VERSION"][0] == "3":
rnp_defines["CRYPTO_BACKEND_OPENSSL3"] = True

View File

@ -1,8 +1,7 @@
diff -up thunderbird-128.0/comm/mail/extensions/openpgp/content/$.disable-openpgp thunderbird-128.0/comm/mail/extensions/openpgp/content/$ diff -up thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm.disable-openpgp-in-thunderbird thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm
diff -up thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs.disable-openpgp thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs --- thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm.disable-openpgp-in-thunderbird 2022-09-12 14:33:54.995339932 +0200
--- thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs.disable-openpgp 2024-08-13 16:21:15.804595768 +0200 +++ thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm 2022-09-12 14:39:26.784999636 +0200
+++ thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs 2024-08-13 16:20:40.900692240 +0200 @@ -51,6 +51,8 @@ var BondOpenPGP = {
@@ -27,6 +27,8 @@ export var BondOpenPGP = {
_alreadyTriedInit: false, // if already true, we will not try again _alreadyTriedInit: false, // if already true, we will not try again
async init() { async init() {

View File

@ -0,0 +1,375 @@
# erAck: backport of expat CVE-2023-52425 DoS fix
# https://github.com/libexpat/libexpat/commit/34b598c5f594b015c513c73f06e7ced3323edbf1
#
--- thunderbird-115.9.0/parser/expat/lib/expat.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/expat.h 2024-03-13 20:46:45.648505015 +0100
@@ -1045,6 +1045,10 @@ XMLPARSEAPI(const XML_Feature *)
XML_GetFeatureList(void);
+/* Added in Expat 2.6.0. */
+XMLPARSEAPI(XML_Bool)
+XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
+
/* Expat follows the semantic versioning convention.
See http://semver.org.
*/
--- thunderbird-115.9.0/parser/expat/lib/internal.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/internal.h 2024-03-14 00:14:39.334319725 +0100
@@ -80,6 +80,7 @@
# endif
#endif
+#include "expat.h" // so we can use type XML_Parser below
#ifdef __cplusplus
extern "C" {
@@ -90,6 +91,9 @@ void
align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef);
+extern XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c
+extern unsigned int g_parseAttempts; // used for testing only
+
#ifdef __cplusplus
}
#endif
--- thunderbird-115.9.0/parser/expat/lib/xmlparse.c.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/xmlparse.c 2024-03-13 22:55:14.844756009 +0100
@@ -6,6 +6,7 @@
#define _GNU_SOURCE /* syscall prototype */
+#include <stdbool.h>
#include <stddef.h>
#include <string.h> /* memset(), memcpy() */
#include <assert.h>
@@ -89,6 +90,9 @@ typedef char ICHAR;
/* Round up n to be a multiple of sz, where sz is a power of 2. */
#define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1))
+/* Do safe (NULL-aware) pointer arithmetic */
+#define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0)
+
/* Handle the case where memmove() doesn't exist. */
#ifndef HAVE_MEMMOVE
#ifdef HAVE_BCOPY
@@ -98,6 +102,8 @@ typedef char ICHAR;
#endif /* HAVE_BCOPY */
#endif /* HAVE_MEMMOVE */
+#define EXPAT_MIN(a, b) (((a) < (b)) ? (a) : (b))
+
#include "internal.h"
#include "xmltok.h"
#include "xmlrole.h"
@@ -476,6 +482,9 @@ parserInit(XML_Parser parser, const XML_
? 0 \
: ((*((pool)->ptr)++ = c), 1))
+XML_Bool g_reparseDeferralEnabledDefault = XML_TRUE; // write ONLY in runtests.c
+unsigned int g_parseAttempts = 0; // used for testing only
+
struct XML_ParserStruct {
/* The first member must be userData so that the XML_GetUserData
macro works. */
@@ -491,6 +500,9 @@ struct XML_ParserStruct {
const char *m_bufferLim;
XML_Index m_parseEndByteIndex;
const char *m_parseEndPtr;
+ size_t m_partialTokenBytesBefore; /* used in heuristic to avoid O(n^2) */
+ XML_Bool m_reparseDeferralEnabled;
+ int m_lastBufferRequestSize;
XML_Char *m_dataBuf;
XML_Char *m_dataBufEnd;
XML_StartElementHandler m_startElementHandler;
@@ -647,6 +659,9 @@ struct XML_ParserStruct {
#define bufferEnd (parser->m_bufferEnd)
#define parseEndByteIndex (parser->m_parseEndByteIndex)
#define parseEndPtr (parser->m_parseEndPtr)
+#define partialTokenBytesBefore (parser->m_partialTokenBytesBefore)
+#define reparseDeferralEnabled (parser->m_reparseDeferralEnabled)
+#define lastBufferRequestSize (parser->m_lastBufferRequestSize)
#define bufferLim (parser->m_bufferLim)
#define dataBuf (parser->m_dataBuf)
#define dataBufEnd (parser->m_dataBufEnd)
@@ -887,6 +902,47 @@ get_hash_secret_salt(XML_Parser parser)
return parser->m_hash_secret_salt;
}
+static enum XML_Error
+callProcessor(XML_Parser parser, const char *start, const char *end,
+ const char **endPtr) {
+ const size_t have_now = EXPAT_SAFE_PTR_DIFF(end, start);
+
+ if (parser->m_reparseDeferralEnabled
+ && ! parser->m_parsingStatus.finalBuffer) {
+ // Heuristic: don't try to parse a partial token again until the amount of
+ // available data has increased significantly.
+ const size_t had_before = parser->m_partialTokenBytesBefore;
+ // ...but *do* try anyway if we're close to causing a reallocation.
+ size_t available_buffer
+ = EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer);
+#if XML_CONTEXT_BYTES > 0
+ available_buffer -= EXPAT_MIN(available_buffer, XML_CONTEXT_BYTES);
+#endif
+ available_buffer
+ += EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd);
+ // m_lastBufferRequestSize is never assigned a value < 0, so the cast is ok
+ const bool enough
+ = (have_now >= 2 * had_before)
+ || ((size_t)parser->m_lastBufferRequestSize > available_buffer);
+
+ if (! enough) {
+ *endPtr = start; // callers may expect this to be set
+ return XML_ERROR_NONE;
+ }
+ }
+ g_parseAttempts += 1;
+ const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr);
+ if (ret == XML_ERROR_NONE) {
+ // if we consumed nothing, remember what we had on this parse attempt.
+ if (*endPtr == start) {
+ parser->m_partialTokenBytesBefore = have_now;
+ } else {
+ parser->m_partialTokenBytesBefore = 0;
+ }
+ }
+ return ret;
+}
+
static XML_Bool /* only valid for root parser */
startParsing(XML_Parser parser)
{
@@ -1075,6 +1131,9 @@ parserInit(XML_Parser parser, const XML_
bufferEnd = buffer;
parseEndByteIndex = 0;
parseEndPtr = NULL;
+ partialTokenBytesBefore = 0;
+ reparseDeferralEnabled = g_reparseDeferralEnabledDefault;
+ lastBufferRequestSize = 0;
declElementType = NULL;
declAttributeId = NULL;
declEntity = NULL;
@@ -1232,6 +1291,7 @@ XML_ExternalEntityParserCreate(XML_Parse
to worry which hash secrets each table has.
*/
unsigned long oldhash_secret_salt;
+ XML_Bool oldReparseDeferralEnabled;
/* Validate the oldParser parameter before we pull everything out of it */
if (oldParser == NULL)
@@ -1276,6 +1336,7 @@ XML_ExternalEntityParserCreate(XML_Parse
to worry which hash secrets each table has.
*/
oldhash_secret_salt = hash_secret_salt;
+ oldReparseDeferralEnabled = reparseDeferralEnabled;
#ifdef XML_DTD
if (!context)
@@ -1330,6 +1391,7 @@ XML_ExternalEntityParserCreate(XML_Parse
defaultExpandInternalEntities = oldDefaultExpandInternalEntities;
ns_triplets = oldns_triplets;
hash_secret_salt = oldhash_secret_salt;
+ reparseDeferralEnabled = oldReparseDeferralEnabled;
parentParser = oldParser;
#ifdef XML_DTD
paramEntityParsing = oldParamEntityParsing;
@@ -1850,39 +1912,8 @@ XML_Parse(XML_Parser parser, const char
ps_parsing = XML_PARSING;
}
- if (len == 0) {
- ps_finalBuffer = (XML_Bool)isFinal;
- if (!isFinal)
- return XML_STATUS_OK;
- positionPtr = bufferPtr;
- parseEndPtr = bufferEnd;
-
- /* If data are left over from last buffer, and we now know that these
- data are the final chunk of input, then we have to check them again
- to detect errors based on that fact.
- */
- errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr);
-
- if (errorCode == XML_ERROR_NONE) {
- switch (ps_parsing) {
- case XML_SUSPENDED:
- XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position);
- positionPtr = bufferPtr;
- return XML_STATUS_SUSPENDED;
- case XML_INITIALIZED:
- case XML_PARSING:
- ps_parsing = XML_FINISHED;
- /* fall through */
- default:
- return XML_STATUS_OK;
- }
- }
- eventEndPtr = eventPtr;
- processor = errorProcessor;
- return XML_STATUS_ERROR;
- }
#ifndef XML_CONTEXT_BYTES
- else if (bufferPtr == bufferEnd) {
+ if (bufferPtr == bufferEnd) {
const char *end;
int nLeftOver;
enum XML_Status result;
@@ -1899,11 +1930,14 @@ XML_Parse(XML_Parser parser, const char
processor = errorProcessor;
return XML_STATUS_ERROR;
}
+ // though this isn't a buffer request, we assume that `len` is the app's
+ // preferred buffer fill size, and therefore save it here.
+ lastBufferRequestSize = len;
parseEndByteIndex += len;
positionPtr = s;
ps_finalBuffer = (XML_Bool)isFinal;
- errorCode = processor(parser, s, parseEndPtr = s + len, &end);
+ errorCode = callProcessor(parser, s, parseEndPtr = s + len, &end);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -1930,6 +1964,8 @@ XML_Parse(XML_Parser parser, const char
XmlUpdatePosition(encoding, positionPtr, end, &position);
nLeftOver = s + len - end;
if (nLeftOver) {
+#if 0
+// erAck: replace with XML_GetBuffer() below.
if (buffer == NULL || nLeftOver > bufferLim - buffer) {
/* avoid _signed_ integer overflow */
char *temp = NULL;
@@ -1939,6 +1975,28 @@ XML_Parse(XML_Parser parser, const char
? (char *)MALLOC(bytesToAllocate)
: (char *)REALLOC(buffer, bytesToAllocate));
}
+#endif
+#if 1
+// erAck: the original patch context had a call to XML_GetBuffer() instead:
+ // Back up and restore the parsing status to avoid XML_ERROR_SUSPENDED
+ // (and XML_ERROR_FINISHED) from XML_GetBuffer.
+ const enum XML_Parsing originalStatus = ps_parsing;
+ ps_parsing = XML_PARSING;
+ void *const temp = XML_GetBuffer(parser, nLeftOver);
+ ps_parsing = originalStatus;
+#endif
+ // GetBuffer may have overwritten this, but we want to remember what the
+ // app requested, not how many bytes were left over after parsing.
+ lastBufferRequestSize = len;
+#if 1
+ if (temp == NULL) {
+ // NOTE: parser->m_errorCode has already been set by XML_GetBuffer().
+ eventPtr = eventEndPtr = NULL;
+ processor = errorProcessor;
+ return XML_STATUS_ERROR;
+ }
+#endif
+#if 0
if (temp == NULL) {
errorCode = XML_ERROR_NO_MEMORY;
eventPtr = eventEndPtr = NULL;
@@ -1948,6 +2006,7 @@ XML_Parse(XML_Parser parser, const char
buffer = temp;
bufferLim = buffer + bytesToAllocate;
}
+#endif
memcpy(buffer, end, nLeftOver);
}
bufferPtr = buffer;
@@ -1959,15 +2018,14 @@ XML_Parse(XML_Parser parser, const char
return result;
}
#endif /* not defined XML_CONTEXT_BYTES */
- else {
- void *buff = XML_GetBuffer(parser, len);
- if (buff == NULL)
- return XML_STATUS_ERROR;
- else {
- memcpy(buff, s, len);
- return XML_ParseBuffer(parser, len, isFinal);
- }
+ void *buff = XML_GetBuffer(parser, len);
+ if (buff == NULL)
+ return XML_STATUS_ERROR;
+ if (len > 0) {
+ assert(s != NULL); // make sure s==NULL && len!=0 was rejected above
+ memcpy(buff, s, len);
}
+ return XML_ParseBuffer(parser, len, isFinal);
}
enum XML_Status XMLCALL
@@ -2001,7 +2059,7 @@ XML_ParseBuffer(XML_Parser parser, int l
parseEndByteIndex += len;
ps_finalBuffer = (XML_Bool)isFinal;
- errorCode = processor(parser, start, parseEndPtr, &bufferPtr);
+ errorCode = callProcessor(parser, start, parseEndPtr, &bufferPtr);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -2047,7 +2105,11 @@ XML_GetBuffer(XML_Parser parser, int len
default: ;
}
- if (len > bufferLim - bufferEnd) {
+ // whether or not the request succeeds, `len` seems to be the app's preferred
+ // buffer fill size; remember it.
+ lastBufferRequestSize = len;
+ if (len > EXPAT_SAFE_PTR_DIFF(bufferLim, bufferEnd)
+ || buffer == NULL) {
#ifdef XML_CONTEXT_BYTES
int keep;
#endif /* defined XML_CONTEXT_BYTES */
@@ -2063,7 +2125,9 @@ XML_GetBuffer(XML_Parser parser, int len
keep = XML_CONTEXT_BYTES;
neededSize += keep;
#endif /* defined XML_CONTEXT_BYTES */
- if (neededSize <= bufferLim - buffer) {
+ if (buffer && bufferPtr
+ && neededSize
+ <= EXPAT_SAFE_PTR_DIFF(bufferLim, buffer)) {
#ifdef XML_CONTEXT_BYTES
if (keep < bufferPtr - buffer) {
int offset = (int)(bufferPtr - buffer) - keep;
@@ -2072,8 +2136,11 @@ XML_GetBuffer(XML_Parser parser, int len
bufferPtr -= offset;
}
#else
- memmove(buffer, bufferPtr, bufferEnd - bufferPtr);
- bufferEnd = buffer + (bufferEnd - bufferPtr);
+ memmove(buffer, bufferPtr,
+ EXPAT_SAFE_PTR_DIFF(bufferEnd, bufferPtr));
+ bufferEnd
+ = buffer
+ + EXPAT_SAFE_PTR_DIFF(bufferEnd, bufferPtr);
bufferPtr = buffer;
#endif /* not defined XML_CONTEXT_BYTES */
}
@@ -2171,7 +2238,7 @@ XML_ResumeParser(XML_Parser parser)
}
ps_parsing = XML_PARSING;
- errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr);
+ errorCode = callProcessor(parser, bufferPtr, parseEndPtr, &bufferPtr);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -2481,6 +2548,15 @@ MOZ_XML_ProcessingEntityValue(XML_Parser
}
/* END MOZILLA CHANGE */
+XML_Bool XMLCALL
+XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled) {
+ if (parser != NULL && (enabled == XML_TRUE || enabled == XML_FALSE)) {
+ parser->m_reparseDeferralEnabled = enabled;
+ return XML_TRUE;
+ }
+ return XML_FALSE;
+}
+
/* Initially tag->rawName always points into the parse buffer;
for those TAG instances opened while the current parse buffer was
processed, and not yet closed, we need to store tag->rawName in a more

View File

@ -1,10 +1,10 @@
diff -up firefox-128.0/browser/app/profile/firefox.js.addons firefox-128.0/browser/app/profile/firefox.js diff -up firefox-55.0/browser/app/profile/firefox.js.addons firefox-55.0/browser/app/profile/firefox.js
--- firefox-128.0/browser/app/profile/firefox.js.addons 2024-06-13 11:47:04.255428350 +0200 --- firefox-55.0/browser/app/profile/firefox.js.addons 2017-08-02 10:58:30.566363833 +0200
+++ firefox-128.0/browser/app/profile/firefox.js 2024-06-13 11:53:00.442837371 +0200 +++ firefox-55.0/browser/app/profile/firefox.js 2017-08-02 10:59:15.377216959 +0200
@@ -56,7 +56,8 @@ pref("extensions.systemAddon.update.enab @@ -65,7 +65,8 @@ pref("extensions.systemAddon.update.url"
// Disable add-ons that are not installed by the user in all scopes by default. // Disable add-ons that are not installed by the user in all scopes by default.
// See the SCOPE constants in AddonManager.sys.mjs for values to use here. // See the SCOPE constants in AddonManager.jsm for values to use here.
-pref("extensions.autoDisableScopes", 15); -pref("extensions.autoDisableScopes", 15);
+pref("extensions.autoDisableScopes", 0); +pref("extensions.autoDisableScopes", 0);
+pref("extensions.showMismatchUI", false); +pref("extensions.showMismatchUI", false);

View File

@ -1,20 +1,23 @@
diff -up firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/DrawTargetSkia.cpp # HG changeset patch
--- firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2024-06-12 15:02:55.000000000 +0200 # Parent 9fcbd287056a40084b1e679f787bf683b291f323
+++ firefox-128.0/gfx/2d/DrawTargetSkia.cpp 2024-06-13 11:36:54.550728034 +0200 Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
@@ -156,8 +156,8 @@ static IntRect CalculateSurfaceBounds(co
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co
} }
static const int kARGBAlphaOffset = static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; - SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
-
+ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == + 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 ==
+ // SurfaceFormat::B8G8R8A8 ? 3 : 0; + // SurfaceFormat::B8G8R8A8 ? 3 : 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) { const int32_t aStride, SurfaceFormat aFormat) {
if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
diff -up firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/Types.h --- a/gfx/2d/Types.h
--- firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2024-06-12 15:02:56.000000000 +0200 +++ b/gfx/2d/Types.h
+++ firefox-128.0/gfx/2d/Types.h 2024-06-13 11:36:54.551728036 +0200
@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t { @@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t {
// This represents the unknown format. // This represents the unknown format.
UNKNOWN, // TODO: Replace uses with Maybe<SurfaceFormat>. UNKNOWN, // TODO: Replace uses with Maybe<SurfaceFormat>.
@ -37,10 +40,10 @@ diff -up firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-128.0/gfx
// The following values are OS and endian-independent synonyms. // The following values are OS and endian-independent synonyms.
// //
diff -up firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc
--- firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 2024-06-12 15:02:57.000000000 +0200 --- a/gfx/skia/skia/modules/skcms/skcms.cc
+++ firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc 2024-06-13 11:38:45.377835856 +0200 +++ b/gfx/skia/skia/modules/skcms/skcms.cc
@@ -31,6 +31,8 @@ @@ -30,6 +30,8 @@
#include <avx512fintrin.h> #include <avx512fintrin.h>
#include <avx512dqintrin.h> #include <avx512dqintrin.h>
#endif #endif
@ -48,7 +51,7 @@ diff -up firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-p
+ #define SKCMS_PORTABLE + #define SKCMS_PORTABLE
#endif #endif
using namespace skcms_private; static bool runtime_cpu_detection = true;
@@ -324,20 +326,28 @@ enum { @@ -324,20 +326,28 @@ enum {
static uint16_t read_big_u16(const uint8_t* ptr) { static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be; uint16_t be;

View File

@ -1,7 +1,7 @@
diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/mp4/MP4Demuxer.cpp diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 2024-07-04 18:20:27.000000000 +0200 --- firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2023-06-06 23:14:43.000000000 +0200
+++ firefox-128.0/dom/media/mp4/MP4Demuxer.cpp 2024-07-16 13:49:10.475630426 +0200 +++ firefox-115.0/dom/media/mp4/MP4Demuxer.cpp 2023-06-08 08:15:48.214109403 +0200
@@ -33,6 +33,8 @@ mozilla::LogModule* GetDemuxerLog() { re @@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re
DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \ DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \
__func__, ##__VA_ARGS__) __func__, ##__VA_ARGS__)
@ -10,7 +10,7 @@ diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-1
namespace mozilla { namespace mozilla {
using TimeUnit = media::TimeUnit; using TimeUnit = media::TimeUnit;
@@ -419,6 +421,12 @@ already_AddRefed<MediaRawData> MP4TrackD @@ -404,6 +406,12 @@ already_AddRefed<MediaRawData> MP4TrackD
[[fallthrough]]; [[fallthrough]];
case H264::FrameType::OTHER: { case H264::FrameType::OTHER: {
bool keyframe = type == H264::FrameType::I_FRAME; bool keyframe = type == H264::FrameType::I_FRAME;
@ -23,10 +23,10 @@ diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-1
if (sample->mKeyframe != keyframe) { if (sample->mKeyframe != keyframe) {
NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe " NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe "
"@ pts:%" PRId64 " dur:%" PRId64 "@ pts:%" PRId64 " dur:%" PRId64
diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.cpp diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/dom/media/platforms/PDMFactory.cpp
--- firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 --- firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 2023-06-06 23:14:44.000000000 +0200
+++ firefox-128.0/dom/media/platforms/PDMFactory.cpp 2024-07-16 14:16:04.635809901 +0200 +++ firefox-115.0/dom/media/platforms/PDMFactory.cpp 2023-06-08 08:09:33.145289602 +0200
@@ -62,6 +62,8 @@ @@ -67,6 +67,8 @@
#include <functional> #include <functional>
@ -35,28 +35,31 @@ diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 fir
using DecodeSupport = mozilla::media::DecodeSupport; using DecodeSupport = mozilla::media::DecodeSupport;
using DecodeSupportSet = mozilla::media::DecodeSupportSet; using DecodeSupportSet = mozilla::media::DecodeSupportSet;
using MediaCodec = mozilla::media::MediaCodec; using MediaCodec = mozilla::media::MediaCodec;
@@ -543,7 +545,7 @@ void PDMFactory::CreateRddPDMs() { @@ -562,7 +564,7 @@ void PDMFactory::CreateRddPDMs() {
#ifdef MOZ_FFMPEG #ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() && if (StaticPrefs::media_ffmpeg_enabled() &&
StaticPrefs::media_rdd_ffmpeg_enabled() && StaticPrefs::media_rdd_ffmpeg_enabled() &&
- !StartupPDM(FFmpegRuntimeLinker::CreateDecoder())) { - !CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
+ !(mFFmpegUsed = StartupPDM(FFmpegRuntimeLinker::CreateDecoder()))) { + !(mFFmpegUsed = CreateAndStartupPDM<FFmpegRuntimeLinker>())) {
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus( mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
FFmpegRuntimeLinker::LinkStatusCode()); FFmpegRuntimeLinker::LinkStatusCode());
} }
@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() { @@ -738,9 +740,10 @@ void PDMFactory::CreateDefaultPDMs() {
StartupPDM(AgnosticDecoderModule::Create(),
StaticPrefs::media_prefer_non_ffvpx()); CreateAndStartupPDM<AgnosticDecoderModule>();
- if (StaticPrefs::media_gmp_decoder_enabled() && - if (StaticPrefs::media_gmp_decoder_enabled() &&
+ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed && + if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed &&
!StartupPDM(GMPDecoderModule::Create(), !StartupPDM(GMPDecoderModule::Create(),
StaticPrefs::media_gmp_decoder_preferred())) { StaticPrefs::media_gmp_decoder_preferred())) {
+ gUseKeyframeFromContainer = true;
mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup; mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup;
diff -up firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.h }
--- firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 }
+++ firefox-128.0/dom/media/platforms/PDMFactory.h 2024-07-16 13:49:10.476630421 +0200 diff -up firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 firefox-115.0/dom/media/platforms/PDMFactory.h
@@ -98,6 +98,7 @@ class PDMFactory final { --- firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 2023-06-06 23:14:42.000000000 +0200
+++ firefox-115.0/dom/media/platforms/PDMFactory.h 2023-06-08 08:09:33.145289602 +0200
@@ -103,6 +103,7 @@ class PDMFactory final {
RefPtr<PlatformDecoderModule> mNullPDM; RefPtr<PlatformDecoderModule> mNullPDM;
DecoderDoctorDiagnostics::FlagsSet mFailureFlags; DecoderDoctorDiagnostics::FlagsSet mFailureFlags;

View File

@ -1,7 +1,9 @@
diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/allcodecs.c diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcodecs.c
--- firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 2024-06-12 15:03:01.000000000 +0200 --- a/media/ffvpx/libavcodec/allcodecs.c
+++ firefox-128.0/media/ffvpx/libavcodec/allcodecs.c 2024-06-13 11:44:10.637215674 +0200 +++ b/media/ffvpx/libavcodec/allcodecs.c
@@ -764,8 +764,11 @@ extern const FFCodec ff_libaribb24_decod @@ -755,12 +755,15 @@
extern FFCodec ff_libaom_av1_encoder;
extern const FFCodec ff_libaribb24_decoder;
extern const FFCodec ff_libcelt_decoder; extern const FFCodec ff_libcelt_decoder;
extern const FFCodec ff_libcodec2_encoder; extern const FFCodec ff_libcodec2_encoder;
extern const FFCodec ff_libcodec2_decoder; extern const FFCodec ff_libcodec2_decoder;
@ -13,7 +15,11 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-dis
extern const FFCodec ff_libfdk_aac_encoder; extern const FFCodec ff_libfdk_aac_encoder;
extern const FFCodec ff_libfdk_aac_decoder; extern const FFCodec ff_libfdk_aac_decoder;
extern const FFCodec ff_libgsm_encoder; extern const FFCodec ff_libgsm_encoder;
@@ -793,7 +796,6 @@ extern const FFCodec ff_libspeex_decoder extern const FFCodec ff_libgsm_decoder;
extern const FFCodec ff_libgsm_ms_encoder;
@@ -783,11 +786,10 @@
extern const FFCodec ff_libspeex_encoder;
extern const FFCodec ff_libspeex_decoder;
extern const FFCodec ff_libsvtav1_encoder; extern const FFCodec ff_libsvtav1_encoder;
extern const FFCodec ff_libtheora_encoder; extern const FFCodec ff_libtheora_encoder;
extern const FFCodec ff_libtwolame_encoder; extern const FFCodec ff_libtwolame_encoder;
@ -21,10 +27,14 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-dis
extern const FFCodec ff_libvo_amrwbenc_encoder; extern const FFCodec ff_libvo_amrwbenc_encoder;
extern const FFCodec ff_libvorbis_encoder; extern const FFCodec ff_libvorbis_encoder;
extern const FFCodec ff_libvorbis_decoder; extern const FFCodec ff_libvorbis_decoder;
diff -up firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/codec_list.c extern const FFCodec ff_libvpx_vp8_encoder;
--- firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.668924117 +0200 extern const FFCodec ff_libvpx_vp8_decoder;
+++ firefox-128.0/media/ffvpx/libavcodec/codec_list.c 2024-06-13 11:44:41.411253372 +0200 diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_list.c
@@ -11,12 +11,14 @@ static const FFCodec * const codec_list[ --- a/media/ffvpx/libavcodec/codec_list.c
+++ b/media/ffvpx/libavcodec/codec_list.c
@@ -9,12 +9,14 @@
&ff_flac_decoder,
#endif
#if CONFIG_MP3_DECODER #if CONFIG_MP3_DECODER
&ff_mp3_decoder, &ff_mp3_decoder,
#endif #endif
@ -36,21 +46,25 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-di
&ff_av1_decoder, &ff_av1_decoder,
#endif #endif
+#endif +#endif
#if CONFIG_LIBVORBIS_DECODER NULL };
&ff_libvorbis_decoder, diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
#endif --- a/media/ffvpx/libavcodec/moz.build
diff -up firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/moz.build +++ b/media/ffvpx/libavcodec/moz.build
--- firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.669924118 +0200 @@ -84,11 +84,10 @@
+++ firefox-128.0/media/ffvpx/libavcodec/moz.build 2024-06-13 11:45:22.867304151 +0200 'cbs.c',
@@ -94,7 +94,6 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'cbs_av1.c',
'golomb.c',
'h264pred.c',
'imgconvert.c', 'imgconvert.c',
'libaom.c',
'libaomenc.c',
- 'libdav1d.c', - 'libdav1d.c',
'libvpxdec.c',
'libvpxenc.c',
'mathtables.c', 'mathtables.c',
@@ -119,10 +118,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'qsv_api.c',
'raw.c',
'videodsp.c',
'vp8.c',
@@ -107,14 +106,19 @@
'vp9mvs.c',
'vp9prob.c',
'vp9recon.c', 'vp9recon.c',
'vpx_rac.c', 'vpx_rac.c',
] ]
@ -67,7 +81,9 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disab
+ 'libdav1d.c', + 'libdav1d.c',
+ ] + ]
+ +
+ if CONFIG['MOZ_WAYLAND']:
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
LOCAL_INCLUDES += ['/media/mozva'] LOCAL_INCLUDES += ['/media/mozva']
SOURCES += [ SOURCES += [
'vaapi_av1.c',
'vaapi_decode.c',

View File

@ -12,13 +12,6 @@ rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cur
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html
rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css
# A forbidden code point was found in:
rm -vf ./process-tarball-dir/*/mobile/android/android-components/components/browser/errorpages/src/main/res/values-ar/strings.xml
rm -vf ./process-tarball-dir/*/mobile/android/android-components/components/feature/addons/src/main/res/values-ur/strings.xml
rm -vf ./process-tarball-dir/*/third_party/webkit/PerformanceTests/Speedometer3/resources/editors/dist/assets/codemirror-521de7ab.js
rm -vf ./process-tarball-dir/*/third_party/python/pip/pip-24.0.dist-info/AUTHORS.txt
rm -vf ./process-tarball-dir/*/comm/third_party/rust/idna/tests/IdnaTestV2.txt
rm -vr ./process-tarball-dir/*/comm/third_party/rust/wast/tests/parse-fail/confusing*
processed_tarball=${1/source/processed-source} processed_tarball=${1/source/processed-source}

File diff suppressed because one or more lines are too long

View File

@ -3,6 +3,7 @@ ac_add_options --enable-application=comm/mail
ac_add_options --allow-addon-sideload ac_add_options --allow-addon-sideload
ac_add_options --disable-bootstrap ac_add_options --disable-bootstrap
ac_add_options --disable-crashreporter ac_add_options --disable-crashreporter
#ac_add_options --disable-elf-hack
ac_add_options --disable-jemalloc ac_add_options --disable-jemalloc
ac_add_options --disable-strip ac_add_options --disable-strip
ac_add_options --disable-tests ac_add_options --disable-tests
@ -12,6 +13,7 @@ ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
ac_add_options --enable-js-shell ac_add_options --enable-js-shell
ac_add_options --enable-necko-wifi ac_add_options --enable-necko-wifi
ac_add_options --enable-official-branding ac_add_options --enable-official-branding
ac_add_options --enable-official-branding
ac_add_options --enable-pulseaudio ac_add_options --enable-pulseaudio
ac_add_options --enable-release ac_add_options --enable-release
ac_add_options --enable-system-ffi ac_add_options --enable-system-ffi
@ -32,9 +34,6 @@ ac_add_options --with-unsigned-addon-scopes=app,system
export BUILD_OFFICIAL=1 export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1 export MOZILLA_OFFICIAL=1
export MOZ_UPDATE_CHANNEL=release export MOZ_UPDATE_CHANNEL=release
mk_add_options MOZ_TELEMETRY_REPORTING=
mk_add_options MOZ_NORMANDY=
mk_add_options MOZ_SERVICES_HEALTHREPORT=
mk_add_options BUILD_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_CO_PROJECT=mail mk_add_options MOZ_CO_PROJECT=mail
mk_add_options MOZILLA_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1

View File

@ -2,7 +2,7 @@ pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false); pref("app.update.autoInstallEnabled", false);
/* Allow users to set custom colors*/ /* Allow users to set custom colors*/
/* pref("browser.display.use_system_colors", true);*/ /* pref("browser.display.use_system_colors", true);*/
pref("general.useragent.vendor", "Red Hat"); pref("general.useragent.vendor", "AlmaLinux");
pref("general.useragent.vendorSub", "THUNDERBIRD_RPM_VR"); pref("general.useragent.vendorSub", "THUNDERBIRD_RPM_VR");
pref("intl.locale.matchOS", true); pref("intl.locale.matchOS", true);
pref("mail.shell.checkDefaultClient", false); pref("mail.shell.checkDefaultClient", false);
@ -34,5 +34,3 @@ pref("intl.locale.requested", "");
pref("datareporting.healthreport.uploadEnabled", false); pref("datareporting.healthreport.uploadEnabled", false);
pref("datareporting.policy.dataSubmissionEnabled", false); pref("datareporting.policy.dataSubmissionEnabled", false);
pref("toolkit.telemetry.archive.enabled", false); pref("toolkit.telemetry.archive.enabled", false);
/* ECH is not supported in the system nss */
pref("security.tls.ech.grease_probability", 0);

File diff suppressed because it is too large Load Diff