From 1022f11503a704671db0e867acf25d635831e019 Mon Sep 17 00:00:00 2001 From: athenian200 Date: Sat, 9 Jul 2022 12:38:53 +0000 Subject: [PATCH 1/4] No Issue - Insert missing typedef for SunOS. We definitely have uint64_t on SunOS. Someone probably just forgot to finish filling out the list... --- media/libogg/include/ogg/os_types.h | 1 + 1 file changed, 1 insertion(+) diff --git a/media/libogg/include/ogg/os_types.h b/media/libogg/include/ogg/os_types.h index a8d4600fb0..f67f0c0d98 100644 --- a/media/libogg/include/ogg/os_types.h +++ b/media/libogg/include/ogg/os_types.h @@ -108,6 +108,7 @@ extern ogg_free_function_type *ogg_free_func; typedef int32_t ogg_int32_t; typedef uint32_t ogg_uint32_t; typedef int64_t ogg_int64_t; + typedef uint64_t ogg_uint64_t; #elif defined(__HAIKU__) From 8831656c8508af9ae4faa0171d95e69895cc710a Mon Sep 17 00:00:00 2001 From: Moonchild Date: Tue, 12 Jul 2022 12:48:06 +0000 Subject: [PATCH 2/4] Issue #1959 - Don't apply CSPs to explicit data documents and images. This resolves #1959 --- dom/base/nsDocument.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index 0b531f40a0..2ad5d47b32 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -2504,6 +2504,21 @@ nsDocument::InitCSP(nsIChannel* aChannel) return NS_OK; } + // If this is explicitly loaded as a data document, no need to set a CSP. + if (mLoadedAsData) { + return NS_OK; + } + + // If this is an image, no need to set a CSP. + // If we don't do this, SVG images will be parsed as normal XML documents and + // subject to served CSPs, which might block internally applied inline styles. + // See UXP issue #1959. + nsCOMPtr loadInfo = aChannel->GetLoadInfo(); + if (loadInfo->GetExternalContentPolicyType() == + nsIContentPolicy::TYPE_IMAGE) { + return NS_OK; + } + nsAutoCString tCspHeaderValue, tCspROHeaderValue; nsCOMPtr httpChannel; @@ -2532,7 +2547,6 @@ nsDocument::InitCSP(nsIChannel* aChannel) // Check if this is a signed content to apply default CSP. bool applySignedContentCSP = false; - nsCOMPtr loadInfo = aChannel->GetLoadInfo(); if (loadInfo && loadInfo->GetVerifySignedContent()) { applySignedContentCSP = true; } From b6fc7e7ae694cbc42251f095742f2957314c818a Mon Sep 17 00:00:00 2001 From: Jeremy Andrews Date: Tue, 5 Jul 2022 05:11:01 -0500 Subject: [PATCH 3/4] Issue #1956 - Fix AV1 on MSVC2022 32-bit build. --- .../libaom/config/win/ia32/config/av1_rtcd.h | 24 +++++++++++++++++++ media/libaom/src/aom_dsp/aom_simd.h | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/media/libaom/config/win/ia32/config/av1_rtcd.h b/media/libaom/config/win/ia32/config/av1_rtcd.h index 14c816a8a9..4a86760ce0 100644 --- a/media/libaom/config/win/ia32/config/av1_rtcd.h +++ b/media/libaom/config/win/ia32/config/av1_rtcd.h @@ -701,65 +701,89 @@ static void setup_rtcd_internal(void) if (flags & HAS_SSE2) av1_wiener_convolve_add_src = av1_wiener_convolve_add_src_sse2; if (flags & HAS_AVX2) av1_wiener_convolve_add_src = av1_wiener_convolve_add_src_avx2; cdef_copy_rect8_16bit_to_16bit = cdef_copy_rect8_16bit_to_16bit_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_copy_rect8_16bit_to_16bit = cdef_copy_rect8_16bit_to_16bit_sse2; if (flags & HAS_SSSE3) cdef_copy_rect8_16bit_to_16bit = cdef_copy_rect8_16bit_to_16bit_ssse3; if (flags & HAS_SSE4_1) cdef_copy_rect8_16bit_to_16bit = cdef_copy_rect8_16bit_to_16bit_sse4_1; if (flags & HAS_AVX2) cdef_copy_rect8_16bit_to_16bit = cdef_copy_rect8_16bit_to_16bit_avx2; + } cdef_copy_rect8_8bit_to_16bit = cdef_copy_rect8_8bit_to_16bit_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_copy_rect8_8bit_to_16bit = cdef_copy_rect8_8bit_to_16bit_sse2; if (flags & HAS_SSSE3) cdef_copy_rect8_8bit_to_16bit = cdef_copy_rect8_8bit_to_16bit_ssse3; if (flags & HAS_SSE4_1) cdef_copy_rect8_8bit_to_16bit = cdef_copy_rect8_8bit_to_16bit_sse4_1; if (flags & HAS_AVX2) cdef_copy_rect8_8bit_to_16bit = cdef_copy_rect8_8bit_to_16bit_avx2; + } cdef_filter_16_0 = cdef_filter_16_0_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_16_0 = cdef_filter_16_0_sse2; if (flags & HAS_SSSE3) cdef_filter_16_0 = cdef_filter_16_0_ssse3; if (flags & HAS_SSE4_1) cdef_filter_16_0 = cdef_filter_16_0_sse4_1; if (flags & HAS_AVX2) cdef_filter_16_0 = cdef_filter_16_0_avx2; + } cdef_filter_16_1 = cdef_filter_16_1_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_16_1 = cdef_filter_16_1_sse2; if (flags & HAS_SSSE3) cdef_filter_16_1 = cdef_filter_16_1_ssse3; if (flags & HAS_SSE4_1) cdef_filter_16_1 = cdef_filter_16_1_sse4_1; if (flags & HAS_AVX2) cdef_filter_16_1 = cdef_filter_16_1_avx2; + } cdef_filter_16_2 = cdef_filter_16_2_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_16_2 = cdef_filter_16_2_sse2; if (flags & HAS_SSSE3) cdef_filter_16_2 = cdef_filter_16_2_ssse3; if (flags & HAS_SSE4_1) cdef_filter_16_2 = cdef_filter_16_2_sse4_1; if (flags & HAS_AVX2) cdef_filter_16_2 = cdef_filter_16_2_avx2; + } cdef_filter_16_3 = cdef_filter_16_3_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_16_3 = cdef_filter_16_3_sse2; if (flags & HAS_SSSE3) cdef_filter_16_3 = cdef_filter_16_3_ssse3; if (flags & HAS_SSE4_1) cdef_filter_16_3 = cdef_filter_16_3_sse4_1; if (flags & HAS_AVX2) cdef_filter_16_3 = cdef_filter_16_3_avx2; + } cdef_filter_8_0 = cdef_filter_8_0_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_8_0 = cdef_filter_8_0_sse2; if (flags & HAS_SSSE3) cdef_filter_8_0 = cdef_filter_8_0_ssse3; if (flags & HAS_SSE4_1) cdef_filter_8_0 = cdef_filter_8_0_sse4_1; if (flags & HAS_AVX2) cdef_filter_8_0 = cdef_filter_8_0_avx2; + } cdef_filter_8_1 = cdef_filter_8_1_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_8_1 = cdef_filter_8_1_sse2; if (flags & HAS_SSSE3) cdef_filter_8_1 = cdef_filter_8_1_ssse3; if (flags & HAS_SSE4_1) cdef_filter_8_1 = cdef_filter_8_1_sse4_1; if (flags & HAS_AVX2) cdef_filter_8_1 = cdef_filter_8_1_avx2; + } cdef_filter_8_2 = cdef_filter_8_2_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_8_2 = cdef_filter_8_2_sse2; if (flags & HAS_SSSE3) cdef_filter_8_2 = cdef_filter_8_2_ssse3; if (flags & HAS_SSE4_1) cdef_filter_8_2 = cdef_filter_8_2_sse4_1; if (flags & HAS_AVX2) cdef_filter_8_2 = cdef_filter_8_2_avx2; + } cdef_filter_8_3 = cdef_filter_8_3_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_filter_8_3 = cdef_filter_8_3_sse2; if (flags & HAS_SSSE3) cdef_filter_8_3 = cdef_filter_8_3_ssse3; if (flags & HAS_SSE4_1) cdef_filter_8_3 = cdef_filter_8_3_sse4_1; if (flags & HAS_AVX2) cdef_filter_8_3 = cdef_filter_8_3_avx2; + } cdef_find_dir = cdef_find_dir_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_find_dir = cdef_find_dir_sse2; if (flags & HAS_SSSE3) cdef_find_dir = cdef_find_dir_ssse3; if (flags & HAS_SSE4_1) cdef_find_dir = cdef_find_dir_sse4_1; if (flags & HAS_AVX2) cdef_find_dir = cdef_find_dir_avx2; + } cdef_find_dir_dual = cdef_find_dir_dual_c; + if (_MSC_VER <= 1900) { if (flags & HAS_SSE2) cdef_find_dir_dual = cdef_find_dir_dual_sse2; if (flags & HAS_SSSE3) cdef_find_dir_dual = cdef_find_dir_dual_ssse3; if (flags & HAS_SSE4_1) cdef_find_dir_dual = cdef_find_dir_dual_sse4_1; if (flags & HAS_AVX2) cdef_find_dir_dual = cdef_find_dir_dual_avx2; + } cfl_get_luma_subsampling_420_hbd = cfl_get_luma_subsampling_420_hbd_c; if (flags & HAS_SSSE3) cfl_get_luma_subsampling_420_hbd = cfl_get_luma_subsampling_420_hbd_ssse3; if (flags & HAS_AVX2) cfl_get_luma_subsampling_420_hbd = cfl_get_luma_subsampling_420_hbd_avx2; diff --git a/media/libaom/src/aom_dsp/aom_simd.h b/media/libaom/src/aom_dsp/aom_simd.h index ab950ca55b..4c435aa7c0 100644 --- a/media/libaom/src/aom_dsp/aom_simd.h +++ b/media/libaom/src/aom_dsp/aom_simd.h @@ -29,7 +29,8 @@ // VS compiling for 32 bit targets does not support vector types in // structs as arguments, which makes the v256 type of the intrinsics // hard to support, so optimizations for this target are disabled. -#elif HAVE_SSE2 && (defined(_WIN64) || !defined(_MSC_VER) || defined(__clang__)) +// Disabling optimizations and falling back to plain C here causes problems on newer MSVC. +#elif HAVE_SSE2 && (defined(_WIN64) || !defined(_MSC_VER) || _MSC_VER > 1900 || defined(__clang__)) #include "simd/v256_intrinsics_x86.h" #else #include "simd/v256_intrinsics.h" From d50a7a5394edcac6efc7e4b918a48d70614c0b20 Mon Sep 17 00:00:00 2001 From: Jeremy Andrews Date: Tue, 12 Jul 2022 01:39:20 -0500 Subject: [PATCH 4/4] Issue #1956 - Fix symbol visibility issue more elegantly. All it needed was __declspec(dllexport) on the function I was copy/pasting all over the place... --- dom/media/webrtc/MediaTrackConstraints.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dom/media/webrtc/MediaTrackConstraints.cpp b/dom/media/webrtc/MediaTrackConstraints.cpp index 42582e3c29..ffa2e7e853 100644 --- a/dom/media/webrtc/MediaTrackConstraints.cpp +++ b/dom/media/webrtc/MediaTrackConstraints.cpp @@ -6,6 +6,7 @@ #include "MediaTrackConstraints.h" #include "mozilla/dom/MediaStreamTrackBinding.h" #include "mozilla/Unused.h" +#include "mozilla/Types.h" #include #include @@ -36,7 +37,7 @@ NormalizedConstraintSet::Range::SetFrom(const ConstrainRange& aOther) // The Range code works surprisingly well for bool, except when averaging ideals. template<> -bool +bool MOZ_EXPORT NormalizedConstraintSet::Range::Merge(const Range& aOther) { if (!Intersects(aOther)) { return false;