From 3623424b1031e54f55f3cb9e8ea09412858b1fb0aa6593451caa332270478605 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Tue, 16 Jul 2024 07:10:33 +0000 Subject: [PATCH] - Mozilla Firefox 128.0 https://www.mozilla.org/en-US/firefox/128.0/releasenotes MFSA 2024-29 (bsc#1226316) * CVE-2024-6605 (bmo#1836786) Firefox Android missed activation delay to prevent tapjacking * CVE-2024-6606 (bmo#1902305) Out-of-bounds read in clipboard component * CVE-2024-6607 (bmo#1694513) Leaving pointerlock by pressing the escape key could be prevented * CVE-2024-6608 (bmo#1743329) Cursor could be moved out of the viewport using pointerlock. * CVE-2024-6609 (bmo#1839258) Memory corruption in NSS * CVE-2024-6610 (bmo#1883396) Form validation popups could block exiting full-screen mode * CVE-2024-6600 (bmo#1888340) Memory corruption in WebGL API * CVE-2024-6601 (bmo#1890748) Race condition in permission assignment * CVE-2024-6602 (bmo#1895032) Memory corruption in NSS * CVE-2024-6603 (bmo#1895081) Memory corruption in thread creation * CVE-2024-6611 (bmo#1844827) Incorrect handling of SameSite cookies * CVE-2024-6612 (bmo#1880374) CSP violation leakage when using devtools * CVE-2024-6613 (bmo#1900523) Incorrect listing of stack frames OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=1162 --- MozillaFirefox.changes | 47 ++ MozillaFirefox.spec | 31 +- create-tar.sh | 103 ++- firefox-127.0.2.source.tar.xz | 3 - firefox-127.0.2.source.tar.xz.asc | 16 - firefox-128.0.source.tar.xz | 3 + firefox-128.0.source.tar.xz.asc | 16 + l10n-127.0.2.tar.xz | 3 - l10n-128.0.tar.xz | 3 + mozilla-bmo1504834-part1.patch | 52 +- mozilla-bmo1898476.patch | 401 ++++++++++ mozilla-bmo1907511.patch | 29 + mozilla-rust-disable-future-incompat.patch | 17 +- mozilla-silence-no-return-type.patch | 868 +++++---------------- tar_stamps | 8 +- 15 files changed, 838 insertions(+), 762 deletions(-) delete mode 100644 firefox-127.0.2.source.tar.xz delete mode 100644 firefox-127.0.2.source.tar.xz.asc create mode 100644 firefox-128.0.source.tar.xz create mode 100644 firefox-128.0.source.tar.xz.asc delete mode 100644 l10n-127.0.2.tar.xz create mode 100644 l10n-128.0.tar.xz create mode 100644 mozilla-bmo1898476.patch create mode 100644 mozilla-bmo1907511.patch diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 0ddf954..2a49628 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,50 @@ +------------------------------------------------------------------- +Mon Jul 8 20:25:10 UTC 2024 - Wolfgang Rosenauer + +- Mozilla Firefox 128.0 + https://www.mozilla.org/en-US/firefox/128.0/releasenotes + MFSA 2024-29 (bsc#1226316) + * CVE-2024-6605 (bmo#1836786) + Firefox Android missed activation delay to prevent tapjacking + * CVE-2024-6606 (bmo#1902305) + Out-of-bounds read in clipboard component + * CVE-2024-6607 (bmo#1694513) + Leaving pointerlock by pressing the escape key could be + prevented + * CVE-2024-6608 (bmo#1743329) + Cursor could be moved out of the viewport using pointerlock. + * CVE-2024-6609 (bmo#1839258) + Memory corruption in NSS + * CVE-2024-6610 (bmo#1883396) + Form validation popups could block exiting full-screen mode + * CVE-2024-6600 (bmo#1888340) + Memory corruption in WebGL API + * CVE-2024-6601 (bmo#1890748) + Race condition in permission assignment + * CVE-2024-6602 (bmo#1895032) + Memory corruption in NSS + * CVE-2024-6603 (bmo#1895081) + Memory corruption in thread creation + * CVE-2024-6611 (bmo#1844827) + Incorrect handling of SameSite cookies + * CVE-2024-6612 (bmo#1880374) + CSP violation leakage when using devtools + * CVE-2024-6613 (bmo#1900523) + Incorrect listing of stack frames + * CVE-2024-6614 (bmo#1902983) + Incorrect listing of stack frames + * CVE-2024-6604 (bmo#1748105, bmo#1837550, bmo#1884266) + Memory safety bugs fixed in Firefox 128, Firefox ESR 115.13, + and Thunderbird 115.13 + * CVE-2024-6615 (bmo#1892875, bmo#1894428, bmo#1898364) + Memory safety bugs fixed in Firefox 128 +- requires + NSS 3.101.1 + rust >= 1.78 +- update create-tar.sh +- add wayland upstream fixes (bmo#1907511, bmo#1898476) + (mozilla-bmo1898476.patch and mozilla-bmo1907511.patch) + ------------------------------------------------------------------- Mon Jul 1 09:44:55 UTC 2024 - Andrei Dziahel diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index 884534f..e70860c 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -28,9 +28,9 @@ # orig_suffix b3 # major 69 # mainver %%major.99 -%define major 127 -%define mainver %major.0.2 -%define orig_version 127.0.2 +%define major 128 +%define mainver %major.0 +%define orig_version 128.0 %define orig_suffix %{nil} %define update_channel release %define branding 1 @@ -45,7 +45,7 @@ %bcond_with only_print_mozconfig # define if ccache should be used or not -%define useccache 0 +%define useccache 1 # SLE-12 doesn't have this macro %{!?_rpmmacrodir: %global _rpmmacrodir %{_rpmconfigdir}/macros.d} @@ -103,8 +103,8 @@ BuildRequires: gcc13-c++ %else BuildRequires: gcc-c++ %endif -BuildRequires: cargo1.76 -BuildRequires: rust1.76 +BuildRequires: cargo1.78 +BuildRequires: rust1.78 %if 0%{useccache} != 0 BuildRequires: ccache %endif @@ -114,7 +114,7 @@ BuildRequires: libiw-devel BuildRequires: libproxy-devel BuildRequires: makeinfo BuildRequires: mozilla-nspr-devel >= 4.35 -BuildRequires: mozilla-nss-devel >= 3.100 +BuildRequires: mozilla-nss-devel >= 3.101.1 BuildRequires: nasm >= 2.14 BuildRequires: nodejs >= 12.22.12 %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 @@ -124,11 +124,14 @@ BuildRequires: python39 BuildRequires: python39-curses BuildRequires: python39-devel %else -%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150600 +%if 0%{?sle_version} > 150000 && 0%{?sle_version} <= 150600 +BuildRequires: nodejs12 >= 12.22.12 BuildRequires: python39 BuildRequires: python39-curses BuildRequires: python39-devel %else +# ALP +BuildRequires: nodejs >= 12.22.12 BuildRequires: python3 >= 3.7 BuildRequires: python3-curses BuildRequires: python3-devel @@ -146,11 +149,7 @@ BuildRequires: zip %if 0%{?suse_version} < 1550 BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1 %endif -%if (0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000) -BuildRequires: clang6-devel -%else -BuildRequires: clang-devel >= 5 -%endif +BuildRequires: clang15-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22 BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0 @@ -196,7 +195,7 @@ Source9: firefox.js Source11: firefox.1 Source12: mozilla-get-app-id Source13: spellcheck.js -Source14: https://github.com/openSUSE/firefox-scripts/raw/9b77cf0/create-tar.sh +Source14: https://github.com/openSUSE/firefox-scripts/raw/913fab1/create-tar.sh Source15: firefox-appdata.xml Source16: %{name}.changes Source17: firefox-search-provider.ini @@ -229,6 +228,8 @@ Patch21: svg-rendering.patch Patch22: mozilla-partial-revert-1768632.patch Patch23: mozilla-rust-disable-future-incompat.patch Patch24: mozilla-bmo1822730.patch +Patch25: mozilla-bmo1898476.patch +Patch26: mozilla-bmo1907511.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -580,8 +581,10 @@ grep amazondotcom dist/firefox/browser/omni.ja # copy tree into RPM_BUILD_ROOT mkdir -p %{buildroot}%{progdir} cp -rf $RPM_BUILD_DIR/obj/dist/%{srcname}/* %{buildroot}%{progdir} +%if %localize mkdir -p %{buildroot}%{progdir}/browser/extensions cp -rf $RPM_BUILD_DIR/langpacks_artifacts/* %{buildroot}%{progdir}/browser/extensions/ +%endif mkdir -p %{buildroot}%{progdir}/distribution/extensions mkdir -p %{buildroot}%{progdir}/browser/defaults/preferences/ # renaming executables (for regular vs. ESR) diff --git a/create-tar.sh b/create-tar.sh index 9114700..a304722 100644 --- a/create-tar.sh +++ b/create-tar.sh @@ -78,9 +78,13 @@ function set_internal_variables() { SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" PREV_SOURCE_TARBALL="$PRODUCT-$PREV_VERSION$PREV_VERSION_SUFFIX.source.tar.xz" + if [ "$PRODUCT" = "thunderbird" ]; then + TB_LOCALE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.strings_all.tar.zst" + fi FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source" FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/%s/candidates" LOCALES_URL="https://product-details.mozilla.org/1.0/l10n" + FF_L10N_MONOREPO="https://github.com/mozilla-l10n/firefox-l10n" PRODUCT_URL="https://product-details.mozilla.org/1.0" ALREADY_EXTRACTED_LOCALES_FILE=0 } @@ -134,7 +138,7 @@ function get_source_stamp() { local BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1; local REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp) local SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo) - local TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid) + TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid) echo "Extending $TAR_STAMP with:" echo "RELEASE_REPO=${SOURCE_REPO}" echo "RELEASE_TAG=${REV}" @@ -302,10 +306,18 @@ function check_what_to_do_with_source_tarballs() { printf "%-40s: %s\n" "$ff" "$(check_tarball_source $ff)" done + if [ "$PRODUCT" = "thunderbird" ]; then + printf "%-40s: %s\n" "$TB_LOCALE_TARBALL" "$(check_tarball_source $TB_LOCALE_TARBALL)" + fi + ask_cont_abort_question "Is this ok?" || exit 0 } function check_what_to_do_with_locales_tarballs() { + if [ -e "$TB_LOCALE_TARBALL" ]; then + return; + fi + LOCALES_CHANGED=1 extract_locales_file @@ -364,6 +376,10 @@ function download_upstream_source_tarballs() { download_release_or_candidate_file "$SOURCE_TARBALL" download_release_or_candidate_file "$SOURCE_TARBALL.asc" + if [ "$PRODUCT" = "thunderbird" ]; then + download_release_or_candidate_file "$TB_LOCALE_TARBALL" + fi + # we might have an upstream archive already and can skip the checkout if [ -e "$SOURCE_TARBALL" ]; then get_source_stamp "$BUILD_ID" @@ -413,7 +429,7 @@ function clone_and_repackage_sources() { # get repo and source stamp local REV=$(hg -R . parent --template="{node|short}\n") local SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/https:/") - local TIMESTAMP=$(date +%Y%m%d%H%M%S) + TIMESTAMP=$(date +%Y%m%d%H%M%S) if [ "$PRODUCT" = "thunderbird" ]; then pushd comm || exit 1 @@ -447,13 +463,18 @@ function create_locales_tarballs() { exit 0 fi - if [ "$LOCALES_CHANGED" -ne 0 ]; then - clone_and_repackage_locales - elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then - # Locales did not change, but the old tar-ball is in this directory - # Simply rename it: - echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz" - mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz" + if [ -e "$TB_LOCALE_TARBALL" ]; then + echo "Repackaging upstream lang-tarball." + zstd -dcf "$TB_LOCALE_TARBALL" | xz > "l10n-$VERSION$VERSION_SUFFIX.tar.xz" + else + if [ "$LOCALES_CHANGED" -ne 0 ]; then + clone_and_repackage_locales + elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then + # Locales did not change, but the old tar-ball is in this directory + # Simply rename it: + echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz" + mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz" + fi fi } @@ -480,10 +501,6 @@ function clone_and_repackage_locales() { FF_L10N_BASE="l10n_ff" fi - test ! -d $FF_L10N_BASE && mkdir $FF_L10N_BASE - # No-op, if we are building FF: - test ! -d $FINAL_L10N_BASE && mkdir $FINAL_L10N_BASE - # This is only relevant for Thunderbird-builds # Here, the relevant directories we need to copy from FF and from TB # are specified in a python-file in the tarball @@ -492,33 +509,42 @@ function clone_and_repackage_locales() { tb_locale_template=$(get_locales_directories "COMM_STRINGS_PATTERNS") echo "Fetching Browser locales..." - jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | \ - while read -r locale changeset ; do - case $locale in - ja-JP-mac|en-US) - ;; - *) - echo "reading changeset information for $locale" - echo "fetching $locale changeset $changeset ..." - if [ -d "$FF_L10N_BASE/$locale/.hg" ]; then - pushd "$FF_L10N_BASE/$locale" || exit 1 - hg pull || exit 1 - popd || exit 1 - else - hg clone "https://hg.mozilla.org/l10n-central/$locale" "$FF_L10N_BASE/$locale" || exit 1 - fi - [ "$RELEASE_TAG" == "default" ] || hg -R "$FF_L10N_BASE/$locale" up -C -r "$changeset" || exit 1 + if [ -d "$FF_L10N_BASE/.git" ]; then + pushd "$FF_L10N_BASE/" || exit 1 + git fetch -a || exit 1 + popd || exit 1 + else + git clone "$FF_L10N_MONOREPO" "$FF_L10N_BASE" || exit 1 + fi + # Currently all locales show the same changeset-hash, as they moved to a monorepo. We just take the first one. + changeset=$(jq -r 'to_entries[0]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | cut -d " " -f 2) + [ "$RELEASE_TAG" == "default" ] || git -C "$FF_L10N_BASE/" switch --detach "$changeset" || exit 1 - # If we are doing TB, we have to merge both l10n-repos - if [ "$PRODUCT" = "thunderbird" ] && test -d "$TB_L10N_BASE/$locale/" ; then + # No-op, if we are building FF: + test ! -d $FINAL_L10N_BASE && mkdir $FINAL_L10N_BASE + + # If we are doing TB, we have to merge both l10n-repos + if [ "$PRODUCT" = "thunderbird" ] && test -d "$TB_L10N_BASE/$locale/" ; then + jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | \ + while read -r locale changeset ; do + case $locale in + ja-JP-mac|en-US) + ;; + *) create_and_copy_locales "$locale" "$FF_L10N_BASE" "$ff_locale_template" "$FINAL_L10N_BASE" create_and_copy_locales "$locale" "$TB_L10N_BASE" "$tb_locale_template" "$FINAL_L10N_BASE" - fi - ;; - esac - done + ;; + esac + done + fi + echo "creating l10n archive..." local TAR_FLAGS="--exclude-vcs" + # For reproducable tarballs + # Convert TIMESTAMP to ISO-format, so tar can understand it, then set mtime to it + local MTIME=$(python3 -c "from datetime import datetime; print(datetime.strptime(${TIMESTAMP}, '%Y%m%d%H%M%S').isoformat())") + TAR_FLAGS="$TAR_FLAGS --sort=name --format=posix --pax-option=delete=atime,delete=ctime,exthdr.name=%d/PaxHeaders/%f --numeric-owner --owner=0 --group=0 --mode=go+u,go-w --clamp-mtime --mtime=$MTIME" + if [ "$PRODUCT" = "thunderbird" ]; then TAR_FLAGS="$TAR_FLAGS --exclude=suite" fi @@ -537,6 +563,13 @@ function clean_up_old_tarballs() { rm "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" fi fi + # If we downloaded the upstream zstd-tarball and repackaged it, remove it now + if [ -f "$TB_LOCALE_TARBALL" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then + echo "" + echo "Deleting old sources tarball $TB_LOCALE_TARBALL" + ask_cont_abort_question "Is this ok?" || exit 0 + rm "$TB_LOCALE_TARBALL" + fi } main "$@" diff --git a/firefox-127.0.2.source.tar.xz b/firefox-127.0.2.source.tar.xz deleted file mode 100644 index a7cb2f9..0000000 --- a/firefox-127.0.2.source.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b7b2a8c3def52fcab13c48769645d0e963902ee916e4f3d2a0098796e73e3e8 -size 554998504 diff --git a/firefox-127.0.2.source.tar.xz.asc b/firefox-127.0.2.source.tar.xz.asc deleted file mode 100644 index fe2e03c..0000000 --- a/firefox-127.0.2.source.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmZ53acACgkQ4207E/PZ -MnTIVA/+JGtp43X/EziTH0m8xTRrLKE9v7EoVTC88Tl8zOuEyVj+vEKyHmKTHB3n -Fg+J+BmD/xZU9Tw3g03XehmkC9qqVyNyDq7iCFt/NryHKcpu3DXZQvMjyAsWEwTy -++648rOs5sXujRt9gl90cZC1Zrk23f5dvImNUOGharwnkmQtb3z1iH0n97jd70kB -pkb63/NAvLK1KGv381H0BPqDM91lYggQ9fgbsz40TjqZAOaai8oXXvr7On5wWjX0 -8e4f7hmqEFR+z9I2Pv7j4R9V5RJBPDO4CxYqMWMiZlx8GLLheo21kql0oCJXmFtg -9HlXwL/0w3LqxuZJ5emmNYnYytmykCQFpL6n4gRi7c8otgMr8jr4JMb+bjwiWQab -xv/ubvZJtD/xvsDAcnDpAsDk7LziKQWLYUI4KX6lqZ/TpyaqCcwXwKOoUwU5oe+L -h7R2Nk5+YXvr8S0OTGRbcyoN0RGvpQnc8AQXSDVKwDUDAL9/YlxKVHqTl7zVA/H5 -5trNcVNOz/NGrAhKjWa5ChHCG0b2000/DXsk3fOT13RCdv+hPOpkD2VTpYoGdcem -NfFRNIfT579MTDWkrVzeQBZ0vdp9X8rIDhzt53Cg5h9xDMot6hSzACLQPVwKcVx9 -vU9qmv5iY9qPzMrWgtvNan9ZR/oeKwnZlB3oeJpfLZNKMJuABtk= -=qm9q ------END PGP SIGNATURE----- diff --git a/firefox-128.0.source.tar.xz b/firefox-128.0.source.tar.xz new file mode 100644 index 0000000..ede7ee0 --- /dev/null +++ b/firefox-128.0.source.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65271ffefb235ea1e162a081f2074a0f06fce27b2f613f573c126ba8eef95172 +size 560761840 diff --git a/firefox-128.0.source.tar.xz.asc b/firefox-128.0.source.tar.xz.asc new file mode 100644 index 0000000..1663a52 --- /dev/null +++ b/firefox-128.0.source.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmaG12gACgkQ4207E/PZ +MnQ/1xAAzvCP0A4oOfbmmtnOA1QQ5NvUCETU6BGo4oAy3LhYM66ZThKG9KF5A9g2 +GVQx+19W0Z5BNtgGLxzujWLxPTsxUdgCF65RekrN6AQlTtvXvLBn5WaExK4pHCIT +R14RaPumLPCZwL0HaEo4NvZr48AXXOFm9pvgQ4ZhWf2tfRpm1qNp1UIAY2jtGna7 +o4tVBEHcydqF6BLrmHf5gbKrifW1nL75SBFVoBNESRocdTFENt9RMQgifwqX/f0d +vJ+Osu2gd/J4thwailXNIy9TGdW1lEi5TgS3UdNmNpZVYb73JnhcfwyIjI9g93NZ +wKbcu/9PEJjNe8XnADA6ULr8Nth6zxfsJhdz60AVoaP6mGApPGx6M1ezW8b7YxcI +FxJ2/qv5ExKiXENlISYI+cih/VWuN8nKPtWyCb2whFeAEnNmIlCs+j6hN/c8haZS +iQdThG5EqmjCQJyz3AufhULfTmINJk/ABYdpitHfj5EDfe9ggxANRkLvJEZ1ZZTP +85bGWlCMg8Tq6/CWHTWvJvytQCHrQci+M/y/4pneaBLXzv3p8Q5e1OOuxzuGA7rB +yAW5DnCTK+4wdfgHzmJL4Rjom0PeJZBVHJEljqV1THbTrs4MWuNFJLu2lXNDmAbx +Ty1ZAqK4HliEDRh6r70sZY/ecg+UzSyIGqlDzu7RBOjtg4A15vo= +=wybs +-----END PGP SIGNATURE----- diff --git a/l10n-127.0.2.tar.xz b/l10n-127.0.2.tar.xz deleted file mode 100644 index 7164b27..0000000 --- a/l10n-127.0.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68c4f9dc1ae31acaf51cde83abafad3f308211c260b398b2ac58e390344a4119 -size 31787988 diff --git a/l10n-128.0.tar.xz b/l10n-128.0.tar.xz new file mode 100644 index 0000000..b1ea334 --- /dev/null +++ b/l10n-128.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbeeef6964b694c3c9d905856eb02e0ce3a13ce2047d09b5541b5e45f2ed8c1b +size 34286352 diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch index 3f97f0b..49cf5cf 100644 --- a/mozilla-bmo1504834-part1.patch +++ b/mozilla-bmo1504834-part1.patch @@ -1,11 +1,16 @@ # HG changeset patch -# Parent 9fcbd287056a40084b1e679f787bf683b291f323 +# Parent 125a78208d2cef58191a0328ffe894dd14c6b146 Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834 diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp --- a/gfx/2d/DrawTargetSkia.cpp +++ b/gfx/2d/DrawTargetSkia.cpp -@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co +@@ -151,17 +151,18 @@ static IntRect CalculateSurfaceBounds(co + if (!sampledBounds.ToIntRect(&bounds)) { + return surfaceBounds; + } + + return surfaceBounds.Intersect(bounds); } static const int kARGBAlphaOffset = @@ -15,10 +20,20 @@ diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, const int32_t aStride, SurfaceFormat aFormat) { + if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { + return true; + } + // We should've initialized the data to be opaque already + // On debug builds, verify that this is actually true. diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h --- a/gfx/2d/Types.h +++ b/gfx/2d/Types.h -@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t { +@@ -84,28 +84,21 @@ enum class SurfaceFormat : int8_t { + YUV422, // Single plane YUV 4:2:2 interleaved as Y`0 Cb Y`1 Cr. + HSV, + Lab, + Depth, + // This represents the unknown format. UNKNOWN, // TODO: Replace uses with Maybe. @@ -40,10 +55,20 @@ diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h // The following values are OS and endian-independent synonyms. // + // TODO(aosmond): When everything blocking bug 1581828 has been resolved, we + // can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms. + OS_RGBA = A8R8G8B8_UINT32, + OS_RGBX = X8R8G8B8_UINT32 + }; diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc --- a/gfx/skia/skia/modules/skcms/skcms.cc +++ b/gfx/skia/skia/modules/skcms/skcms.cc -@@ -30,6 +30,8 @@ +@@ -26,16 +26,18 @@ + // it'd be a lot slower. But we want all those headers included so we + // can use their features after runtime checks later. + #include + #include + #include #include #include #endif @@ -51,8 +76,18 @@ diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/ + #define SKCMS_PORTABLE #endif - static bool runtime_cpu_detection = true; -@@ -324,20 +326,28 @@ enum { + using namespace skcms_private; + + static bool sAllowRuntimeCPUDetection = true; + + void skcms_DisableRuntimeCPUDetection() { + sAllowRuntimeCPUDetection = false; +@@ -319,30 +321,38 @@ enum { + skcms_Signature_sf32 = 0x73663332, + // XYZ is also a PCS signature, so it's defined in skcms.h + // skcms_Signature_XYZ = 0x58595A20, + }; + static uint16_t read_big_u16(const uint8_t* ptr) { uint16_t be; memcpy(&be, ptr, sizeof(be)); @@ -87,3 +122,8 @@ diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/ #endif } + static int32_t read_big_i32(const uint8_t* ptr) { + return (int32_t)read_big_u32(ptr); + } + + static float read_big_fixed(const uint8_t* ptr) { diff --git a/mozilla-bmo1898476.patch b/mozilla-bmo1898476.patch new file mode 100644 index 0000000..c90ccb0 --- /dev/null +++ b/mozilla-bmo1898476.patch @@ -0,0 +1,401 @@ + +# HG changeset patch +# User stransky +# Date 1720609192 0 +# Node ID f9323daf7abeb19f69ac5762a0a442c0dc15636e +# Parent 5afadee4e18fc5779d789d9371a3d2d67a29d1da +Bug 1898476 [Wayland] Move MozContainerSurfaceLock from MozContainerWayland to MozContainerSurfaceLock module r=emilio + +Differential Revision: https://phabricator.services.mozilla.com/D214883 + +diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp +new file mode 100644 +--- /dev/null ++++ b/widget/gtk/MozContainerSurfaceLock.cpp +@@ -0,0 +1,31 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#include "MozContainerSurfaceLock.h" ++#include "MozContainer.h" ++#include "WidgetUtilsGtk.h" ++ ++using namespace mozilla::widget; ++ ++MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) { ++#ifdef MOZ_WAYLAND ++ mContainer = aContainer; ++ if (GdkIsWaylandDisplay()) { ++ // mSurface can be nullptr if we lock hidden MozContainer and ++ // that's correct, MozContainer is still locked. ++ mSurface = moz_container_wayland_surface_lock(aContainer); ++ } ++#endif ++} ++ ++MozContainerSurfaceLock::~MozContainerSurfaceLock() { ++#ifdef MOZ_WAYLAND ++ if (GdkIsWaylandDisplay()) { ++ moz_container_wayland_surface_unlock(mContainer, &mSurface); ++ } ++#endif ++} ++ ++struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; } +diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h +new file mode 100644 +--- /dev/null ++++ b/widget/gtk/MozContainerSurfaceLock.h +@@ -0,0 +1,28 @@ ++/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ ++ ++#ifndef widget_gtk_MozContainerSurfaceLock_h ++#define widget_gtk_MozContainerSurfaceLock_h ++ ++struct wl_surface; ++struct _MozContainer; ++typedef struct _MozContainer MozContainer; ++ ++class MozContainerSurfaceLock { ++ public: ++ explicit MozContainerSurfaceLock(MozContainer* aContainer); ++ ~MozContainerSurfaceLock(); ++ ++ // wl_surface can be nullptr if we lock hidden MozContainer. ++ struct wl_surface* GetSurface(); ++ ++ private: ++#ifdef MOZ_WAYLAND ++ MozContainer* mContainer = nullptr; ++#endif ++ struct wl_surface* mSurface = nullptr; ++}; ++ ++#endif // widget_gtk_MozContainerSurfaceLock_h +diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp +--- a/widget/gtk/MozContainerWayland.cpp ++++ b/widget/gtk/MozContainerWayland.cpp +@@ -82,33 +82,16 @@ using namespace mozilla; + using namespace mozilla::widget; + + static bool moz_container_wayland_surface_create_locked( + const MutexAutoLock& aProofOfLock, MozContainer* container); + static void moz_container_wayland_set_opaque_region_locked( + const MutexAutoLock& aProofOfLock, MozContainer* container, + const LayoutDeviceIntRegion&); + +-// Lock mozcontainer and get wayland surface of it. You need to pair with +-// moz_container_wayland_surface_unlock() even +-// if moz_container_wayland_surface_lock() fails and returns nullptr. +-static struct wl_surface* moz_container_wayland_surface_lock( +- MozContainer* container); +-static void moz_container_wayland_surface_unlock(MozContainer* container, +- struct wl_surface** surface); +- +-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) { +- mContainer = aContainer; +- mSurface = moz_container_wayland_surface_lock(aContainer); +-} +-MozContainerSurfaceLock::~MozContainerSurfaceLock() { +- moz_container_wayland_surface_unlock(mContainer, &mSurface); +-} +-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; } +- + // Invalidate gtk wl_surface to commit changes to wl_subsurface. + // wl_subsurface changes are effective when parent surface is commited. + static void moz_container_wayland_invalidate(MozContainer* container) { + LOGWAYLAND("moz_container_wayland_invalidate [%p]\n", + (void*)moz_container_get_nsWindow(container)); + + GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container)); + if (!window) { +diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h +--- a/widget/gtk/MozContainerWayland.h ++++ b/widget/gtk/MozContainerWayland.h +@@ -8,16 +8,17 @@ + #ifndef __MOZ_CONTAINER_WAYLAND_H__ + #define __MOZ_CONTAINER_WAYLAND_H__ + + #include + #include + #include + #include "mozilla/Mutex.h" + #include "WindowSurface.h" ++#include "MozContainerSurfaceLock.h" + + /* + * MozContainer + * + * This class serves three purposes in the nsIWidget implementation. + * + * - It provides objects to receive signals from GTK for events on native + * windows. +@@ -56,25 +57,22 @@ struct MozContainerWayland { + mozilla::Mutex container_lock{"MozContainerWayland::container_lock"}; + }; + + struct _MozContainer; + struct _MozContainerClass; + typedef struct _MozContainer MozContainer; + typedef struct _MozContainerClass MozContainerClass; + +-class MozContainerSurfaceLock { +- MozContainer* mContainer; +- struct wl_surface* mSurface; +- +- public: +- explicit MozContainerSurfaceLock(MozContainer* aContainer); +- ~MozContainerSurfaceLock(); +- struct wl_surface* GetSurface(); +-}; ++// Lock mozcontainer and get wayland surface of it. You need to pair with ++// moz_container_wayland_surface_unlock() even ++// if moz_container_wayland_surface_lock() fails and returns nullptr. ++struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container); ++void moz_container_wayland_surface_unlock(MozContainer* container, ++ struct wl_surface** surface); + + void moz_container_wayland_map(GtkWidget*); + gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*); + void moz_container_wayland_size_allocate(GtkWidget*, GtkAllocation*); + void moz_container_wayland_unmap(GtkWidget*); + + struct wl_egl_window* moz_container_wayland_get_egl_window( + MozContainer* container, double scale); +diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build +--- a/widget/gtk/moz.build ++++ b/widget/gtk/moz.build +@@ -28,16 +28,17 @@ if CONFIG["MOZ_WAYLAND"]: + if CONFIG["MOZ_ENABLE_VAAPI"]: + DIRS += ["vaapitest"] + + if CONFIG["MOZ_ENABLE_V4L2"]: + DIRS += ["v4l2test"] + + EXPORTS += [ + "MozContainer.h", ++ "MozContainerSurfaceLock.h", + "nsGTKToolkit.h", + "nsGtkUtils.h", + "nsImageToPixbuf.h", + ] + + EXPORTS.mozilla += [ + "GfxInfo.h", + "GfxInfoUtils.h", +@@ -66,16 +67,17 @@ UNIFIED_SOURCES += [ + "DMABufLibWrapper.cpp", + "DMABufSurface.cpp", + "GfxInfo.cpp", + "gtk3drawing.cpp", + "GtkCompositorWidget.cpp", + "IMContextWrapper.cpp", + "InProcessGtkCompositorWidget.cpp", + "MozContainer.cpp", ++ "MozContainerSurfaceLock.cpp", + "MPRISServiceHandler.cpp", + "NativeKeyBindings.cpp", + "NativeMenuGtk.cpp", + "NativeMenuSupport.cpp", + "nsApplicationChooser.cpp", + "nsAppShell.cpp", + "nsBidiKeyboard.cpp", + "nsClipboard.cpp", +@@ -109,16 +111,17 @@ if CONFIG["MOZ_WAYLAND"]: + UNIFIED_SOURCES += [ + "MozContainerWayland.cpp", + "nsClipboardWayland.cpp", + "nsWaylandDisplay.cpp", + "WaylandBuffer.cpp", + "WindowSurfaceWaylandMultiBuffer.cpp", + ] + EXPORTS.mozilla.widget += [ ++ "MozContainerSurfaceLock.h", + "MozContainerWayland.h", + "nsWaylandDisplay.h", + "WaylandBuffer.h", + ] + + if CONFIG["MOZ_X11"]: + UNIFIED_SOURCES += [ + "nsClipboardX11.cpp", + + +# HG changeset patch +# User stransky +# Date 1720609193 0 +# Node ID a264ff9e9f6f87ca0520a884b29c4be90001533e +# Parent f9323daf7abeb19f69ac5762a0a442c0dc15636e +Bug 1898476 [Wayland] Provide surface lock by GtkCompositorWidget r=emilio + +Depends on D214883 + +Differential Revision: https://phabricator.services.mozilla.com/D214884 + +diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp +--- a/widget/gtk/GtkCompositorWidget.cpp ++++ b/widget/gtk/GtkCompositorWidget.cpp +@@ -206,10 +206,14 @@ void GtkCompositorWidget::SetRenderingSu + } + + #ifdef MOZ_LOGGING + bool GtkCompositorWidget::IsPopup() { + return mWidget ? mWidget->IsPopup() : false; + } + #endif + ++UniquePtr GtkCompositorWidget::LockSurface() { ++ return mWidget->LockSurface(); ++} ++ + } // namespace widget + } // namespace mozilla +diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h +--- a/widget/gtk/GtkCompositorWidget.h ++++ b/widget/gtk/GtkCompositorWidget.h +@@ -5,16 +5,18 @@ + + #ifndef widget_gtk_GtkCompositorWidget_h + #define widget_gtk_GtkCompositorWidget_h + + #include "GLDefs.h" + #include "mozilla/DataMutex.h" + #include "mozilla/widget/CompositorWidget.h" + #include "WindowSurfaceProvider.h" ++#include "mozilla/UniquePtr.h" ++#include "MozContainerSurfaceLock.h" + + class nsIWidget; + class nsWindow; + + namespace mozilla { + + namespace layers { + class NativeLayerRootWayland; +@@ -91,16 +93,18 @@ class GtkCompositorWidget : public Compo + RefPtr GetNativeLayerRoot() override; + #endif + + // PlatformCompositorWidgetDelegate Overrides + + void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override; + GtkCompositorWidget* AsGtkCompositorWidget() override { return this; } + ++ UniquePtr LockSurface(); ++ + private: + #if defined(MOZ_WAYLAND) + void ConfigureWaylandBackend(); + #endif + #if defined(MOZ_X11) + void ConfigureX11Backend(Window aXWindow, bool aShaped); + #endif + #ifdef MOZ_LOGGING +diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp ++++ b/widget/gtk/nsWindow.cpp +@@ -10271,8 +10271,15 @@ void nsWindow::SetDragSource(GdkDragCont + mSourceDragContext = aSourceDragContext; + if (IsPopup() && + (widget::GdkIsWaylandDisplay() || widget::IsXWaylandProtocol())) { + if (auto* menuPopupFrame = GetMenuPopupFrame(GetFrame())) { + menuPopupFrame->SetIsDragSource(!!aSourceDragContext); + } + } + } ++ ++UniquePtr nsWindow::LockSurface() { ++ if (mIsDestroyed) { ++ return nullptr; ++ } ++ return MakeUnique(mContainer); ++} +diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h +--- a/widget/gtk/nsWindow.h ++++ b/widget/gtk/nsWindow.h +@@ -8,16 +8,17 @@ + #ifndef __nsWindow_h__ + #define __nsWindow_h__ + + #include + #include + + #include "CompositorWidget.h" + #include "MozContainer.h" ++#include "MozContainerSurfaceLock.h" + #include "VsyncSource.h" + #include "mozilla/EventForwards.h" + #include "mozilla/Maybe.h" + #include "mozilla/RefPtr.h" + #include "mozilla/TouchEvents.h" + #include "mozilla/UniquePtr.h" + #include "mozilla/RWLock.h" + #include "mozilla/widget/WindowSurface.h" +@@ -416,16 +417,18 @@ class nsWindow final : public nsBaseWidg + static bool TitlebarUseShapeMask(); + bool IsRemoteContent() { return HasRemoteContent(); } + void NativeMoveResizeWaylandPopupCallback(const GdkRectangle* aFinalSize, + bool aFlippedX, bool aFlippedY); + static bool IsToplevelWindowTransparent(); + + static nsWindow* GetFocusedWindow(); + ++ mozilla::UniquePtr LockSurface(); ++ + #ifdef MOZ_WAYLAND + // Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow. + static void TransferFocusToWaylandWindow(nsWindow* aWindow); + void FocusWaylandWindow(const char* aTokenID); + + bool GetCSDDecorationOffset(int* aDx, int* aDy); + bool SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize); + void WaylandDragWorkaround(GdkEventButton* aEvent); + + +# HG changeset patch +# User stransky +# Date 1720609193 0 +# Node ID eb230ecdf8eb26a9ed340873b58fe7b71f94f8e8 +# Parent a264ff9e9f6f87ca0520a884b29c4be90001533e +Bug 1898476 [Wayland] Lock Wayland surface before Swap buffers in RenderCompositorEGL r=emilio + +Depends on D214884 + +Differential Revision: https://phabricator.services.mozilla.com/D214885 + +diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp +--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp ++++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp +@@ -149,16 +149,26 @@ RenderedFrameId RenderCompositorEGL::End + const auto width = right - left; + const auto height = bottom - top; + + bufferInvalid.OrWith( + gfx::IntRect(left, (GetBufferSize().height - bottom), width, height)); + } + gl()->SetDamage(bufferInvalid); + } ++ ++#ifdef MOZ_WIDGET_GTK ++ // Rendering on Wayland has to be atomic (buffer attach + commit) and ++ // wayland surface is also used by main thread so lock it before ++ // we paint at SwapBuffers(). ++ UniquePtr lock; ++ if (auto* gtkWidget = mWidget->AsGTK()) { ++ lock = gtkWidget->LockSurface(); ++ } ++#endif + gl()->SwapBuffers(); + return frameId; + } + + void RenderCompositorEGL::Pause() { DestroyEGLSurface(); } + + bool RenderCompositorEGL::Resume() { + if (kIsAndroid) { + diff --git a/mozilla-bmo1907511.patch b/mozilla-bmo1907511.patch new file mode 100644 index 0000000..21fc8f8 --- /dev/null +++ b/mozilla-bmo1907511.patch @@ -0,0 +1,29 @@ + +# HG changeset patch +# User stransky +# Date 1720807971 0 +# Node ID d8a0164db5db7090fd7549b03dd0391f7151649c +# Parent e243955016ffa880296b8d82cf531887dfb3ac22 +Bug 1907511 [Linux/X11] Check mWindow at GtkCompositorWidget::LockSurface() r=emilio + +Differential Revision: https://phabricator.services.mozilla.com/D216380 + +diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp +--- a/widget/gtk/GtkCompositorWidget.cpp ++++ b/widget/gtk/GtkCompositorWidget.cpp +@@ -207,13 +207,13 @@ void GtkCompositorWidget::SetRenderingSu + + #ifdef MOZ_LOGGING + bool GtkCompositorWidget::IsPopup() { + return mWidget ? mWidget->IsPopup() : false; + } + #endif + + UniquePtr GtkCompositorWidget::LockSurface() { +- return mWidget->LockSurface(); ++ return mWidget ? mWidget->LockSurface() : nullptr; + } + + } // namespace widget + } // namespace mozilla + diff --git a/mozilla-rust-disable-future-incompat.patch b/mozilla-rust-disable-future-incompat.patch index 272d96c..d7c432d 100644 --- a/mozilla-rust-disable-future-incompat.patch +++ b/mozilla-rust-disable-future-incompat.patch @@ -1,21 +1,16 @@ # HG changeset patch -# Parent 8c5b7b10f09b8cd6a8a6e0e29b92ec88cec6d4ce +# Parent 83a5e219b271976ee9dfa46b74ecc1c1c6d49f94 -diff --git a/Cargo.toml b/Cargo.toml ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -238,8 +238,14 @@ mio_0_8 = { package = "mio", git = "http +Index: firefox-128.0/Cargo.toml +=================================================================== +--- firefox-128.0.orig/Cargo.toml ++++ firefox-128.0/Cargo.toml +@@ -236,3 +236,8 @@ mio_0_8 = { package = "mio", git = "http # Patch `gpu-descriptor` 0.3.0 to remove unnecessary `allocator-api2` dep.: # Still waiting for the now-merged to be released. gpu-descriptor = { git = "https://github.com/zakarumych/gpu-descriptor", rev = "7b71a4e47c81903ad75e2c53deb5ab1310f6ff4d" } - - # Patch mio 0.6 to use winapi 0.3 and miow 0.3, getting rid of winapi 0.2. - # There is not going to be new version of mio 0.6, mio now being >= 0.7.11. - [patch.crates-io.mio] - path = "third_party/rust/mio-0.6.23" + +# Package code v0.1.4 uses code "that will be rejected by a future version of Rust" +# Shut up such messages for now to make the build succeed +[future-incompat-report] +frequency = "never" -+ diff --git a/mozilla-silence-no-return-type.patch b/mozilla-silence-no-return-type.patch index 1bb97ff..6bbf5d1 100644 --- a/mozilla-silence-no-return-type.patch +++ b/mozilla-silence-no-return-type.patch @@ -1,15 +1,11 @@ # HG changeset patch -# Parent 45b7287e677b0d0a47091f763c19d75955c291a1 +# Parent af0655f894a27ef60aa8438af7939a5ebc498df0 -diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h ---- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h -+++ b/gfx/skia/skia/include/codec/SkEncodedOrigin.h -@@ -36,16 +36,17 @@ static inline SkMatrix SkEncodedOriginTo - case kBottomRight_SkEncodedOrigin: return SkMatrix::MakeAll(-1, 0, w, 0, -1, h, 0, 0, 1); - case kBottomLeft_SkEncodedOrigin: return SkMatrix::MakeAll( 1, 0, 0, 0, -1, h, 0, 0, 1); - case kLeftTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, 1, 0, 0, 0, 0, 1); - case kRightTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, w, 1, 0, 0, 0, 0, 1); - case kRightBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, w, -1, 0, h, 0, 0, 1); +Index: firefox-128.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h ++++ firefox-128.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h +@@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo case kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, -1, 0, h, 0, 0, 1); } SK_ABORT("Unexpected origin"); @@ -17,20 +13,11 @@ diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/inclu } /** - * Return true if the encoded origin includes a 90 degree rotation, in which case the width - * and height of the source data are swapped relative to a correctly oriented destination. - */ - static inline bool SkEncodedOriginSwapsWidthHeight(SkEncodedOrigin origin) { - return origin >= kLeftTop_SkEncodedOrigin; -diff --git a/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h b/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h ---- a/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h -+++ b/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h -@@ -320,16 +320,17 @@ static inline bool GrTextureTypeHasRestr - return false; - case GrTextureType::kRectangle: - return true; - case GrTextureType::kExternal: - return true; +Index: firefox-128.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h ++++ firefox-128.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h +@@ -301,6 +301,7 @@ static inline bool GrTextureTypeHasRestr default: SK_ABORT("Unexpected texture type"); } @@ -38,20 +25,11 @@ diff --git a/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h b/gfx/skia/s } ////////////////////////////////////////////////////////////////////////////// - - /** - * Types used to describe format of vertices in arrays. - */ - enum GrVertexAttribType { -diff --git a/gfx/skia/skia/src/core/SkDescriptor.cpp b/gfx/skia/skia/src/core/SkDescriptor.cpp ---- a/gfx/skia/skia/src/core/SkDescriptor.cpp -+++ b/gfx/skia/skia/src/core/SkDescriptor.cpp -@@ -21,16 +21,17 @@ std::unique_ptr SkDescript - SkASSERT(length >= sizeof(SkDescriptor) && SkAlign4(length) == length); - void* allocation = ::operator new(length); - return std::unique_ptr(new (allocation) SkDescriptor{}); - } - +Index: firefox-128.0/gfx/skia/skia/src/core/SkDescriptor.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/core/SkDescriptor.cpp ++++ firefox-128.0/gfx/skia/skia/src/core/SkDescriptor.cpp +@@ -26,6 +26,7 @@ std::unique_ptr SkDescript void SkDescriptor::operator delete(void* p) { ::operator delete(p); } void* SkDescriptor::operator new(size_t) { SK_ABORT("Descriptors are created with placement new."); @@ -59,20 +37,11 @@ diff --git a/gfx/skia/skia/src/core/SkDescriptor.cpp b/gfx/skia/skia/src/core/Sk } void SkDescriptor::flatten(SkWriteBuffer& buffer) const { - buffer.writePad32(static_cast(this), this->fLength); - } - - void* SkDescriptor::addEntry(uint32_t tag, size_t length, const void* data) { - SkASSERT(tag); -diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeometry.h ---- a/gfx/skia/skia/src/core/SkGeometry.h -+++ b/gfx/skia/skia/src/core/SkGeometry.h -@@ -276,28 +276,30 @@ static inline bool SkCubicIsDegenerate(S - case SkCubicType::kLocalCusp: - case SkCubicType::kCuspAtInfinity: - return false; - case SkCubicType::kQuadratic: - case SkCubicType::kLineOrPoint: +Index: firefox-128.0/gfx/skia/skia/src/core/SkGeometry.h +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/core/SkGeometry.h ++++ firefox-128.0/gfx/skia/skia/src/core/SkGeometry.h +@@ -281,6 +281,7 @@ static inline bool SkCubicIsDegenerate(S return true; } SK_ABORT("Invalid SkCubicType"); @@ -80,12 +49,7 @@ diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeom } static inline const char* SkCubicTypeName(SkCubicType type) { - switch (type) { - case SkCubicType::kSerpentine: return "kSerpentine"; - case SkCubicType::kLoop: return "kLoop"; - case SkCubicType::kLocalCusp: return "kLocalCusp"; - case SkCubicType::kCuspAtInfinity: return "kCuspAtInfinity"; - case SkCubicType::kQuadratic: return "kQuadratic"; +@@ -293,6 +294,7 @@ static inline const char* SkCubicTypeNam case SkCubicType::kLineOrPoint: return "kLineOrPoint"; } SK_ABORT("Invalid SkCubicType"); @@ -93,20 +57,11 @@ diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeom } /** Returns the cubic classification. - - t[],s[] are set to the two homogeneous parameter values at which points the lines L & M - intersect with K, sorted from smallest to largest and oriented so positive values of the - implicit are on the "left" side. For a serpentine curve they are the inflection points. For a - loop they are the double point. For a local cusp, they are both equal and denote the cusp point. -diff --git a/gfx/skia/skia/src/core/SkTextBlob.cpp b/gfx/skia/skia/src/core/SkTextBlob.cpp ---- a/gfx/skia/skia/src/core/SkTextBlob.cpp -+++ b/gfx/skia/skia/src/core/SkTextBlob.cpp -@@ -199,16 +199,17 @@ unsigned SkTextBlob::ScalarsPerGlyph(Gly - } - - void SkTextBlob::operator delete(void* p) { - sk_free(p); - } +Index: firefox-128.0/gfx/skia/skia/src/core/SkTextBlob.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/core/SkTextBlob.cpp ++++ firefox-128.0/gfx/skia/skia/src/core/SkTextBlob.cpp +@@ -213,6 +213,7 @@ void SkTextBlob::operator delete(void* p void* SkTextBlob::operator new(size_t) { SK_ABORT("All blobs are created by placement new."); @@ -114,20 +69,11 @@ diff --git a/gfx/skia/skia/src/core/SkTextBlob.cpp b/gfx/skia/skia/src/core/SkTe } void* SkTextBlob::operator new(size_t, void* p) { - return p; - } - - SkTextBlobRunIterator::SkTextBlobRunIterator(const SkTextBlob* blob) - : fCurrentRun(SkTextBlob::RunRecord::First(blob)) { -diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core/SkTypeface_remote.h ---- a/gfx/skia/skia/src/core/SkTypeface_remote.h -+++ b/gfx/skia/skia/src/core/SkTypeface_remote.h -@@ -90,83 +90,97 @@ public: - - SkTypefaceID remoteTypefaceID() const {return fTypefaceID;} - - int glyphCount() const {return fGlyphCount;} - +Index: firefox-128.0/gfx/skia/skia/src/core/SkTypeface_remote.h +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.h ++++ firefox-128.0/gfx/skia/skia/src/core/SkTypeface_remote.h +@@ -108,12 +108,14 @@ public: bool isLogging() const {return fIsLogging;} protected: @@ -143,7 +89,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core } bool onGlyphMaskNeedsCurrentColor() const override { return fGlyphMaskNeedsCurrentColor; - } +@@ -121,10 +123,12 @@ protected: int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[], int coordinateCount) const override { SK_ABORT("Should never be called."); @@ -156,7 +102,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core } void onGetFamilyName(SkString* familyName) const override { // Used by SkStrikeCache::DumpMemoryStatistics. - *familyName = ""; +@@ -132,15 +136,19 @@ protected: } bool onGetPostScriptName(SkString*) const override { SK_ABORT("Should never be called."); @@ -176,13 +122,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core } std::unique_ptr onCreateScalerContext( const SkScalerContextEffects& effects, const SkDescriptor* desc) const override - { - return std::make_unique( - sk_ref_sp(const_cast(this)), effects, desc, fDiscardableManager); - } - void onFilterRec(SkScalerContextRec* rec) const override { - // The rec filtering is already applied by the server when generating - // the glyphs. +@@ -154,20 +162,25 @@ protected: } void onGetFontDescriptor(SkFontDescriptor*, bool*) const override { SK_ABORT("Should never be called."); @@ -208,7 +148,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core } int onCountGlyphs() const override { return this->glyphCount(); - } +@@ -175,6 +188,7 @@ protected: void* onGetCTFontRef() const override { SK_ABORT("Should never be called."); @@ -216,119 +156,35 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core } private: - const SkTypefaceID fTypefaceID; - const int fGlyphCount; - const bool fIsLogging; - const bool fGlyphMaskNeedsCurrentColor; - sk_sp fDiscardableManager; -diff --git a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp ---- a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp -+++ b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp -@@ -810,16 +810,17 @@ sk_sp cpu_blur( - SkASSERT(0 <= sigma && sigma <= 2183); // should be guaranteed after map_sigma - if (PassMaker* maker = GaussPass::MakeMaker(sigma, &alloc)) { - return maker; - } - if (PassMaker* maker = TentPass::MakeMaker(sigma, &alloc)) { +Index: firefox-128.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp ++++ firefox-128.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp +@@ -799,6 +799,7 @@ sk_sp cpu_blur(const ski return maker; } SK_ABORT("Sigma is out of range."); + SkUNREACHABLE; }; - PassMaker* makerX = makeMaker(sigma.x()); - PassMaker* makerY = makeMaker(sigma.y()); + PassMaker* makerX = makeMaker(sigma.width()); +Index: firefox-128.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp ++++ firefox-128.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp +@@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName - if (makerX->window() <= 1 && makerY->window() <= 1) { - return copy_image_with_bounds(ctx, input, srcBounds, dstBounds); - } -diff --git a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp ---- a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp -+++ b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp -@@ -64,16 +64,17 @@ int SkFontMgr_Indirect::onCountFamilies( - } - - void SkFontMgr_Indirect::onGetFamilyName(int index, SkString* familyName) const { - SK_ABORT("Not implemented"); - } - - SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const { + sk_sp SkFontMgr_Indirect::onCreateStyleSet(int index) const { SK_ABORT("Not implemented"); + SkUNREACHABLE; } - SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const { - return new SkStyleSet_Indirect(this, -1, fProxy->matchName(familyName)); - } - - SkTypeface* SkFontMgr_Indirect::createTypefaceFromFontId(const SkFontIdentity& id) const { - if (id.fDataId == SkFontIdentity::kInvalidDataId) { -diff --git a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp ---- a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp -+++ b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp -@@ -157,28 +157,32 @@ public: - SkFontMgr_FCI(sk_sp fci) - : fFCI(std::move(fci)) - , fCache(kMaxSize) - {} - - protected: - int onCountFamilies() const override { - SK_ABORT("Not implemented."); -+ SkUNREACHABLE; - } - - void onGetFamilyName(int index, SkString* familyName) const override { - SK_ABORT("Not implemented."); -+ SkUNREACHABLE; - } - - SkFontStyleSet* onCreateStyleSet(int index) const override { - SK_ABORT("Not implemented."); -+ SkUNREACHABLE; - } - - SkFontStyleSet* onMatchFamily(const char familyName[]) const override { - SK_ABORT("Not implemented."); -+ SkUNREACHABLE; - } - - SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[], - const SkFontStyle& requestedStyle) const override - { - SkAutoMutexExclusive ama(fMutex); - - SkFontConfigInterface::FontIdentity identity; -diff --git a/gfx/skia/skia/src/sksl/SkSLCompiler.cpp b/gfx/skia/skia/src/sksl/SkSLCompiler.cpp ---- a/gfx/skia/skia/src/sksl/SkSLCompiler.cpp -+++ b/gfx/skia/skia/src/sksl/SkSLCompiler.cpp -@@ -272,16 +272,17 @@ std::unique_ptr Compiler::co - case Symbol::Kind::kType: { - // go through DSLType so we report errors on private types - dsl::DSLModifiers modifiers; - dsl::DSLType dslType(result->name(), &modifiers, pos); - return TypeReference::Convert(*fContext, pos, &dslType.skslType()); - } - default: - SK_ABORT("unsupported symbol type %d\n", (int) result->kind()); -+ SkUNREACHABLE; - } - } - - bool Compiler::optimizeModuleBeforeMinifying(ProgramKind kind, Module& module) { - SkASSERT(this->errorCount() == 0); - - auto m = SkSL::ModuleLoader::Get(); - -diff --git a/gfx/skia/skia/src/sksl/SkSLOperator.cpp b/gfx/skia/skia/src/sksl/SkSLOperator.cpp ---- a/gfx/skia/skia/src/sksl/SkSLOperator.cpp -+++ b/gfx/skia/skia/src/sksl/SkSLOperator.cpp -@@ -46,17 +46,17 @@ OperatorPrecedence Operator::getBinaryPr - case Kind::SLASHEQ: // fall through - case Kind::PERCENTEQ: // fall through - case Kind::SHLEQ: // fall through - case Kind::SHREQ: // fall through - case Kind::BITWISEANDEQ: // fall through + sk_sp SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const { +Index: firefox-128.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/sksl/SkSLOperator.cpp ++++ firefox-128.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp +@@ -51,7 +51,7 @@ OperatorPrecedence Operator::getBinaryPr case Kind::BITWISEXOREQ: // fall through case Kind::BITWISEOREQ: return OperatorPrecedence::kAssignment; case Kind::COMMA: return OperatorPrecedence::kSequence; @@ -337,41 +193,23 @@ diff --git a/gfx/skia/skia/src/sksl/SkSLOperator.cpp b/gfx/skia/skia/src/sksl/Sk } } - const char* Operator::operatorName() const { - switch (this->kind()) { - case Kind::PLUS: return " + "; - case Kind::MINUS: return " - "; - case Kind::STAR: return " * "; -diff --git a/gfx/skia/skia/src/sksl/ir/SkSLType.h b/gfx/skia/skia/src/sksl/ir/SkSLType.h ---- a/gfx/skia/skia/src/sksl/ir/SkSLType.h -+++ b/gfx/skia/skia/src/sksl/ir/SkSLType.h -@@ -417,16 +417,17 @@ public: - * Returns the number of scalars needed to hold this type. - */ - virtual size_t slotCount() const { - return 0; - } +Index: firefox-128.0/gfx/skia/skia/src/sksl/ir/SkSLType.h +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/sksl/ir/SkSLType.h ++++ firefox-128.0/gfx/skia/skia/src/sksl/ir/SkSLType.h +@@ -468,6 +468,7 @@ public: - virtual const std::vector& fields() const { + virtual SkSpan fields() const { SK_ABORT("Internal error: not a struct"); + SkUNREACHABLE; } /** - * For generic types, returns the types that this generic type can substitute for. - */ - virtual SkSpan coercibleTypes() const { - SkDEBUGFAIL("Internal error: not a generic type"); - return {}; -diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils/SkShadowUtils.cpp ---- a/gfx/skia/skia/src/utils/SkShadowUtils.cpp -+++ b/gfx/skia/skia/src/utils/SkShadowUtils.cpp -@@ -135,16 +135,17 @@ struct SpotVerticesFactory { - } - return false; - case OccluderType::kDirectional: - case OccluderType::kDirectionalTransparent: - *translate = that.fOffset - fOffset; +Index: firefox-128.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp +=================================================================== +--- firefox-128.0.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp ++++ firefox-128.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp +@@ -140,6 +140,7 @@ struct SpotVerticesFactory { return true; } SK_ABORT("Uninitialized occluder type?"); @@ -379,20 +217,11 @@ diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils } sk_sp makeVertices(const SkPath& path, const SkMatrix& ctm, - SkVector* translate) const { - bool transparent = fOccluderType == OccluderType::kPointTransparent || - fOccluderType == OccluderType::kDirectionalTransparent; - bool directional = fOccluderType == OccluderType::kDirectional || - fOccluderType == OccluderType::kDirectionalTransparent; -diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/number_rounding.cpp ---- a/intl/icu/source/i18n/number_rounding.cpp -+++ b/intl/icu/source/i18n/number_rounding.cpp -@@ -282,27 +282,29 @@ Precision IncrementPrecision::withMinFra - } - - FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) { - FractionSignificantSettings settings; - settings.fMinFrac = static_cast(minFrac); +Index: firefox-128.0/intl/icu/source/i18n/number_rounding.cpp +=================================================================== +--- firefox-128.0.orig/intl/icu/source/i18n/number_rounding.cpp ++++ firefox-128.0/intl/icu/source/i18n/number_rounding.cpp +@@ -287,6 +287,7 @@ FractionPrecision Precision::constructFr settings.fMaxFrac = static_cast(maxFrac); settings.fMinSig = -1; settings.fMaxSig = -1; @@ -400,11 +229,7 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num PrecisionUnion union_; union_.fracSig = settings; return {RND_FRACTION, union_}; - } - - Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) { - FractionSignificantSettings settings; - settings.fMinFrac = -1; +@@ -298,6 +299,7 @@ Precision Precision::constructSignifican settings.fMaxFrac = -1; settings.fMinSig = static_cast(minSig); settings.fMaxSig = static_cast(maxSig); @@ -412,20 +237,11 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num PrecisionUnion union_; union_.fracSig = settings; return {RND_SIGNIFICANT, union_}; - } - - Precision - Precision::constructFractionSignificant( - const FractionPrecision &base, -diff --git a/js/src/irregexp/imported/regexp-parser.cc b/js/src/irregexp/imported/regexp-parser.cc ---- a/js/src/irregexp/imported/regexp-parser.cc -+++ b/js/src/irregexp/imported/regexp-parser.cc -@@ -2764,16 +2764,17 @@ bool MayContainStrings(ClassSetOperandTy - return false; - case ClassSetOperandType::kCharacterClassEscape: - case ClassSetOperandType::kClassStringDisjunction: - return operand->AsClassSetOperand()->has_strings(); - case ClassSetOperandType::kNestedClass: +Index: firefox-128.0/js/src/irregexp/imported/regexp-parser.cc +=================================================================== +--- firefox-128.0.orig/js/src/irregexp/imported/regexp-parser.cc ++++ firefox-128.0/js/src/irregexp/imported/regexp-parser.cc +@@ -2781,6 +2781,7 @@ bool MayContainStrings(ClassSetOperandTy if (operand->IsClassRanges()) return false; return operand->AsClassSetExpression()->may_contain_strings(); } @@ -433,20 +249,11 @@ diff --git a/js/src/irregexp/imported/regexp-parser.cc b/js/src/irregexp/importe } } // namespace - - template - void RegExpParserImpl::AddMaybeSimpleCaseFoldedRange( - ZoneList* ranges, CharacterRange new_range) { - DCHECK(unicode_sets()); -diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libwebrtc/api/adaptation/resource.cc ---- a/third_party/libwebrtc/api/adaptation/resource.cc -+++ b/third_party/libwebrtc/api/adaptation/resource.cc -@@ -17,16 +17,17 @@ namespace webrtc { - const char* ResourceUsageStateToString(ResourceUsageState usage_state) { - switch (usage_state) { - case ResourceUsageState::kOveruse: - return "kOveruse"; - case ResourceUsageState::kUnderuse: +Index: firefox-128.0/third_party/libwebrtc/api/adaptation/resource.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/api/adaptation/resource.cc ++++ firefox-128.0/third_party/libwebrtc/api/adaptation/resource.cc +@@ -22,6 +22,7 @@ const char* ResourceUsageStateToString(R return "kUnderuse"; } RTC_CHECK_NOTREACHED(); @@ -454,20 +261,11 @@ diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libw } ResourceListener::~ResourceListener() {} - - Resource::Resource() {} - - Resource::~Resource() {} - -diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc/api/rtp_parameters.cc ---- a/third_party/libwebrtc/api/rtp_parameters.cc -+++ b/third_party/libwebrtc/api/rtp_parameters.cc -@@ -28,16 +28,17 @@ const char* DegradationPreferenceToStrin - case DegradationPreference::MAINTAIN_FRAMERATE: - return "maintain-framerate"; - case DegradationPreference::MAINTAIN_RESOLUTION: - return "maintain-resolution"; - case DegradationPreference::BALANCED: +Index: firefox-128.0/third_party/libwebrtc/api/rtp_parameters.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/api/rtp_parameters.cc ++++ firefox-128.0/third_party/libwebrtc/api/rtp_parameters.cc +@@ -33,6 +33,7 @@ const char* DegradationPreferenceToStrin return "balanced"; } RTC_CHECK_NOTREACHED(); @@ -475,20 +273,11 @@ diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc } const double kDefaultBitratePriority = 1.0; - - RtcpFeedback::RtcpFeedback() = default; - RtcpFeedback::RtcpFeedback(RtcpFeedbackType type) : type(type) {} - RtcpFeedback::RtcpFeedback(RtcpFeedbackType type, - RtcpFeedbackMessageType message_type) -diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party/libwebrtc/api/video/video_frame_buffer.cc ---- a/third_party/libwebrtc/api/video/video_frame_buffer.cc -+++ b/third_party/libwebrtc/api/video/video_frame_buffer.cc -@@ -101,16 +101,18 @@ const char* VideoFrameBufferTypeToString - return "kI210"; - case VideoFrameBuffer::Type::kI410: - return "kI410"; - case VideoFrameBuffer::Type::kNV12: - return "kNV12"; +Index: firefox-128.0/third_party/libwebrtc/api/video/video_frame_buffer.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/api/video/video_frame_buffer.cc ++++ firefox-128.0/third_party/libwebrtc/api/video/video_frame_buffer.cc +@@ -106,6 +106,8 @@ const char* VideoFrameBufferTypeToString default: RTC_DCHECK_NOTREACHED(); } @@ -497,20 +286,11 @@ diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party } int I420BufferInterface::ChromaWidth() const { - return (width() + 1) / 2; - } - - int I420BufferInterface::ChromaHeight() const { - return (height() + 1) / 2; -diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party/libwebrtc/api/video_codecs/video_codec.cc ---- a/third_party/libwebrtc/api/video_codecs/video_codec.cc -+++ b/third_party/libwebrtc/api/video_codecs/video_codec.cc -@@ -156,16 +156,17 @@ const char* CodecTypeToPayloadString(Vid - case kVideoCodecMultiplex: - return kPayloadNameMultiplex; - case kVideoCodecGeneric: - return kPayloadNameGeneric; - case kVideoCodecH265: +Index: firefox-128.0/third_party/libwebrtc/api/video_codecs/video_codec.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/api/video_codecs/video_codec.cc ++++ firefox-128.0/third_party/libwebrtc/api/video_codecs/video_codec.cc +@@ -162,6 +162,7 @@ const char* CodecTypeToPayloadString(Vid return kPayloadNameH265; } RTC_CHECK_NOTREACHED(); @@ -518,20 +298,11 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party } VideoCodecType PayloadStringToCodecType(const std::string& name) { - if (absl::EqualsIgnoreCase(name, kPayloadNameVp8)) - return kVideoCodecVP8; - if (absl::EqualsIgnoreCase(name, kPayloadNameVp9)) - return kVideoCodecVP9; - if (absl::EqualsIgnoreCase(name, kPayloadNameAv1) || -diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc ---- a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc -+++ b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc -@@ -184,16 +184,17 @@ class VideoEncoderSoftwareFallbackWrappe - [[fallthrough]]; - case EncoderState::kMainEncoderUsed: - return encoder_.get(); - case EncoderState::kFallbackDueToFailure: - case EncoderState::kForcedFallback: +Index: firefox-128.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc ++++ firefox-128.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc +@@ -189,6 +189,7 @@ class VideoEncoderSoftwareFallbackWrappe return fallback_encoder_.get(); } RTC_CHECK_NOTREACHED(); @@ -539,17 +310,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb } // Updates encoder with last observed parameters, such as callbacks, rates, - // etc. - void PrimeEncoder(VideoEncoder* encoder) const; - - // Settings used in the last InitEncode call and used if a dynamic fallback to - // software is required. -@@ -377,16 +378,17 @@ int32_t VideoEncoderSoftwareFallbackWrap - case EncoderState::kMainEncoderUsed: { - return EncodeWithMainEncoder(frame, frame_types); - } - case EncoderState::kFallbackDueToFailure: - case EncoderState::kForcedFallback: +@@ -382,6 +383,7 @@ int32_t VideoEncoderSoftwareFallbackWrap return fallback_encoder_->Encode(frame, frame_types); } RTC_CHECK_NOTREACHED(); @@ -557,20 +318,11 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb } int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder( - const VideoFrame& frame, - const std::vector* frame_types) { - int32_t ret = encoder_->Encode(frame, frame_types); - // If requested, try a software fallback. - bool fallback_requested = (ret == WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE); -diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc ---- a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc -+++ b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc -@@ -164,16 +164,17 @@ const char* Adaptation::StatusToString(A - case Status::kInsufficientInput: - return "kInsufficientInput"; - case Status::kAdaptationDisabled: - return "kAdaptationDisabled"; - case Status::kRejectedByConstraint: +Index: firefox-128.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc ++++ firefox-128.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc +@@ -169,6 +169,7 @@ const char* Adaptation::StatusToString(A return "kRejectedByConstraint"; } RTC_CHECK_NOTREACHED(); @@ -578,17 +330,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi } Adaptation::Adaptation(int validation_id, - VideoSourceRestrictions restrictions, - VideoAdaptationCounters counters, - VideoStreamInputState input_state) - : validation_id_(validation_id), - status_(Status::kValid), -@@ -386,16 +387,17 @@ VideoStreamAdapter::RestrictionsOrState - case DegradationPreference::MAINTAIN_RESOLUTION: { - // Scale up framerate. - return IncreaseFramerate(input_state, current_restrictions_); - } - case DegradationPreference::DISABLED: +@@ -391,6 +392,7 @@ VideoStreamAdapter::RestrictionsOrState return Adaptation::Status::kAdaptationDisabled; } RTC_CHECK_NOTREACHED(); @@ -596,17 +338,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi } Adaptation VideoStreamAdapter::GetAdaptationDown() { - RTC_DCHECK_RUN_ON(&sequence_checker_); - VideoStreamInputState input_state = input_state_provider_->InputState(); - ++adaptation_validation_id_; - RestrictionsOrState restrictions_or_state = - GetAdaptationDownStep(input_state, current_restrictions_); -@@ -468,16 +470,17 @@ VideoStreamAdapter::GetAdaptationDownSte - } - case DegradationPreference::MAINTAIN_RESOLUTION: { - return DecreaseFramerate(input_state, current_restrictions); - } - case DegradationPreference::DISABLED: +@@ -473,6 +475,7 @@ VideoStreamAdapter::GetAdaptationDownSte return Adaptation::Status::kAdaptationDisabled; } RTC_CHECK_NOTREACHED(); @@ -614,17 +346,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi } VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution( - const VideoStreamInputState& input_state, - const RestrictionsWithCounters& current_restrictions) { - int target_pixels = - GetLowerResolutionThan(input_state.frame_size_pixels().value()); - // Use single active stream if set, this stream could be lower than the input. -@@ -621,16 +624,18 @@ Adaptation VideoStreamAdapter::GetAdaptD - case DegradationPreference::MAINTAIN_FRAMERATE: - return GetAdaptationDown(); - case DegradationPreference::BALANCED: { - return RestrictionsOrStateToAdaptation( - GetAdaptDownResolutionStepForBalanced(input_state), input_state); +@@ -626,6 +629,8 @@ Adaptation VideoStreamAdapter::GetAdaptD } } RTC_CHECK_NOTREACHED(); @@ -633,21 +355,12 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi } VideoStreamAdapter::RestrictionsOrState - VideoStreamAdapter::GetAdaptDownResolutionStepForBalanced( - const VideoStreamInputState& input_state) const { - // Adapt twice if the first adaptation did not decrease resolution. - auto first_step = GetAdaptationDownStep(input_state, current_restrictions_); - if (!absl::holds_alternative(first_step)) { -diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libwebrtc/call/rtp_payload_params.cc ---- a/third_party/libwebrtc/call/rtp_payload_params.cc -+++ b/third_party/libwebrtc/call/rtp_payload_params.cc -@@ -405,17 +405,17 @@ absl::optional - return structure; - } - case VideoCodecType::kVideoCodecAV1: - case VideoCodecType::kVideoCodecH264: +Index: firefox-128.0/third_party/libwebrtc/call/rtp_payload_params.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/call/rtp_payload_params.cc ++++ firefox-128.0/third_party/libwebrtc/call/rtp_payload_params.cc +@@ -406,7 +406,7 @@ absl::optional case VideoCodecType::kVideoCodecH265: - case VideoCodecType::kVideoCodecMultiplex: return absl::nullopt; } - RTC_DCHECK_NOTREACHED() << "Unsupported codec."; @@ -655,20 +368,11 @@ diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libw } void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id, - bool is_keyframe, - RTPVideoHeader* rtp_video_header) { - RTPVideoHeader::GenericDescriptorInfo& generic = - rtp_video_header->generic.emplace(); - -diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwebrtc/call/video_send_stream.cc ---- a/third_party/libwebrtc/call/video_send_stream.cc -+++ b/third_party/libwebrtc/call/video_send_stream.cc -@@ -25,16 +25,17 @@ const char* StreamTypeToString(VideoSend - case VideoSendStream::StreamStats::StreamType::kMedia: - return "media"; - case VideoSendStream::StreamStats::StreamType::kRtx: - return "rtx"; - case VideoSendStream::StreamStats::StreamType::kFlexfec: +Index: firefox-128.0/third_party/libwebrtc/call/video_send_stream.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/call/video_send_stream.cc ++++ firefox-128.0/third_party/libwebrtc/call/video_send_stream.cc +@@ -30,6 +30,7 @@ const char* StreamTypeToString(VideoSend return "flexfec"; } RTC_CHECK_NOTREACHED(); @@ -676,20 +380,11 @@ diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwe } } // namespace - - VideoSendStream::StreamStats::StreamStats() = default; - VideoSendStream::StreamStats::~StreamStats() = default; - - std::string VideoSendStream::StreamStats::ToString() const { -diff --git a/third_party/libwebrtc/media/base/codec.cc b/third_party/libwebrtc/media/base/codec.cc ---- a/third_party/libwebrtc/media/base/codec.cc -+++ b/third_party/libwebrtc/media/base/codec.cc -@@ -228,16 +228,17 @@ bool Codec::Matches(const Codec& codec) - (codec.bitrate == 0 || bitrate <= 0 || - bitrate == codec.bitrate) && - ((codec.channels < 2 && channels < 2) || - channels == codec.channels); - +Index: firefox-128.0/third_party/libwebrtc/media/base/codec.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/media/base/codec.cc ++++ firefox-128.0/third_party/libwebrtc/media/base/codec.cc +@@ -262,6 +262,7 @@ bool Codec::Matches(const Codec& codec) case Type::kVideo: return IsSameCodecSpecific(name, params, codec.name, codec.params); } @@ -697,20 +392,11 @@ diff --git a/third_party/libwebrtc/media/base/codec.cc b/third_party/libwebrtc/m }; return matches_id && matches_type_specific(); - } - - bool Codec::MatchesRtpCodec(const webrtc::RtpCodec& codec_capability) const { - webrtc::RtpCodecParameters codec_parameters = ToCodecParameters(); - -diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc ---- a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc -+++ b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc -@@ -373,12 +373,12 @@ std::unique_ptr Creat - config.reference_window_delay, config.clipping_threshold, - /*adaptive_step_estimation=*/true); - case ClippingPredictorMode::kFixedStepClippingPeakPrediction: - return std::make_unique( - num_channels, config.window_length, config.reference_window_length, +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc +@@ -378,7 +378,7 @@ std::unique_ptr Creat config.reference_window_delay, config.clipping_threshold, /*adaptive_step_estimation=*/false); } @@ -719,15 +405,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predic } } // namespace webrtc -diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc b/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc ---- a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc -+++ b/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc -@@ -43,16 +43,17 @@ int ComputeAverageUpdate(int sum_updates - constexpr absl::string_view MetricNamePrefix( - InputVolumeType input_volume_type) { - switch (input_volume_type) { - case InputVolumeType::kApplied: - return "WebRTC.Audio.Apm.AppliedInputVolume."; +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc +@@ -48,6 +48,7 @@ constexpr absl::string_view MetricNamePr case InputVolumeType::kRecommended: return "WebRTC.Audio.Apm.RecommendedInputVolume."; } @@ -735,20 +417,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_st } metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) { - char buffer[64]; - rtc::SimpleStringBuilder builder(buffer); - builder << MetricNamePrefix(input_volume_type) << "OnChange"; - return metrics::HistogramFactoryGetCountsLinear(/*name=*/builder.str(), - /*min=*/1, -diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc ---- a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc -+++ b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc -@@ -55,16 +55,18 @@ std::vector PreprocessWeights(rtc - rtc::FunctionView GetActivationFunction( - ActivationFunction activation_function) { - switch (activation_function) { - case ActivationFunction::kTansigApproximated: - return ::rnnoise::TansigApproximated; +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc +@@ -60,6 +60,8 @@ rtc::FunctionView GetActiv case ActivationFunction::kSigmoidApproximated: return ::rnnoise::SigmoidApproximated; } @@ -757,20 +430,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc. } } // namespace - - FullyConnectedLayer::FullyConnectedLayer( - const int input_size, - const int output_size, - const rtc::ArrayView bias, -diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc ---- a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc -+++ b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc -@@ -96,16 +96,17 @@ GainControl::Mode Agc1ConfigModeToInterf - case Agc1Config::kAdaptiveAnalog: - return GainControl::kAdaptiveAnalog; - case Agc1Config::kAdaptiveDigital: - return GainControl::kAdaptiveDigital; - case Agc1Config::kFixedDigital: +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc +@@ -101,6 +101,7 @@ GainControl::Mode Agc1ConfigModeToInterf return GainControl::kFixedDigital; } RTC_CHECK_NOTREACHED(); @@ -778,17 +442,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp } bool MinimizeProcessingForUnusedOutput() { - return !field_trial::IsEnabled("WebRTC-MutedStateKillSwitch"); - } - - // Maximum lengths that frame of samples being passed from the render side to - // the capture side can have (does not apply to AEC3). -@@ -163,17 +164,17 @@ int AudioFormatValidityToErrorCode(Audio - case AudioFormatValidity::kValidAndSupported: - return AudioProcessing::kNoError; - case AudioFormatValidity::kValidButUnsupportedSampleRate: // fall-through - case AudioFormatValidity::kInvalidSampleRate: - return AudioProcessing::kBadSampleRateError; +@@ -168,7 +169,7 @@ int AudioFormatValidityToErrorCode(Audio case AudioFormatValidity::kInvalidChannelCount: return AudioProcessing::kBadNumberChannelsError; } @@ -797,17 +451,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp } // Returns an AudioProcessing::Error together with the best possible option for - // output audio content. - std::pair ChooseErrorOutputOption( - const StreamConfig& input_config, - const StreamConfig& output_config) { - AudioFormatValidity input_validity = ValidateAudioFormat(input_config); -@@ -2420,16 +2421,17 @@ void AudioProcessingImpl::InitializeNois - case NoiseSuppresionConfig::kModerate: - return NsConfig::SuppressionLevel::k12dB; - case NoiseSuppresionConfig::kHigh: - return NsConfig::SuppressionLevel::k18dB; - case NoiseSuppresionConfig::kVeryHigh: +@@ -2425,6 +2426,7 @@ void AudioProcessingImpl::InitializeNois return NsConfig::SuppressionLevel::k21dB; } RTC_CHECK_NOTREACHED(); @@ -815,20 +459,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp }; NsConfig cfg; - cfg.target_level = map_level(config_.noise_suppression.level); - submodules_.noise_suppressor = std::make_unique( - cfg, proc_sample_rate_hz(), num_proc_channels()); - } - } -diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc ---- a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc -+++ b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc -@@ -27,28 +27,30 @@ std::string NoiseSuppressionLevelToStrin - case AudioProcessing::Config::NoiseSuppression::Level::kModerate: - return "Moderate"; - case AudioProcessing::Config::NoiseSuppression::Level::kHigh: - return "High"; - case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh: +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc +@@ -32,6 +32,7 @@ std::string NoiseSuppressionLevelToStrin return "VeryHigh"; } RTC_CHECK_NOTREACHED(); @@ -836,12 +471,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_proces } std::string GainController1ModeToString(const Agc1Config::Mode& mode) { - switch (mode) { - case Agc1Config::Mode::kAdaptiveAnalog: - return "AdaptiveAnalog"; - case Agc1Config::Mode::kAdaptiveDigital: - return "AdaptiveDigital"; - case Agc1Config::Mode::kFixedDigital: +@@ -44,6 +45,7 @@ std::string GainController1ModeToString( return "FixedDigital"; } RTC_CHECK_NOTREACHED(); @@ -849,20 +479,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_proces } } // namespace - - constexpr int AudioProcessing::kNativeSampleRatesHz[]; - - void CustomProcessing::SetRuntimeSetting( - AudioProcessing::RuntimeSetting setting) {} -diff --git a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc ---- a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc -+++ b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc -@@ -48,16 +48,17 @@ std::string GetVadModeLabel(TransientSup - switch (vad_mode) { - case TransientSuppressor::VadMode::kDefault: - return "default"; - case TransientSuppressor::VadMode::kRnnVad: - return "RNN VAD"; +Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc ++++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc +@@ -53,6 +53,7 @@ std::string GetVadModeLabel(TransientSup case TransientSuppressor::VadMode::kNoVad: return "no VAD"; } @@ -870,20 +491,11 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/transient/transient_ } } // namespace - - TransientSuppressorImpl::TransientSuppressorImpl(VadMode vad_mode, - int sample_rate_hz, - int detector_rate_hz, - int num_channels) -diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc ---- a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc -+++ b/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc -@@ -90,16 +90,18 @@ BandwidthLimitedCause GetBandwidthLimite - // Probes may not be sent in this state. - return BandwidthLimitedCause::kLossLimitedBwe; - case LossBasedState::kIncreasing: - // Probes may be sent in this state. - return BandwidthLimitedCause::kLossLimitedBweIncreasing; +Index: firefox-128.0/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc ++++ firefox-128.0/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc +@@ -95,6 +95,8 @@ BandwidthLimitedCause GetBandwidthLimite case LossBasedState::kDelayBasedEstimate: return BandwidthLimitedCause::kDelayBasedLimited; } @@ -892,20 +504,11 @@ diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc } } // namespace - - GoogCcNetworkController::GoogCcNetworkController(NetworkControllerConfig config, - GoogCcConfig goog_cc_config) - : key_value_config_(config.key_value_config ? config.key_value_config - : &trial_based_config_), -diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc ---- a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc -+++ b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc -@@ -39,16 +39,17 @@ ScreenCastPortal::CaptureSourceType Scre - switch (type) { - case CaptureType::kScreen: - return ScreenCastPortal::CaptureSourceType::kScreen; - case CaptureType::kWindow: - return ScreenCastPortal::CaptureSourceType::kWindow; +Index: firefox-128.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc ++++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc +@@ -44,6 +44,7 @@ ScreenCastPortal::CaptureSourceType Scre case CaptureType::kAnyScreenContent: return ScreenCastPortal::CaptureSourceType::kAnyScreenContent; } @@ -913,20 +516,11 @@ diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screenc } ScreenCastPortal::ScreenCastPortal(CaptureType type, PortalNotifier* notifier) - : ScreenCastPortal(type, - notifier, - OnProxyRequested, - OnSourcesRequestResponseSignal, - this) {} -diff --git a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc ---- a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc -+++ b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc -@@ -79,16 +79,17 @@ bool BitrateProber::ReadyToSetActiveStat - return true; - } - // If config_.min_packet_size > 0, a "large enough" packet must be - // sent first, before a probe can be generated and sent. Otherwise, - // send the probe asap. +Index: firefox-128.0/third_party/libwebrtc/modules/pacing/bitrate_prober.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/pacing/bitrate_prober.cc ++++ firefox-128.0/third_party/libwebrtc/modules/pacing/bitrate_prober.cc +@@ -84,6 +84,7 @@ bool BitrateProber::ReadyToSetActiveStat return packet_size >= std::min(RecommendedMinProbeSize(), config_.min_packet_size.Get()); } @@ -934,20 +528,11 @@ diff --git a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc b/third_part } void BitrateProber::OnIncomingPacket(DataSize packet_size) { - MaybeSetActiveState(packet_size); - } - - void BitrateProber::CreateProbeCluster( - const ProbeClusterConfig& cluster_config) { -diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc ---- a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc -+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc -@@ -42,11 +42,12 @@ std::unique_ptr Cr - #else - return nullptr; - #endif - case kVideoCodecGeneric: - case kVideoCodecMultiplex: +Index: firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc ++++ firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc +@@ -46,6 +46,7 @@ std::unique_ptr Cr return std::make_unique(); } RTC_CHECK_NOTREACHED(); @@ -955,15 +540,11 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depa } } // namespace webrtc -diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc ---- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc -+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc -@@ -133,16 +133,17 @@ bool IsNonVolatile(RTPExtensionType type - #if defined(WEBRTC_MOZILLA_BUILD) - case kRtpExtensionCsrcAudioLevel: - // TODO: Mozilla implement for CsrcAudioLevel - RTC_CHECK(false); - return false; +Index: firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc ++++ firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc +@@ -138,6 +138,7 @@ bool IsNonVolatile(RTPExtensionType type #endif } RTC_CHECK_NOTREACHED(); @@ -971,41 +552,11 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third } bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) { - return extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber) || - extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber02) || - extensions_map.IsRegistered(kRtpExtensionAbsoluteSendTime) || - extensions_map.IsRegistered(kRtpExtensionTransmissionTimeOffset); - } -diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc ---- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc -+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc -@@ -42,16 +42,17 @@ namespace { - case AudioFrameType::kEmptyFrame: - return "empty"; - case AudioFrameType::kAudioFrameSpeech: - return "audio_speech"; - case AudioFrameType::kAudioFrameCN: - return "audio_cn"; - } - RTC_CHECK_NOTREACHED(); -+ return ""; - } - - } // namespace - - RTPSenderAudio::RTPSenderAudio(Clock* clock, RTPSender* rtp_sender) - : clock_(clock), - rtp_sender_(rtp_sender), - absolute_capture_time_sender_(clock) { -diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc ---- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc -+++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc -@@ -105,16 +105,17 @@ size_t BufferToIndex(Vp8BufferReference - return 0; - case Vp8FrameConfig::Vp8BufferReference::kGolden: - return 1; - case Vp8FrameConfig::Vp8BufferReference::kAltref: - return 2; +Index: firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc ++++ firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc +@@ -110,6 +110,7 @@ size_t BufferToIndex(Vp8BufferReference case Vp8FrameConfig::Vp8BufferReference::kNone: RTC_CHECK_NOTREACHED(); } @@ -1013,20 +564,11 @@ diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_tempo } } // namespace - - constexpr size_t DefaultTemporalLayers::kNumReferenceBuffers; - - std::vector - DefaultTemporalLayers::GetDependencyInfo(size_t num_layers) { -diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc ---- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc -+++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc -@@ -25,16 +25,17 @@ TemporalLayersChecker::CreateTemporalLay - case Vp8TemporalLayersType::kFixedPattern: - return std::make_unique( - num_temporal_layers); - case Vp8TemporalLayersType::kBitrateDynamic: - // Conference mode temporal layering for screen content in base stream. +Index: firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc ++++ firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc +@@ -30,6 +30,7 @@ TemporalLayersChecker::CreateTemporalLay return std::make_unique(num_temporal_layers); } RTC_CHECK_NOTREACHED(); @@ -1034,20 +576,11 @@ diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_laye } TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers) - : num_temporal_layers_(num_temporal_layers), - sequence_number_(0), - last_sync_sequence_number_(0), - last_tl0_sequence_number_(0) {} - -diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc ---- a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc -+++ b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc -@@ -59,16 +59,17 @@ bool IsFramerateScalingEnabled(Degradati - std::string ToString(VideoAdaptationReason reason) { - switch (reason) { - case VideoAdaptationReason::kQuality: - return "quality"; - case VideoAdaptationReason::kCpu: +Index: firefox-128.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc +=================================================================== +--- firefox-128.0.orig/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc ++++ firefox-128.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc +@@ -64,6 +64,7 @@ std::string ToString(VideoAdaptationReas return "cpu"; } RTC_CHECK_NOTREACHED(); @@ -1055,8 +588,3 @@ diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resourc } std::vector GetActiveLayersFlags(const VideoCodec& codec) { - std::vector flags; - if (codec.codecType == VideoCodecType::kVideoCodecVP9) { - flags.resize(codec.VP9().numberOfSpatialLayers); - for (size_t i = 0; i < flags.size(); ++i) { - flags[i] = codec.spatialLayers[i].active; diff --git a/tar_stamps b/tar_stamps index 8035f8e..e2daf4e 100644 --- a/tar_stamps +++ b/tar_stamps @@ -1,10 +1,10 @@ PRODUCT="firefox" CHANNEL="release" -VERSION="127.0.2" +VERSION="128.0" VERSION_SUFFIX="" -PREV_VERSION="127.0.1" +PREV_VERSION="127.0.2" PREV_VERSION_SUFFIX="" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release" -RELEASE_TAG="c7bfb1e800e25153412ab2b70836fcbb090ba99e" -RELEASE_TIMESTAMP="20240624183754" +RELEASE_TAG="14b32d530926c66251f10fe2410184f7cc7de839" +RELEASE_TIMESTAMP="20240704121409"