Compare commits
9 Commits
changed/a8
...
c8
Author | SHA1 | Date | |
---|---|---|---|
81091f5b96 | |||
2861f51e1f | |||
a089d57a5d | |||
a3a4b282e2 | |||
022ec15e0a | |||
0d2f860108 | |||
7ac38d7e1f | |||
9103d991d1 | |||
1bc36ebcbc |
@ -1,7 +1,7 @@
|
|||||||
b963b16f6879c5dbe6e33a3a3da058b494453922 SOURCES/cbindgen-vendor.tar.xz
|
5012b69e54cbebe3b5e74011dacf3a2097f49921 SOURCES/cbindgen-vendor.tar.xz
|
||||||
b28310d67624787206243d4c9eff8496ecb4c9df SOURCES/firefox-115.9.1esr.processed-source.tar.xz
|
459de5a85a512c7dcc356937af6ab02ab916cfd2 SOURCES/firefox-128.4.0esr.processed-source.tar.xz
|
||||||
a69c4cf421b2b0e84142b7a5e47ae382ba9e975b SOURCES/firefox-langpacks-115.9.1esr-20240322.tar.xz
|
48712bb66e1ad7d2d969a230bbe5b6476a3e6fea SOURCES/firefox-langpacks-128.4.0esr-20241022.tar.xz
|
||||||
2d8a6b2b30d5496735f49ffe8c8a7ede3a78a5ca SOURCES/mochitest-python.tar.gz
|
2d8a6b2b30d5496735f49ffe8c8a7ede3a78a5ca SOURCES/mochitest-python.tar.gz
|
||||||
d744f92e874688cc4b5376477dfdd639a97a6cd4 SOURCES/nspr-4.35.0-1.el8_1.src.rpm
|
d744f92e874688cc4b5376477dfdd639a97a6cd4 SOURCES/nspr-4.35.0-1.el8_1.src.rpm
|
||||||
9555ba179bc1398fbacfa2896e45f3808d94ecd2 SOURCES/nss-3.90.0-3.el8_1.src.rpm
|
f466d7213e85773e002c48897524eaf909480046 SOURCES/nss-3.101.0-7.el8_2.src.rpm
|
||||||
df0dd588680f6ade6728a1fd3ff2d71e7a46255d SOURCES/nss-3.90.0-3.el9_0.src.rpm
|
0413d22a58ba1bba99acec9c3c2a4db56a4100c7 SOURCES/nss-3.101.0-7.el9_2.src.rpm
|
||||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,7 +1,7 @@
|
|||||||
SOURCES/cbindgen-vendor.tar.xz
|
SOURCES/cbindgen-vendor.tar.xz
|
||||||
SOURCES/firefox-115.9.1esr.processed-source.tar.xz
|
SOURCES/firefox-128.4.0esr.processed-source.tar.xz
|
||||||
SOURCES/firefox-langpacks-115.9.1esr-20240322.tar.xz
|
SOURCES/firefox-langpacks-128.4.0esr-20241022.tar.xz
|
||||||
SOURCES/mochitest-python.tar.gz
|
SOURCES/mochitest-python.tar.gz
|
||||||
SOURCES/nspr-4.35.0-1.el8_1.src.rpm
|
SOURCES/nspr-4.35.0-1.el8_1.src.rpm
|
||||||
SOURCES/nss-3.90.0-3.el8_1.src.rpm
|
SOURCES/nss-3.101.0-7.el8_2.src.rpm
|
||||||
SOURCES/nss-3.90.0-3.el9_0.src.rpm
|
SOURCES/nss-3.101.0-7.el9_2.src.rpm
|
||||||
|
@ -1,127 +0,0 @@
|
|||||||
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;
|
|
50
SOURCES/D224587.1728128070.diff
Normal file
50
SOURCES/D224587.1728128070.diff
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
diff --git a/dom/media/webrtc/transport/nricectx.cpp b/dom/media/webrtc/transport/nricectx.cpp
|
||||||
|
--- a/dom/media/webrtc/transport/nricectx.cpp
|
||||||
|
+++ b/dom/media/webrtc/transport/nricectx.cpp
|
||||||
|
@@ -124,23 +124,30 @@
|
||||||
|
static int nr_crypto_nss_hmac(UCHAR* key, size_t keyl, UCHAR* buf, size_t bufl,
|
||||||
|
UCHAR* result) {
|
||||||
|
CK_MECHANISM_TYPE mech = CKM_SHA_1_HMAC;
|
||||||
|
PK11SlotInfo* slot = nullptr;
|
||||||
|
MOZ_ASSERT(keyl > 0);
|
||||||
|
- SECItem keyi = {siBuffer, key, static_cast<unsigned int>(keyl)};
|
||||||
|
+ CK_KEY_DERIVATION_STRING_DATA idkey = {key, keyl};
|
||||||
|
+ SECItem keyi = {siBuffer, (unsigned char*)&idkey, sizeof(idkey)};
|
||||||
|
+ PK11SymKey* tmpKey = nullptr;
|
||||||
|
PK11SymKey* skey = nullptr;
|
||||||
|
PK11Context* hmac_ctx = nullptr;
|
||||||
|
SECStatus status;
|
||||||
|
unsigned int hmac_len;
|
||||||
|
SECItem param = {siBuffer, nullptr, 0};
|
||||||
|
int err = R_INTERNAL;
|
||||||
|
|
||||||
|
slot = PK11_GetInternalKeySlot();
|
||||||
|
if (!slot) goto abort;
|
||||||
|
|
||||||
|
- skey = PK11_ImportSymKey(slot, mech, PK11_OriginUnwrap, CKA_SIGN, &keyi,
|
||||||
|
- nullptr);
|
||||||
|
+ // HMAC is used for hash calculation only so use derive instead of import
|
||||||
|
+ // to be FIPS compliant.
|
||||||
|
+ tmpKey = PK11_KeyGen(slot, mech, NULL, keyl, nullptr);
|
||||||
|
+ if (!tmpKey) goto abort;
|
||||||
|
+
|
||||||
|
+ skey = PK11_Derive(tmpKey, CKM_CONCATENATE_DATA_AND_BASE, &keyi, mech,
|
||||||
|
+ CKA_SIGN, keyl);
|
||||||
|
if (!skey) goto abort;
|
||||||
|
|
||||||
|
hmac_ctx = PK11_CreateContextBySymKey(mech, CKA_SIGN, skey, ¶m);
|
||||||
|
if (!hmac_ctx) goto abort;
|
||||||
|
|
||||||
|
@@ -157,10 +164,11 @@
|
||||||
|
|
||||||
|
err = 0;
|
||||||
|
|
||||||
|
abort:
|
||||||
|
if (hmac_ctx) PK11_DestroyContext(hmac_ctx, PR_TRUE);
|
||||||
|
+ if (tmpKey) PK11_FreeSymKey(tmpKey);
|
||||||
|
if (skey) PK11_FreeSymKey(skey);
|
||||||
|
if (slot) PK11_FreeSlot(slot);
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
224
SOURCES/D224588.1728128098.diff
Normal file
224
SOURCES/D224588.1728128098.diff
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
diff --git a/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c b/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c
|
||||||
|
--- a/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c
|
||||||
|
+++ b/third_party/libsrtp/src/crypto/cipher/aes_gcm_nss.c
|
||||||
|
@@ -54,10 +54,11 @@
|
||||||
|
#include "crypto_types.h"
|
||||||
|
#include "cipher_types.h"
|
||||||
|
#include "cipher_test_cases.h"
|
||||||
|
#include <secerr.h>
|
||||||
|
#include <nspr.h>
|
||||||
|
+#include "nss_fips.h"
|
||||||
|
|
||||||
|
srtp_debug_module_t srtp_mod_aes_gcm = {
|
||||||
|
0, /* debugging is off by default */
|
||||||
|
"aes gcm nss" /* printable module name */
|
||||||
|
};
|
||||||
|
@@ -211,12 +212,17 @@
|
||||||
|
if (!slot) {
|
||||||
|
return (srtp_err_status_cipher_fail);
|
||||||
|
}
|
||||||
|
|
||||||
|
SECItem key_item = { siBuffer, (unsigned char *)key, c->key_size };
|
||||||
|
- c->key = PK11_ImportSymKey(slot, CKM_AES_GCM, PK11_OriginUnwrap,
|
||||||
|
- CKA_ENCRYPT, &key_item, NULL);
|
||||||
|
+ if (PK11_IsFIPS()) {
|
||||||
|
+ c->key = PK11_ImportSymKey_FIPS(slot, CKM_AES_GCM, PK11_OriginUnwrap,
|
||||||
|
+ CKA_ENCRYPT, &key_item, NULL);
|
||||||
|
+ } else {
|
||||||
|
+ c->key = PK11_ImportSymKey(slot, CKM_AES_GCM, PK11_OriginUnwrap,
|
||||||
|
+ CKA_ENCRYPT, &key_item, NULL);
|
||||||
|
+ }
|
||||||
|
PK11_FreeSlot(slot);
|
||||||
|
|
||||||
|
if (!c->key) {
|
||||||
|
return (srtp_err_status_cipher_fail);
|
||||||
|
}
|
||||||
|
diff --git a/third_party/libsrtp/src/crypto/cipher/aes_icm_nss.c b/third_party/libsrtp/src/crypto/cipher/aes_icm_nss.c
|
||||||
|
--- a/third_party/libsrtp/src/crypto/cipher/aes_icm_nss.c
|
||||||
|
+++ b/third_party/libsrtp/src/crypto/cipher/aes_icm_nss.c
|
||||||
|
@@ -51,10 +51,11 @@
|
||||||
|
#include "crypto_types.h"
|
||||||
|
#include "err.h" /* for srtp_debug */
|
||||||
|
#include "alloc.h"
|
||||||
|
#include "cipher_types.h"
|
||||||
|
#include "cipher_test_cases.h"
|
||||||
|
+#include "nss_fips.h"
|
||||||
|
|
||||||
|
srtp_debug_module_t srtp_mod_aes_icm = {
|
||||||
|
0, /* debugging is off by default */
|
||||||
|
"aes icm nss" /* printable module name */
|
||||||
|
};
|
||||||
|
@@ -252,12 +253,17 @@
|
||||||
|
if (!slot) {
|
||||||
|
return srtp_err_status_bad_param;
|
||||||
|
}
|
||||||
|
|
||||||
|
SECItem keyItem = { siBuffer, (unsigned char *)key, c->key_size };
|
||||||
|
- c->key = PK11_ImportSymKey(slot, CKM_AES_CTR, PK11_OriginUnwrap,
|
||||||
|
- CKA_ENCRYPT, &keyItem, NULL);
|
||||||
|
+ if (PK11_IsFIPS()) {
|
||||||
|
+ c->key = PK11_ImportSymKey_FIPS(slot, CKM_AES_CTR, PK11_OriginUnwrap,
|
||||||
|
+ CKA_ENCRYPT, &keyItem, NULL);
|
||||||
|
+ } else {
|
||||||
|
+ c->key = PK11_ImportSymKey(slot, CKM_AES_CTR, PK11_OriginUnwrap,
|
||||||
|
+ CKA_ENCRYPT, &keyItem, NULL);
|
||||||
|
+ }
|
||||||
|
PK11_FreeSlot(slot);
|
||||||
|
|
||||||
|
if (!c->key) {
|
||||||
|
return srtp_err_status_cipher_fail;
|
||||||
|
}
|
||||||
|
diff --git a/third_party/libsrtp/src/crypto/include/nss_fips.h b/third_party/libsrtp/src/crypto/include/nss_fips.h
|
||||||
|
new file mode 100644
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/third_party/libsrtp/src/crypto/include/nss_fips.h
|
||||||
|
@@ -0,0 +1,148 @@
|
||||||
|
+/*
|
||||||
|
+ * Copyright (c) 2024, Red Hat, Inc.
|
||||||
|
+ * All rights reserved.
|
||||||
|
+ *
|
||||||
|
+ * Redistribution and use in source and binary forms, with or without
|
||||||
|
+ * modification, are permitted provided that the following conditions
|
||||||
|
+ * are met:
|
||||||
|
+ *
|
||||||
|
+ * Redistributions of source code must retain the above copyright
|
||||||
|
+ * notice, this list of conditions and the following disclaimer.
|
||||||
|
+ *
|
||||||
|
+ * Redistributions in binary form must reproduce the above
|
||||||
|
+ * copyright notice, this list of conditions and the following
|
||||||
|
+ * disclaimer in the documentation and/or other materials provided
|
||||||
|
+ * with the distribution.
|
||||||
|
+ *
|
||||||
|
+ * Neither the name of the Red Hat, Inc. nor the names of its
|
||||||
|
+ * contributors may be used to endorse or promote products derived
|
||||||
|
+ * from this software without specific prior written permission.
|
||||||
|
+ *
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
+ * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ Adapted from Red Hat Ceph patch by
|
||||||
|
+ Radoslaw Zarzynski <rzarzyns@redhat.com>
|
||||||
|
+
|
||||||
|
+ PK11_ImportSymKey() is a part of NSS API that becomes unavailable
|
||||||
|
+ in the FIPS mode. Apparently NSS targets stricter restrictions
|
||||||
|
+ than those coming from Level 1 of FIPS 140-2. In the consequence,
|
||||||
|
+ loading a symmetric key from plain keyring or key db fails.
|
||||||
|
+
|
||||||
|
+ A raw crypto key is in-memory wrapped with fresh, random wrapping
|
||||||
|
+ key just before being imported via PK11_UnwrapSymKey(). Of course,
|
||||||
|
+ this effectively lowers to FIPS level 1. Still, this would be no
|
||||||
|
+ different from what OpenSSL gives in the matter.
|
||||||
|
+*/
|
||||||
|
+
|
||||||
|
+#ifndef NSS_FIPS_H
|
||||||
|
+#define NSS_FIPS_H
|
||||||
|
+
|
||||||
|
+static PK11SymKey *PK11_ImportSymKey_FIPS(
|
||||||
|
+ PK11SlotInfo * const slot,
|
||||||
|
+ const CK_MECHANISM_TYPE type,
|
||||||
|
+ const PK11Origin origin,
|
||||||
|
+ const CK_ATTRIBUTE_TYPE operation,
|
||||||
|
+ SECItem * const raw_key,
|
||||||
|
+ void * const wincx)
|
||||||
|
+{
|
||||||
|
+ PK11SymKey* wrapping_key = NULL;
|
||||||
|
+ PK11Context *wrap_key_crypt_context = NULL;
|
||||||
|
+ SECItem *raw_key_aligned = NULL;
|
||||||
|
+ CK_MECHANISM_TYPE wrap_mechanism = 0;
|
||||||
|
+
|
||||||
|
+ struct {
|
||||||
|
+ unsigned char data[256];
|
||||||
|
+ int len;
|
||||||
|
+ } wrapped_key;
|
||||||
|
+
|
||||||
|
+ #define SCOPE_DATA_FREE() \
|
||||||
|
+ { \
|
||||||
|
+ PK11_FreeSymKey(wrapping_key); \
|
||||||
|
+ PK11_DestroyContext(wrap_key_crypt_context, PR_TRUE); \
|
||||||
|
+ SECITEM_FreeItem(raw_key_aligned, PR_TRUE); \
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if(raw_key->len > sizeof(wrapped_key.data)) {
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // getting 306 on my system which is CKM_DES3_ECB.
|
||||||
|
+ wrap_mechanism = PK11_GetBestWrapMechanism(slot);
|
||||||
|
+
|
||||||
|
+ // Generate a wrapping key. It will be used exactly twice over the scope:
|
||||||
|
+ // * to encrypt raw_key giving wrapped_key,
|
||||||
|
+ // * to decrypt wrapped_key in the internals of PK11_UnwrapSymKey().
|
||||||
|
+ wrapping_key = PK11_KeyGen(slot, wrap_mechanism, NULL,
|
||||||
|
+ PK11_GetBestKeyLength(slot, wrap_mechanism), NULL);
|
||||||
|
+ if (wrapping_key == NULL) {
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Prepare a PK11 context for the raw_key -> wrapped_key encryption.
|
||||||
|
+ SECItem tmp_sec_item;
|
||||||
|
+ memset(&tmp_sec_item, 0, sizeof(tmp_sec_item));
|
||||||
|
+ wrap_key_crypt_context = PK11_CreateContextBySymKey(
|
||||||
|
+ wrap_mechanism,
|
||||||
|
+ CKA_ENCRYPT,
|
||||||
|
+ wrapping_key,
|
||||||
|
+ &tmp_sec_item);
|
||||||
|
+ if (wrap_key_crypt_context == NULL) {
|
||||||
|
+ SCOPE_DATA_FREE();
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Finally wrap the key. Important note is that the wrapping mechanism
|
||||||
|
+ // selection (read: just grabbing a cipher) offers, at least in my NSS
|
||||||
|
+ // copy, mostly CKM_*_ECB ciphers (with 3DES as the leading one, see
|
||||||
|
+ // wrapMechanismList[] in pk11mech.c). There is no CKM_*_*_PAD variant
|
||||||
|
+ // which means that plaintext we are providing to PK11_CipherOp() must
|
||||||
|
+ // be aligned to cipher's block size. For 3DES it's 64 bits.
|
||||||
|
+ raw_key_aligned = PK11_BlockData(raw_key, PK11_GetBlockSize(wrap_mechanism, NULL));
|
||||||
|
+ if (raw_key_aligned == NULL) {
|
||||||
|
+ SCOPE_DATA_FREE();
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (PK11_CipherOp(wrap_key_crypt_context, wrapped_key.data, &wrapped_key.len,
|
||||||
|
+ sizeof(wrapped_key.data), raw_key_aligned->data,
|
||||||
|
+ raw_key_aligned->len) != SECSuccess) {
|
||||||
|
+ SCOPE_DATA_FREE();
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (PK11_Finalize(wrap_key_crypt_context) != SECSuccess) {
|
||||||
|
+ SCOPE_DATA_FREE();
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // Key is wrapped now so we can acquire the ultimate PK11SymKey through
|
||||||
|
+ // unwrapping it. Of course these two opposite operations form NOP with
|
||||||
|
+ // a side effect: FIPS level 1 compatibility.
|
||||||
|
+ memset(&tmp_sec_item, 0, sizeof(tmp_sec_item));
|
||||||
|
+
|
||||||
|
+ SECItem wrapped_key_item;
|
||||||
|
+ memset(&wrapped_key_item, 0, sizeof(wrapped_key_item));
|
||||||
|
+ wrapped_key_item.data = wrapped_key.data;
|
||||||
|
+ wrapped_key_item.len = wrapped_key.len;
|
||||||
|
+
|
||||||
|
+ PK11SymKey *ret = PK11_UnwrapSymKey(wrapping_key, wrap_mechanism,
|
||||||
|
+ &tmp_sec_item, &wrapped_key_item, type,
|
||||||
|
+ operation, raw_key->len);
|
||||||
|
+ SCOPE_DATA_FREE();
|
||||||
|
+ return ret;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#endif // NSS_FIPS_H
|
||||||
|
|
@ -1,12 +1,12 @@
|
|||||||
diff -up firefox-115.2.0/toolkit/moz.configure.disable-elfhack firefox-115.2.0/toolkit/moz.configure
|
diff -up firefox-128.0/toolkit/moz.configure.disable-elfhack firefox-128.0/toolkit/moz.configure
|
||||||
--- firefox-115.2.0/toolkit/moz.configure.disable-elfhack 2023-09-20 21:55:41.002788320 +0200
|
--- firefox-128.0/toolkit/moz.configure.disable-elfhack 2024-06-19 17:24:29.964976617 +0200
|
||||||
+++ firefox-115.2.0/toolkit/moz.configure 2023-09-20 21:56:37.343757245 +0200
|
+++ firefox-128.0/toolkit/moz.configure 2024-06-19 17:24:53.015843805 +0200
|
||||||
@@ -1511,7 +1511,7 @@ with only_when("--enable-compile-environ
|
@@ -1553,7 +1553,7 @@ with only_when("--enable-compile-environ
|
||||||
"Cannot enable elfhack with lld."
|
@depends(host, target)
|
||||||
" Use --enable-linker=bfd, --enable-linker=gold, or --disable-elf-hack"
|
def has_elfhack(host, target):
|
||||||
|
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)
|
|
||||||
|
|
||||||
|
12
SOURCES/build-disable-gamepad.patch
Normal file
12
SOURCES/build-disable-gamepad.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up firefox-128.0/dom/gamepad/moz.build.gamepad firefox-128.0/dom/gamepad/moz.build
|
||||||
|
--- firefox-128.0/dom/gamepad/moz.build.gamepad 2024-07-30 16:24:07.326519645 +0200
|
||||||
|
+++ firefox-128.0/dom/gamepad/moz.build 2024-07-30 16:24:15.817492673 +0200
|
||||||
|
@@ -60,7 +60,7 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "wi
|
||||||
|
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
|
||||||
|
UNIFIED_SOURCES += ["android/AndroidGamepad.cpp"]
|
||||||
|
elif CONFIG["OS_ARCH"] in ("Linux", "FreeBSD", "DragonFly"):
|
||||||
|
- UNIFIED_SOURCES += ["linux/LinuxGamepad.cpp"]
|
||||||
|
+ UNIFIED_SOURCES += ["fallback/FallbackGamepad.cpp"]
|
||||||
|
else:
|
||||||
|
UNIFIED_SOURCES += ["fallback/FallbackGamepad.cpp"]
|
||||||
|
|
24
SOURCES/build-ffvpx.patch
Normal file
24
SOURCES/build-ffvpx.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
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)
|
20
SOURCES/build-libaom.patch
Normal file
20
SOURCES/build-libaom.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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
|
@ -1,23 +1,23 @@
|
|||||||
diff --git a/dom/media/webrtc/third_party_build/webrtc.mozbuild b/dom/media/webrtc/third_party_build/webrtc.mozbuild
|
diff -up firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild
|
||||||
index 30169c36c2..335e3cb1a1 100644
|
--- firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire 2024-07-17 14:01:36.290603114 +0200
|
||||||
--- a/dom/media/webrtc/third_party_build/webrtc.mozbuild
|
+++ firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild 2024-07-17 14:52:02.039208338 +0200
|
||||||
+++ b/dom/media/webrtc/third_party_build/webrtc.mozbuild
|
@@ -31,7 +31,7 @@ if CONFIG["MOZ_WEBRTC"]:
|
||||||
@@ -35,6 +35,3 @@ if CONFIG['MOZ_WEBRTC']:
|
and CONFIG["TARGET_CPU"].startswith("mips")
|
||||||
|
)
|
||||||
if CONFIG['MOZ_X11']:
|
):
|
||||||
DEFINES['WEBRTC_USE_X11'] = True
|
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
||||||
-
|
+ DEFINES["WEBRTC_USE_PIPEWIRE"] = False
|
||||||
- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
elif CONFIG["OS_TARGET"] == "Darwin":
|
||||||
- DEFINES['WEBRTC_USE_PIPEWIRE'] = True
|
DEFINES["WEBRTC_MAC"] = True
|
||||||
diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
|
elif CONFIG["OS_TARGET"] == "WINNT":
|
||||||
index 8c56b6b8e5..eaf8d7087a 100644
|
diff -up firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
|
||||||
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
|
--- firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire 2024-07-17 14:01:36.291603109 +0200
|
||||||
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
|
+++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2024-07-17 14:56:35.419826494 +0200
|
||||||
@@ -232,102 +232,6 @@ if CONFIG["CPU_ARCH"] == "aarch64":
|
@@ -241,102 +241,6 @@ if CONFIG["TARGET_CPU"] == "aarch64":
|
||||||
DEFINES["WEBRTC_ARCH_ARM64"] = True
|
DEFINES["WEBRTC_ARCH_ARM64"] = True
|
||||||
DEFINES["WEBRTC_HAS_NEON"] = True
|
DEFINES["WEBRTC_HAS_NEON"] = True
|
||||||
|
|
||||||
-if CONFIG["CPU_ARCH"] == "arm":
|
-if CONFIG["TARGET_CPU"] == "arm":
|
||||||
-
|
-
|
||||||
- CXXFLAGS += [
|
- CXXFLAGS += [
|
||||||
- "-mfpu=neon"
|
- "-mfpu=neon"
|
||||||
@ -53,7 +53,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
-if CONFIG["CPU_ARCH"] == "mips32":
|
-if CONFIG["TARGET_CPU"] == "mips32":
|
||||||
-
|
-
|
||||||
- DEFINES["MIPS32_LE"] = True
|
- DEFINES["MIPS32_LE"] = True
|
||||||
- DEFINES["MIPS_FPU_LE"] = True
|
- DEFINES["MIPS_FPU_LE"] = True
|
||||||
@ -84,7 +84,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
-if CONFIG["CPU_ARCH"] == "mips64":
|
-if CONFIG["TARGET_CPU"] == "mips64":
|
||||||
-
|
-
|
||||||
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
||||||
- DEFINES["_GNU_SOURCE"] = True
|
- DEFINES["_GNU_SOURCE"] = True
|
||||||
@ -113,14 +113,14 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
if CONFIG["CPU_ARCH"] == "ppc64":
|
if CONFIG["TARGET_CPU"] == "ppc64":
|
||||||
|
|
||||||
DEFINES["USE_X11"] = "1"
|
DEFINES["USE_X11"] = "1"
|
||||||
@@ -410,97 +314,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "WINNT":
|
@@ -389,35 +293,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG
|
||||||
|
|
||||||
DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
|
DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
|
||||||
|
|
||||||
-if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux":
|
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
|
||||||
-
|
-
|
||||||
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
||||||
- DEFINES["_GNU_SOURCE"] = True
|
- DEFINES["_GNU_SOURCE"] = True
|
||||||
@ -149,7 +149,14 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
-if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
|
if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "riscv64":
|
||||||
|
|
||||||
|
DEFINES["USE_X11"] = "1"
|
||||||
|
@@ -446,95 +321,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CO
|
||||||
|
"/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc"
|
||||||
|
]
|
||||||
|
|
||||||
|
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
|
||||||
-
|
-
|
||||||
- CXXFLAGS += [
|
- CXXFLAGS += [
|
||||||
- "-msse2"
|
- "-msse2"
|
||||||
@ -182,7 +189,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
-if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
|
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
|
||||||
-
|
-
|
||||||
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
|
||||||
- DEFINES["_GNU_SOURCE"] = True
|
- DEFINES["_GNU_SOURCE"] = True
|
||||||
@ -211,14 +218,40 @@ index 8c56b6b8e5..eaf8d7087a 100644
|
|||||||
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
|
||||||
- ]
|
- ]
|
||||||
-
|
-
|
||||||
if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
|
-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
|
||||||
|
-
|
||||||
|
- DEFINES["USE_X11"] = "1"
|
||||||
|
- DEFINES["WEBRTC_USE_X11"] = True
|
||||||
|
-
|
||||||
|
- OS_LIBS += [
|
||||||
|
- "X11",
|
||||||
|
- "Xcomposite",
|
||||||
|
- "Xdamage",
|
||||||
|
- "Xext",
|
||||||
|
- "Xfixes",
|
||||||
|
- "Xrandr",
|
||||||
|
- "Xrender"
|
||||||
|
- ]
|
||||||
|
-
|
||||||
|
- UNIFIED_SOURCES += [
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/screen_capturer_x11.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/shared_x_display.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_capturer_x11.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_finder_x11.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_list_utils.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_atom_cache.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_error_trap.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc",
|
||||||
|
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc"
|
||||||
|
- ]
|
||||||
|
|
||||||
DEFINES["USE_X11"] = "1"
|
if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "arm":
|
||||||
diff --git a/third_party/libwebrtc/modules/portal/portal_gn/moz.build b/third_party/libwebrtc/modules/portal/portal_gn/moz.build
|
|
||||||
index 77603c780b..e6f2c9e724 100644
|
diff -up firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build
|
||||||
--- a/third_party/libwebrtc/modules/portal/portal_gn/moz.build
|
--- firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200
|
||||||
+++ b/third_party/libwebrtc/modules/portal/portal_gn/moz.build
|
+++ firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build 2024-07-17 14:01:36.291603109 +0200
|
||||||
@@ -26,7 +26,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
|
@@ -27,7 +27,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
|
||||||
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
|
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
|
||||||
DEFINES["WEBRTC_POSIX"] = True
|
DEFINES["WEBRTC_POSIX"] = True
|
||||||
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
|
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
|
||||||
@ -227,11 +260,10 @@ index 77603c780b..e6f2c9e724 100644
|
|||||||
DEFINES["_FILE_OFFSET_BITS"] = "64"
|
DEFINES["_FILE_OFFSET_BITS"] = "64"
|
||||||
DEFINES["_GNU_SOURCE"] = True
|
DEFINES["_GNU_SOURCE"] = True
|
||||||
DEFINES["_LARGEFILE64_SOURCE"] = True
|
DEFINES["_LARGEFILE64_SOURCE"] = True
|
||||||
diff --git a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
|
diff -up firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
|
||||||
index 86a0daf8fa..e895f2eb15 100644
|
--- firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200
|
||||||
--- a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
|
+++ firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build 2024-07-17 14:01:36.291603109 +0200
|
||||||
+++ b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
|
@@ -25,7 +25,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
|
||||||
@@ -24,7 +24,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
|
|
||||||
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
|
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
|
||||||
DEFINES["WEBRTC_POSIX"] = True
|
DEFINES["WEBRTC_POSIX"] = True
|
||||||
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
|
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
[Global]
|
|
||||||
id=almalinux
|
|
||||||
version=1.0
|
|
||||||
about=Mozilla Firefox for AlmaLinux
|
|
||||||
|
|
||||||
[Preferences]
|
|
||||||
app.distributor=almalinux
|
|
||||||
app.distributor.channel=almalinux
|
|
||||||
app.partner.fedora=almalinux
|
|
9
SOURCES/distribution.ini.in
Normal file
9
SOURCES/distribution.ini.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[Global]
|
||||||
|
id=__ID__
|
||||||
|
version=1.0
|
||||||
|
about=Mozilla Firefox for __NAME__
|
||||||
|
|
||||||
|
[Preferences]
|
||||||
|
app.distributor=__ID__
|
||||||
|
app.distributor.channel=__ID__
|
||||||
|
app.partner.__ID__=__ID__
|
@ -1,375 +0,0 @@
|
|||||||
# erAck: backport of expat CVE-2023-52425 DoS fix
|
|
||||||
# https://github.com/libexpat/libexpat/commit/34b598c5f594b015c513c73f06e7ced3323edbf1
|
|
||||||
#
|
|
||||||
--- firefox-115.9.0/parser/expat/lib/expat.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
|
|
||||||
+++ firefox-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.
|
|
||||||
*/
|
|
||||||
--- firefox-115.9.0/parser/expat/lib/internal.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
|
|
||||||
+++ firefox-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
|
|
||||||
--- firefox-115.9.0/parser/expat/lib/xmlparse.c.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
|
|
||||||
+++ firefox-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
|
|
@ -1,9 +0,0 @@
|
|||||||
diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh
|
|
||||||
--- firefox-73.0/build/unix/run-mozilla.sh.old 2020-02-12 09:58:00.150895904 +0100
|
|
||||||
+++ firefox-73.0/build/unix/run-mozilla.sh 2020-02-12 09:58:06.505860696 +0100
|
|
||||||
@@ -1,4 +1,4 @@
|
|
||||||
-#!/bin/sh
|
|
||||||
+#!/usr/bin/sh
|
|
||||||
#
|
|
||||||
# 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
|
|
@ -1,10 +1,10 @@
|
|||||||
diff -up firefox-55.0/browser/app/profile/firefox.js.addons firefox-55.0/browser/app/profile/firefox.js
|
diff -up firefox-128.0/browser/app/profile/firefox.js.addons firefox-128.0/browser/app/profile/firefox.js
|
||||||
--- 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.addons 2024-06-13 11:47:04.255428350 +0200
|
||||||
+++ firefox-55.0/browser/app/profile/firefox.js 2017-08-02 10:59:15.377216959 +0200
|
+++ firefox-128.0/browser/app/profile/firefox.js 2024-06-13 11:53:00.442837371 +0200
|
||||||
@@ -65,7 +65,8 @@ pref("extensions.systemAddon.update.url"
|
@@ -56,7 +56,8 @@ pref("extensions.systemAddon.update.enab
|
||||||
|
|
||||||
// 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.jsm for values to use here.
|
// See the SCOPE constants in AddonManager.sys.mjs 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);
|
||||||
|
@ -21,9 +21,11 @@ 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_TELEMETRY_REPORTING=1
|
|
||||||
export MOZ_UPDATE_CHANNEL=release
|
export MOZ_UPDATE_CHANNEL=release
|
||||||
export MOZ_APP_REMOTINGNAME=firefox
|
export MOZ_APP_REMOTINGNAME=firefox
|
||||||
|
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 MOZILLA_OFFICIAL=1
|
mk_add_options MOZILLA_OFFICIAL=1
|
||||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
|
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
|
||||||
|
@ -36,3 +36,7 @@ pref("browser.gnome-search-provider.enabled",true);
|
|||||||
pref("media.navigator.mediadatadecoder_vpx_enabled", true);
|
pref("media.navigator.mediadatadecoder_vpx_enabled", true);
|
||||||
/* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */
|
/* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */
|
||||||
pref("storage.nfs_filesystem", true);
|
pref("storage.nfs_filesystem", true);
|
||||||
|
/* Disable Private Attribution collection and submission */
|
||||||
|
pref("dom.private-attribution.submission.enabled", false);
|
||||||
|
/* ECH is not supported in the system nss */
|
||||||
|
pref("security.tls.ech.grease_probability", 0);
|
@ -1,14 +0,0 @@
|
|||||||
diff -up firefox-88.0/testing/xpcshell/runxpcshelltests.py.old firefox-88.0/testing/xpcshell/runxpcshelltests.py
|
|
||||||
--- firefox-88.0/testing/xpcshell/runxpcshelltests.py.old 2021-04-30 10:45:14.466616224 +0200
|
|
||||||
+++ firefox-88.0/testing/xpcshell/runxpcshelltests.py 2021-04-30 10:45:21.339525085 +0200
|
|
||||||
@@ -1382,8 +1382,8 @@ class XPCShellTests(object):
|
|
||||||
self.log.info("Process %s" % label)
|
|
||||||
self.log.info(msg)
|
|
||||||
|
|
||||||
- dumpOutput(proc.stdout, "stdout")
|
|
||||||
- dumpOutput(proc.stderr, "stderr")
|
|
||||||
+ #dumpOutput(proc.stdout, "stdout")
|
|
||||||
+ #dumpOutput(proc.stderr, "stderr")
|
|
||||||
self.nodeProc = {}
|
|
||||||
|
|
||||||
def startHttp3Server(self):
|
|
@ -64,7 +64,6 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox"
|
|||||||
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
|
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
|
||||||
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||||
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
|
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
|
||||||
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
|
|
||||||
GETENFORCE_FILE="/usr/sbin/getenforce"
|
GETENFORCE_FILE="/usr/sbin/getenforce"
|
||||||
|
|
||||||
##
|
##
|
||||||
@ -247,35 +246,6 @@ fi
|
|||||||
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
|
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
|
||||||
export NSS_SSL_CBC_RANDOM_IV
|
export NSS_SSL_CBC_RANDOM_IV
|
||||||
|
|
||||||
# Prepare command line arguments
|
|
||||||
script_args=""
|
|
||||||
pass_arg_count=0
|
|
||||||
while [ $# -gt $pass_arg_count ]
|
|
||||||
do
|
|
||||||
case "$1" in
|
|
||||||
-g | --debug)
|
|
||||||
script_args="$script_args -g"
|
|
||||||
debugging=1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-d | --debugger)
|
|
||||||
if [ $# -gt 1 ]; then
|
|
||||||
script_args="$script_args -d $2"
|
|
||||||
shift 2
|
|
||||||
else
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Move the unrecognized argument to the end of the list.
|
|
||||||
arg="$1"
|
|
||||||
shift
|
|
||||||
set -- "$@" "$arg"
|
|
||||||
pass_arg_count=`expr $pass_arg_count + 1`
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# Flatpak specific environment variables
|
# Flatpak specific environment variables
|
||||||
%FLATPAK_ENV_VARS%
|
%FLATPAK_ENV_VARS%
|
||||||
|
|
||||||
@ -286,7 +256,7 @@ export MOZ_ALLOW_DOWNGRADE=1
|
|||||||
debugging=0
|
debugging=0
|
||||||
if [ $debugging = 1 ]
|
if [ $debugging = 1 ]
|
||||||
then
|
then
|
||||||
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
|
echo $MOZ_PROGRAM "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
|
exec $MOZ_PROGRAM "$@"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
diff -up firefox-115.2.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-115.2.0/gfx/2d/DrawTargetSkia.cpp
|
diff -up firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/DrawTargetSkia.cpp
|
||||||
--- firefox-115.2.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2023-09-20 22:15:11.850172571 +0200
|
--- firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2024-06-12 15:02:55.000000000 +0200
|
||||||
+++ firefox-115.2.0/gfx/2d/DrawTargetSkia.cpp 2023-09-20 22:16:10.446147737 +0200
|
+++ firefox-128.0/gfx/2d/DrawTargetSkia.cpp 2024-06-13 11:36:54.550728034 +0200
|
||||||
@@ -156,8 +156,8 @@ static IntRect CalculateSurfaceBounds(co
|
@@ -156,8 +156,8 @@ static IntRect CalculateSurfaceBounds(co
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12,9 +12,9 @@ diff -up firefox-115.2.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 fire
|
|||||||
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()) {
|
if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
|
||||||
diff -up firefox-115.2.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-115.2.0/gfx/2d/Types.h
|
diff -up firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/Types.h
|
||||||
--- firefox-115.2.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2023-08-21 15:43:23.000000000 +0200
|
--- firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2024-06-12 15:02:56.000000000 +0200
|
||||||
+++ firefox-115.2.0/gfx/2d/Types.h 2023-09-20 22:15:11.850172571 +0200
|
+++ 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 +37,10 @@ diff -up firefox-115.2.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-115.2.0
|
|||||||
|
|
||||||
// The following values are OS and endian-independent synonyms.
|
// The following values are OS and endian-independent synonyms.
|
||||||
//
|
//
|
||||||
diff -up firefox-115.2.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-115.2.0/gfx/skia/skia/modules/skcms/skcms.cc
|
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
|
||||||
--- firefox-115.2.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 2023-08-21 15:43:23.000000000 +0200
|
--- firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 2024-06-12 15:02:57.000000000 +0200
|
||||||
+++ firefox-115.2.0/gfx/skia/skia/modules/skcms/skcms.cc 2023-09-20 22:15:11.851172570 +0200
|
+++ firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc 2024-06-13 11:38:45.377835856 +0200
|
||||||
@@ -30,6 +30,8 @@
|
@@ -31,6 +31,8 @@
|
||||||
#include <avx512fintrin.h>
|
#include <avx512fintrin.h>
|
||||||
#include <avx512dqintrin.h>
|
#include <avx512dqintrin.h>
|
||||||
#endif
|
#endif
|
||||||
@ -48,7 +48,7 @@ diff -up firefox-115.2.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834
|
|||||||
+ #define SKCMS_PORTABLE
|
+ #define SKCMS_PORTABLE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static bool runtime_cpu_detection = true;
|
using namespace skcms_private;
|
||||||
@@ -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;
|
||||||
|
@ -1,15 +1,7 @@
|
|||||||
diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.cpp
|
diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.cpp
|
||||||
--- firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2023-05-17 10:43:02.000000000 +0200
|
--- firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200
|
||||||
+++ firefox-114.0/widget/gtk/nsWindow.cpp 2023-05-17 13:53:54.000443278 +0200
|
+++ firefox-128.0/widget/gtk/nsWindow.cpp 2024-07-16 14:54:21.026716936 +0200
|
||||||
@@ -100,6 +100,7 @@
|
@@ -174,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
|
||||||
#include "ScreenHelperGTK.h"
|
|
||||||
#include "SystemTimeConverter.h"
|
|
||||||
#include "WidgetUtilsGtk.h"
|
|
||||||
+#include "nsIBrowserHandler.h"
|
|
||||||
|
|
||||||
#ifdef ACCESSIBILITY
|
|
||||||
# include "mozilla/a11y/LocalAccessible.h"
|
|
||||||
@@ -173,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
|
|
||||||
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
|
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
|
||||||
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
||||||
GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK |
|
GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK |
|
||||||
@ -19,7 +11,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
|
|||||||
|
|
||||||
/* utility functions */
|
/* utility functions */
|
||||||
static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,
|
static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,
|
||||||
@@ -433,7 +435,8 @@ nsWindow::nsWindow()
|
@@ -430,7 +431,8 @@ nsWindow::nsWindow()
|
||||||
mResizedAfterMoveToRect(false),
|
mResizedAfterMoveToRect(false),
|
||||||
mConfiguredClearColor(false),
|
mConfiguredClearColor(false),
|
||||||
mGotNonBlankPaint(false),
|
mGotNonBlankPaint(false),
|
||||||
@ -29,7 +21,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
|
|||||||
mWindowType = WindowType::Child;
|
mWindowType = WindowType::Child;
|
||||||
mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize);
|
mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize);
|
||||||
|
|
||||||
@@ -5263,6 +5266,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
|
@@ -5374,6 +5376,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
|
||||||
ClearTransparencyBitmap();
|
ClearTransparencyBitmap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -49,30 +41,18 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
|
|||||||
}
|
}
|
||||||
|
|
||||||
void nsWindow::OnDPIChanged() {
|
void nsWindow::OnDPIChanged() {
|
||||||
@@ -7409,6 +7425,19 @@ nsresult nsWindow::MakeFullScreen(bool a
|
@@ -7526,6 +7541,7 @@ nsresult nsWindow::MakeFullScreen(bool a
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // if in kiosk, ensure the fullscreen is called
|
if (mKioskMonitor.isSome()) {
|
||||||
+ nsCOMPtr<nsIBrowserHandler> browserHandler =
|
KioskLockOnMonitor();
|
||||||
+ do_GetService("@mozilla.org/browser/clh;1");
|
|
||||||
+ if (browserHandler) {
|
|
||||||
+ bool isKiosk;
|
|
||||||
+ browserHandler->GetKiosk(&isKiosk);
|
|
||||||
+ if (isKiosk) {
|
|
||||||
+ LOG(" is kiosk, ensure the window switch to fullscreen\n");
|
|
||||||
+ mPendingFullscreen = true;
|
+ mPendingFullscreen = true;
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ LOG(" Cannot find the browserHandler service.\n");
|
|
||||||
+ }
|
|
||||||
gtk_window_fullscreen(GTK_WINDOW(mShell));
|
|
||||||
} else {
|
} else {
|
||||||
gtk_window_unfullscreen(GTK_WINDOW(mShell));
|
gtk_window_fullscreen(GTK_WINDOW(mShell));
|
||||||
diff -up firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.h
|
}
|
||||||
--- firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2023-05-17 08:46:16.000000000 +0200
|
diff -up firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.h
|
||||||
+++ firefox-114.0/widget/gtk/nsWindow.h 2023-05-17 13:51:29.502159247 +0200
|
--- firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200
|
||||||
@@ -752,6 +752,7 @@ class nsWindow final : public nsBaseWidg
|
+++ firefox-128.0/widget/gtk/nsWindow.h 2024-07-16 14:25:51.636952919 +0200
|
||||||
|
@@ -758,6 +758,7 @@ class nsWindow final : public nsBaseWidg
|
||||||
* move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect.
|
* move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect.
|
||||||
*/
|
*/
|
||||||
bool mWaitingForMoveToRectCallback : 1;
|
bool mWaitingForMoveToRectCallback : 1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/media/mp4/MP4Demuxer.cpp
|
diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/mp4/MP4Demuxer.cpp
|
||||||
--- 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.mozilla-bmo1670333 2024-07-04 18:20:27.000000000 +0200
|
||||||
+++ firefox-115.0/dom/media/mp4/MP4Demuxer.cpp 2023-06-08 08:15:48.214109403 +0200
|
+++ firefox-128.0/dom/media/mp4/MP4Demuxer.cpp 2024-07-16 13:49:10.475630426 +0200
|
||||||
@@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re
|
@@ -33,6 +33,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-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me
|
|||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
using TimeUnit = media::TimeUnit;
|
using TimeUnit = media::TimeUnit;
|
||||||
@@ -404,6 +406,12 @@ already_AddRefed<MediaRawData> MP4TrackD
|
@@ -419,6 +421,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-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me
|
|||||||
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-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/dom/media/platforms/PDMFactory.cpp
|
diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.cpp
|
||||||
--- 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.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200
|
||||||
+++ firefox-115.0/dom/media/platforms/PDMFactory.cpp 2023-06-08 08:09:33.145289602 +0200
|
+++ firefox-128.0/dom/media/platforms/PDMFactory.cpp 2024-07-16 14:16:04.635809901 +0200
|
||||||
@@ -67,6 +67,8 @@
|
@@ -62,6 +62,8 @@
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
@ -35,31 +35,28 @@ diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/
|
|||||||
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;
|
||||||
@@ -562,7 +564,7 @@ void PDMFactory::CreateRddPDMs() {
|
@@ -543,7 +545,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() &&
|
||||||
- !CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
|
- !StartupPDM(FFmpegRuntimeLinker::CreateDecoder())) {
|
||||||
+ !(mFFmpegUsed = CreateAndStartupPDM<FFmpegRuntimeLinker>())) {
|
+ !(mFFmpegUsed = StartupPDM(FFmpegRuntimeLinker::CreateDecoder()))) {
|
||||||
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
|
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
|
||||||
FFmpegRuntimeLinker::LinkStatusCode());
|
FFmpegRuntimeLinker::LinkStatusCode());
|
||||||
}
|
}
|
||||||
@@ -738,9 +740,10 @@ void PDMFactory::CreateDefaultPDMs() {
|
@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() {
|
||||||
|
StartupPDM(AgnosticDecoderModule::Create(),
|
||||||
CreateAndStartupPDM<AgnosticDecoderModule>();
|
StaticPrefs::media_prefer_non_ffvpx());
|
||||||
|
|
||||||
- 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
|
||||||
diff -up firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 firefox-115.0/dom/media/platforms/PDMFactory.h
|
+++ firefox-128.0/dom/media/platforms/PDMFactory.h 2024-07-16 13:49:10.476630421 +0200
|
||||||
--- firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 2023-06-06 23:14:42.000000000 +0200
|
@@ -98,6 +98,7 @@ class PDMFactory final {
|
||||||
+++ 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;
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcodecs.c
|
diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/allcodecs.c
|
||||||
--- a/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
|
||||||
+++ b/media/ffvpx/libavcodec/allcodecs.c
|
+++ firefox-128.0/media/ffvpx/libavcodec/allcodecs.c 2024-06-13 11:44:10.637215674 +0200
|
||||||
@@ -755,12 +755,15 @@
|
@@ -764,8 +764,11 @@ extern const FFCodec ff_libaribb24_decod
|
||||||
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;
|
||||||
@ -15,11 +13,7 @@ diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcode
|
|||||||
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;
|
||||||
extern const FFCodec ff_libgsm_decoder;
|
@@ -793,7 +796,6 @@ extern const FFCodec ff_libspeex_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;
|
||||||
@ -27,14 +21,10 @@ diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcode
|
|||||||
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;
|
||||||
extern const FFCodec ff_libvpx_vp8_encoder;
|
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_decoder;
|
--- firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.668924117 +0200
|
||||||
diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_list.c
|
+++ firefox-128.0/media/ffvpx/libavcodec/codec_list.c 2024-06-13 11:44:41.411253372 +0200
|
||||||
--- a/media/ffvpx/libavcodec/codec_list.c
|
@@ -11,12 +11,14 @@ static const FFCodec * const codec_list[
|
||||||
+++ 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
|
||||||
@ -46,25 +36,21 @@ diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_
|
|||||||
&ff_av1_decoder,
|
&ff_av1_decoder,
|
||||||
#endif
|
#endif
|
||||||
+#endif
|
+#endif
|
||||||
NULL };
|
#if CONFIG_LIBVORBIS_DECODER
|
||||||
diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
|
&ff_libvorbis_decoder,
|
||||||
--- a/media/ffvpx/libavcodec/moz.build
|
#endif
|
||||||
+++ b/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
|
||||||
@@ -84,11 +84,10 @@
|
--- firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.669924118 +0200
|
||||||
'cbs.c',
|
+++ firefox-128.0/media/ffvpx/libavcodec/moz.build 2024-06-13 11:45:22.867304151 +0200
|
||||||
'cbs_av1.c',
|
@@ -94,7 +94,6 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
|
||||||
'golomb.c',
|
|
||||||
'h264pred.c',
|
|
||||||
'imgconvert.c',
|
'imgconvert.c',
|
||||||
|
'libaom.c',
|
||||||
|
'libaomenc.c',
|
||||||
- 'libdav1d.c',
|
- 'libdav1d.c',
|
||||||
|
'libvpxdec.c',
|
||||||
|
'libvpxenc.c',
|
||||||
'mathtables.c',
|
'mathtables.c',
|
||||||
'qsv_api.c',
|
@@ -119,10 +118,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
|
||||||
'raw.c',
|
|
||||||
'videodsp.c',
|
|
||||||
'vp8.c',
|
|
||||||
@@ -107,14 +106,19 @@
|
|
||||||
'vp9mvs.c',
|
|
||||||
'vp9prob.c',
|
|
||||||
'vp9recon.c',
|
'vp9recon.c',
|
||||||
'vpx_rac.c',
|
'vpx_rac.c',
|
||||||
]
|
]
|
||||||
@ -81,9 +67,7 @@ diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
|
|||||||
+ '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',
|
|
||||||
|
|
||||||
|
@ -4,4 +4,4 @@ export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
|
|||||||
export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS"
|
export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS"
|
||||||
export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
|
export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
|
||||||
export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig
|
export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig
|
||||||
export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH"
|
export PATH="%{_buildrootdir}%{bundled_install_path}/bin:$PATH"
|
||||||
|
@ -12,6 +12,11 @@ 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
|
||||||
|
|
||||||
processed_tarball=${1/source/processed-source}
|
processed_tarball=${1/source/processed-source}
|
||||||
|
|
||||||
|
2369
SOURCES/webrtc-128.0.patch.patch
Normal file
2369
SOURCES/webrtc-128.0.patch.patch
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user