File opensuse-upstream-changes-from-mozilla_firefox142.patch of Package LibreWolf
diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch
index 099951b..e188d88 100644
--- a/mozilla-bmo1504834-part1.patch
+++ b/mozilla-bmo1504834-part1.patch
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent 125a78208d2cef58191a0328ffe894dd14c6b146
+# Parent e31f5228a09ed69d7ac3c84e54f0faa6a5910ae0
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
-@@ -151,17 +151,18 @@ static IntRect CalculateSurfaceBounds(co
+@@ -155,17 +155,18 @@ static IntRect CalculateSurfaceBounds(co
if (!sampledBounds.ToIntRect(&bounds)) {
return surfaceBounds;
}
@@ -28,8 +28,8 @@ diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
-@@ -84,28 +84,21 @@ enum class SurfaceFormat : int8_t {
- YUV422, // Single plane YUV 4:2:2 interleaved as Y`0 Cb Y`1 Cr.
+@@ -94,28 +94,21 @@ enum class SurfaceFormat : int8_t {
+ // this format.
HSV,
Lab,
Depth,
diff --git a/mozilla-bmo1746799.patch b/mozilla-bmo1746799.patch
index f5f2c12..6680045 100644
--- a/mozilla-bmo1746799.patch
+++ b/mozilla-bmo1746799.patch
@@ -7,18 +7,22 @@ Fixes incorrect volume mapping.
Rebased to current SUSE sources and updated checksums Wed Sep 04 00:00:00 2024
-diff -urN a/third_party/rust/cubeb-pulse/.cargo-checksum.json b/third_party/rust/cubeb-pulse/.cargo-checksum.json
---- a/third_party/rust/cubeb-pulse/.cargo-checksum.json 2024-08-12 22:48:46.000000000 +1000
-+++ b/third_party/rust/cubeb-pulse/.cargo-checksum.json 2024-09-04 01:47:13.620986547 +1000
-@@ -1 +1 @@
--{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"8a0a450ae4990e1df322464867212e48587b474dfdc7f8c270fac06980be176a","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"dfe5b747e100cae4aeae36cf2ebb9dc4715b411b4116721a40eec2944eb0ec23","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
+diff --git a/third_party/rust/cubeb-pulse/.cargo-checksum.json b/third_party/rust/cubeb-pulse/.cargo-checksum.json
+--- a/third_party/rust/cubeb-pulse/.cargo-checksum.json
++++ b/third_party/rust/cubeb-pulse/.cargo-checksum.json
+@@ -1,1 +1,1 @@
+-{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"dfe5b747e100cae4aeae36cf2ebb9dc4715b411b4116721a40eec2944eb0ec23","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
\ No newline at end of file
-+{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"8a0a450ae4990e1df322464867212e48587b474dfdc7f8c270fac06980be176a","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"2dfc61c4eac69624558756d87283496d01f56f44bf311119eff0f1d124cd88f3","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
-\ No newline at end of file
-diff -urN a/third_party/rust/cubeb-pulse/src/backend/stream.rs b/third_party/rust/cubeb-pulse/src/backend/stream.rs
---- a/third_party/rust/cubeb-pulse/src/backend/stream.rs 2024-08-12 22:48:47.000000000 +1000
-+++ b/third_party/rust/cubeb-pulse/src/backend/stream.rs 2024-09-04 01:10:52.556622261 +1000
-@@ -765,8 +765,8 @@
++{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"2dfc61c4eac69624558756d87283496d01f56f44bf311119eff0f1d124cd88f3","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
+diff --git a/third_party/rust/cubeb-pulse/src/backend/stream.rs b/third_party/rust/cubeb-pulse/src/backend/stream.rs
+--- a/third_party/rust/cubeb-pulse/src/backend/stream.rs
++++ b/third_party/rust/cubeb-pulse/src/backend/stream.rs
+@@ -760,18 +760,18 @@ impl<'ctx> StreamOps for PulseStream<'ct
+ _ => pulse::SinkFlags::empty(),
+ }
+ };
+
+ if flags.contains(pulse::SinkFlags::FLAT_VOLUME) {
self.volume = volume;
} else {
let channels = stm.get_sample_spec().channels;
@@ -29,18 +33,27 @@ diff -urN a/third_party/rust/cubeb-pulse/src/backend/stream.rs b/third_party/rus
let index = stm.get_index();
-diff -urN a/third_party/rust/pulse-ffi/.cargo-checksum.json b/third_party/rust/pulse-ffi/.cargo-checksum.json
---- a/third_party/rust/pulse-ffi/.cargo-checksum.json 2024-08-12 22:48:46.000000000 +1000
-+++ b/third_party/rust/pulse-ffi/.cargo-checksum.json 2024-09-04 01:47:20.311044993 +1000
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"96983752046f2988087a836546a02aba746cdd1fc3ccd16f4170460465de5e63","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"2ca56bc3638a40d331e53117a5dd175d0a6e102b1e0eccb9c2adc565c6861a33","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
+ let context_ptr = self.context as *const _ as *mut _;
+ if let Ok(o) = context.set_sink_input_volume(
+ index,
+ &cvol,
+ context_success,
+diff --git a/third_party/rust/pulse-ffi/.cargo-checksum.json b/third_party/rust/pulse-ffi/.cargo-checksum.json
+--- a/third_party/rust/pulse-ffi/.cargo-checksum.json
++++ b/third_party/rust/pulse-ffi/.cargo-checksum.json
+@@ -1,1 +1,1 @@
+-{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"2ca56bc3638a40d331e53117a5dd175d0a6e102b1e0eccb9c2adc565c6861a33","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
\ No newline at end of file
-+{"files":{"Cargo.toml":"96983752046f2988087a836546a02aba746cdd1fc3ccd16f4170460465de5e63","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"f39a27712b17256583331f7ce5722413d0c7b51d73d8def8f50e839e23dfb411","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
-\ No newline at end of file
-diff -urN a/third_party/rust/pulse-ffi/src/ffi_types.rs b/third_party/rust/pulse-ffi/src/ffi_types.rs
---- a/third_party/rust/pulse-ffi/src/ffi_types.rs 2024-08-12 22:48:46.000000000 +1000
-+++ b/third_party/rust/pulse-ffi/src/ffi_types.rs 2024-09-04 01:07:53.408269333 +1000
-@@ -22,6 +22,11 @@
++{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"f39a27712b17256583331f7ce5722413d0c7b51d73d8def8f50e839e23dfb411","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
+diff --git a/third_party/rust/pulse-ffi/src/ffi_types.rs b/third_party/rust/pulse-ffi/src/ffi_types.rs
+--- a/third_party/rust/pulse-ffi/src/ffi_types.rs
++++ b/third_party/rust/pulse-ffi/src/ffi_types.rs
+@@ -17,16 +17,21 @@ pub const PA_SAMPLE_S32BE: c_int = 8;
+ pub const PA_SAMPLE_S24LE: c_int = 9;
+ pub const PA_SAMPLE_S24BE: c_int = 10;
+ pub const PA_SAMPLE_S24_32LE: c_int = 11;
+ pub const PA_SAMPLE_S24_32BE: c_int = 12;
+ pub const PA_SAMPLE_MAX: c_int = 13;
pub const PA_SAMPLE_INVALID: c_int = -1;
pub type pa_sample_format_t = c_int;
@@ -52,3 +65,8 @@ diff -urN a/third_party/rust/pulse-ffi/src/ffi_types.rs b/third_party/rust/pulse
#[repr(C)]
#[derive(Copy, Clone, Debug)]
pub struct Struct_pa_sample_spec {
+ pub format: pa_sample_format_t,
+ pub rate: u32,
+ pub channels: u8,
+ }
+
diff --git a/mozilla-ntlm-full-path.patch b/mozilla-ntlm-full-path.patch
index af4bac1..3665810 100644
--- a/mozilla-ntlm-full-path.patch
+++ b/mozilla-ntlm-full-path.patch
@@ -1,18 +1,28 @@
# HG changeset patch
# User Petr Cerny <pcerny@novell.com>
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
-# Parent 1c6a565013e4c5f3494f964269783939cd5ed0b8
+# Parent 3399aced682c232525633755ff79b37a0be75548
Bug 634334 - call to the ntlm_auth helper fails
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
-@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
- const char* username = PR_GetEnv("USER");
- if (!username) return NS_ERROR_FAILURE;
+@@ -148,17 +148,17 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
+ }
+
+ base::LaunchOptions options;
+ options.fds_to_remap.push_back(
+ std::pair{toChildPipeRead.get(), STDIN_FILENO});
+ options.fds_to_remap.push_back(
+ std::pair{fromChildPipeWrite.get(), STDOUT_FILENO});
+
+- std::vector<std::string> argvVec{"ntlm_auth", "--helper-protocol",
++ std::vector<std::string> argvVec{"/usr/bin/ntlm_auth", "--helper-protocol",
+ "ntlmssp-client-1", "--use-cached-creds",
+ "--username", username};
+
+ auto result = base::LaunchApp(argvVec, std::move(options), &mChildPID);
+ if (result.isErr()) {
+ return NS_ERROR_FAILURE;
+ }
-- const char* const args[] = {"ntlm_auth",
-+ const char* const args[] = {"/usr/bin/ntlm_auth",
- "--helper-protocol",
- "ntlmssp-client-1",
- "--use-cached-creds",
diff --git a/mozilla-pgo.patch b/mozilla-pgo.patch
index 9d28ff5..dbac416 100644
--- a/mozilla-pgo.patch
+++ b/mozilla-pgo.patch
@@ -30,16 +30,16 @@ Index: firefox-115.0/build/pgo/profileserver.py
===================================================================
--- firefox-115.0.orig/build/pgo/profileserver.py
+++ firefox-115.0/build/pgo/profileserver.py
-@@ -11,7 +11,7 @@ import subprocess
+@@ -10,7 +10,7 @@ import subprocess
import sys
import mozcrash
-from mozbuild.base import BinaryNotFoundException, MozbuildObject
+from mozbuild.base import BinaryNotFoundException, MozbuildObject, BuildEnvironmentNotFoundException
- from mozfile import TemporaryDirectory
+ from mozfile import TemporaryDirectory, json
from mozhttpd import MozHttpd
from mozprofile import FirefoxProfile, Preferences
-@@ -87,9 +87,22 @@ if __name__ == "__main__":
+@@ -96,9 +96,22 @@ if __name__ == "__main__":
locations = ServerLocations()
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
@@ -65,7 +65,7 @@ Index: firefox-115.0/build/pgo/profileserver.py
with TemporaryDirectory() as profilePath:
# TODO: refactor this into mozprofile
-@@ -213,6 +226,10 @@ if __name__ == "__main__":
+@@ -228,6 +241,10 @@ if __name__ == "__main__":
print("Firefox exited successfully, but produced a crashreport")
sys.exit(1)
diff --git a/mozilla-silence-no-return-type.patch b/mozilla-silence-no-return-type.patch
index 5bdefad..c72106d 100644
--- a/mozilla-silence-no-return-type.patch
+++ b/mozilla-silence-no-return-type.patch
@@ -1,5 +1,5 @@
# HG changeset patch
-# Parent 1bc018c4fee525f3a9dfafdb9550e53b6d82fd65
+# Parent df83073d2834936ee6a66cdb875fca6f63767297
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
@@ -67,7 +67,7 @@ diff --git a/gfx/skia/skia/src/core/SkDescriptor.cpp b/gfx/skia/skia/src/core/Sk
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
+@@ -277,28 +277,30 @@ static inline bool SkCubicIsDegenerate(S
case SkCubicType::kLocalCusp:
case SkCubicType::kCuspAtInfinity:
return false;
@@ -178,7 +178,7 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core
const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
{
return std::make_unique<SkScalerContextProxy>(
- sk_ref_sp(const_cast<SkTypefaceProxy*>(this)), effects, desc, fDiscardableManager);
+ *const_cast<SkTypefaceProxy*>(this), effects, desc, fDiscardableManager);
}
void onFilterRec(SkScalerContextRec* rec) const override {
// The rec filtering is already applied by the server when generating
@@ -221,48 +221,6 @@ diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core
const bool fIsLogging;
const bool fGlyphMaskNeedsCurrentColor;
sk_sp<SkStrikeClient::DiscardableHandleManager> 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
-@@ -794,16 +794,17 @@ sk_sp<SkSpecialImage> cpu_blur(const ski
- 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)) {
- return maker;
- }
- SK_ABORT("Sigma is out of range.");
-+ SkUNREACHABLE;
- };
-
- PassMaker* makerX = makeMaker(sigma.width());
- PassMaker* makerY = makeMaker(sigma.height());
- // A no-op blur should have been caught earlier in onFilterImage().
- SkASSERT(makerX->window() > 1 || makerY->window() > 1);
-
- SkBitmap src;
-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");
- }
-
- sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onCreateStyleSet(int index) const {
- SK_ABORT("Not implemented");
-+ SkUNREACHABLE;
- }
-
- sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
- return sk_sp<SkFontStyleSet>(new SkStyleSet_Indirect(this, -1, fProxy->matchName(familyName)));
- }
-
- sk_sp<SkTypeface> SkFontMgr_Indirect::createTypefaceFromFontId(const SkFontIdentity& id) const {
- if (id.fDataId == SkFontIdentity::kInvalidDataId) {
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
@@ -309,7 +267,7 @@ diff --git a/gfx/skia/skia/src/sksl/ir/SkSLType.h b/gfx/skia/skia/src/sksl/ir/Sk
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 {
+@@ -137,16 +137,17 @@ struct SpotVerticesFactory {
}
return false;
case OccluderType::kDirectional:
@@ -334,25 +292,25 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num
}
FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) {
- FractionSignificantSettings settings;
+ FractionSignificantSettings settings{};
settings.fMinFrac = static_cast<digits_t>(minFrac);
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
settings.fMinSig = -1;
settings.fMaxSig = -1;
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
- PrecisionUnion union_;
+ PrecisionUnion union_{};
union_.fracSig = settings;
return {RND_FRACTION, union_};
}
Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) {
- FractionSignificantSettings settings;
+ FractionSignificantSettings settings{};
settings.fMinFrac = -1;
settings.fMaxFrac = -1;
settings.fMinSig = static_cast<digits_t>(minSig);
settings.fMaxSig = static_cast<digits_t>(maxSig);
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
- PrecisionUnion union_;
+ PrecisionUnion union_{};
union_.fracSig = settings;
return {RND_SIGNIFICANT, union_};
}
@@ -363,7 +321,7 @@ diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/num
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
-@@ -2776,16 +2776,17 @@ bool MayContainStrings(ClassSetOperandTy
+@@ -2785,16 +2785,17 @@ bool MayContainStrings(ClassSetOperandTy
return false;
case ClassSetOperandType::kCharacterClassEscape:
case ClassSetOperandType::kClassStringDisjunction:
@@ -405,7 +363,7 @@ diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libw
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
+@@ -32,16 +32,17 @@ const char* DegradationPreferenceToStrin
case DegradationPreference::MAINTAIN_FRAMERATE:
return "maintain-framerate";
case DegradationPreference::MAINTAIN_RESOLUTION:
@@ -426,7 +384,7 @@ diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc
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
-@@ -107,16 +107,18 @@ const char* VideoFrameBufferTypeToString
+@@ -109,16 +109,18 @@ const char* VideoFrameBufferTypeToString
return "kI210";
case VideoFrameBuffer::Type::kI410:
return "kI410";
@@ -448,7 +406,7 @@ diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party
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
-@@ -157,16 +157,17 @@ const char* CodecTypeToPayloadString(Vid
+@@ -153,16 +153,17 @@ const char* CodecTypeToPayloadString(Vid
case kVideoCodecH264:
return kPayloadNameH264;
case kVideoCodecGeneric:
@@ -469,7 +427,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party
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
-@@ -186,16 +186,17 @@ class VideoEncoderSoftwareFallbackWrappe
+@@ -189,16 +189,17 @@ class VideoEncoderSoftwareFallbackWrappe
[[fallthrough]];
case EncoderState::kMainEncoderUsed:
return encoder_.get();
@@ -487,7 +445,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb
// Settings used in the last InitEncode call and used if a dynamic fallback to
// software is required.
-@@ -381,16 +382,17 @@ int32_t VideoEncoderSoftwareFallbackWrap
+@@ -387,16 +388,17 @@ int32_t VideoEncoderSoftwareFallbackWrap
case EncoderState::kMainEncoderUsed: {
return EncodeWithMainEncoder(frame, frame_types);
}
@@ -508,7 +466,7 @@ diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallb
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
+@@ -172,16 +172,17 @@ const char* Adaptation::StatusToString(A
case Status::kInsufficientInput:
return "kInsufficientInput";
case Status::kAdaptationDisabled:
@@ -526,7 +484,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
VideoStreamInputState input_state)
: validation_id_(validation_id),
status_(Status::kValid),
-@@ -386,16 +387,17 @@ VideoStreamAdapter::RestrictionsOrState
+@@ -394,16 +395,17 @@ VideoStreamAdapter::RestrictionsOrState
case DegradationPreference::MAINTAIN_RESOLUTION: {
// Scale up framerate.
return IncreaseFramerate(input_state, current_restrictions_);
@@ -544,7 +502,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
++adaptation_validation_id_;
RestrictionsOrState restrictions_or_state =
GetAdaptationDownStep(input_state, current_restrictions_);
-@@ -468,16 +470,17 @@ VideoStreamAdapter::GetAdaptationDownSte
+@@ -474,16 +476,17 @@ VideoStreamAdapter::GetAdaptationDownSte
}
case DegradationPreference::MAINTAIN_RESOLUTION: {
return DecreaseFramerate(input_state, current_restrictions);
@@ -562,7 +520,7 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
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
+@@ -627,16 +630,18 @@ Adaptation VideoStreamAdapter::GetAdaptD
case DegradationPreference::MAINTAIN_FRAMERATE:
return GetAdaptationDown();
case DegradationPreference::BALANCED: {
@@ -580,20 +538,21 @@ diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/thi
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<RestrictionsWithCounters>(first_step)) {
+ if (!std::holds_alternative<RestrictionsWithCounters>(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
-@@ -408,17 +408,17 @@ absl::optional<FrameDependencyStructure>
- }
- return structure;
- }
- case VideoCodecType::kVideoCodecAV1:
+@@ -425,17 +425,18 @@ std::optional<FrameDependencyStructure>
case VideoCodecType::kVideoCodecH264:
+ return MinimalisticStructure(
+ /*num_spatial_layers=*/1,
+ /*num_temporal_layers=*/kMaxTemporalStreams);
+ case VideoCodecType::kVideoCodecAV1:
case VideoCodecType::kVideoCodecH265:
- return absl::nullopt;
+ return std::nullopt;
}
- RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
++ //RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
+ RTC_CHECK_NOTREACHED();
}
@@ -606,7 +565,7 @@ diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libw
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
+@@ -29,16 +29,17 @@ const char* StreamTypeToString(VideoSend
case VideoSendStream::StreamStats::StreamType::kMedia:
return "media";
case VideoSendStream::StreamStats::StreamType::kRtx:
@@ -624,27 +583,27 @@ diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwe
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
-@@ -257,16 +257,17 @@ bool Codec::Matches(const Codec& codec)
- (codec.bitrate == 0 || bitrate <= 0 ||
- bitrate == codec.bitrate) &&
- ((codec.channels < 2 && channels < 2) ||
- channels == codec.channels);
-
- case Type::kVideo:
- return IsSameCodecSpecific(name, params, codec.name, codec.params);
- }
-+ return false; // unreached
+diff --git a/third_party/libwebrtc/media/base/codec_comparators.cc b/third_party/libwebrtc/media/base/codec_comparators.cc
+--- a/third_party/libwebrtc/media/base/codec_comparators.cc
++++ b/third_party/libwebrtc/media/base/codec_comparators.cc
+@@ -334,16 +334,17 @@ bool MatchesWithCodecRules(const Codec&
+ left_codec.bitrate == right_codec.bitrate) &&
+ ((right_codec.channels < 2 && left_codec.channels < 2) ||
+ left_codec.channels == right_codec.channels);
+
+ case Codec::Type::kVideo:
+ return IsSameCodecSpecific(left_codec.name, left_codec.params,
+ right_codec.name, right_codec.params);
+ }
++ return false;
};
return matches_id && matches_type_specific();
}
- bool Codec::MatchesRtpCodec(const webrtc::RtpCodec& codec_capability) const {
- webrtc::RtpCodecParameters codec_parameters = ToCodecParameters();
-
+ bool MatchesWithReferenceAttributes(const Codec& codec1, const Codec& codec2) {
+ return MatchesWithReferenceAttributesAndComparator(
+ codec1, codec2, [](int a, int b) { return a == b; });
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
@@ -679,7 +638,7 @@ 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);
+ SimpleStringBuilder builder(buffer);
builder << MetricNamePrefix(input_volume_type) << "OnChange";
return metrics::HistogramFactoryGetCountsLinear(/*name=*/builder.str(),
/*min=*/1,
@@ -687,7 +646,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.
--- 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<float> PreprocessWeights(rtc
- rtc::FunctionView<float(float)> GetActivationFunction(
+ FunctionView<float(float)> GetActivationFunction(
ActivationFunction activation_function) {
switch (activation_function) {
case ActivationFunction::kTansigApproximated:
@@ -708,7 +667,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.
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
+@@ -94,16 +94,17 @@ GainControl::Mode Agc1ConfigModeToInterf
case Agc1Config::kAdaptiveAnalog:
return GainControl::kAdaptiveAnalog;
case Agc1Config::kAdaptiveDigital:
@@ -720,13 +679,13 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
+ return GainControl::kAdaptiveAnalog;
}
- bool MinimizeProcessingForUnusedOutput() {
- return !field_trial::IsEnabled("WebRTC-MutedStateKillSwitch");
+ bool MinimizeProcessingForUnusedOutput(const FieldTrialsView& field_trials) {
+ return !field_trials.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
+@@ -161,17 +162,17 @@ int AudioFormatValidityToErrorCode(Audio
case AudioFormatValidity::kValidAndSupported:
return AudioProcessing::kNoError;
case AudioFormatValidity::kValidButUnsupportedSampleRate: // fall-through
@@ -745,7 +704,7 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
const StreamConfig& input_config,
const StreamConfig& output_config) {
AudioFormatValidity input_validity = ValidateAudioFormat(input_config);
-@@ -2420,16 +2421,17 @@ void AudioProcessingImpl::InitializeNois
+@@ -2062,16 +2063,17 @@ void AudioProcessingImpl::InitializeNois
case NoiseSuppresionConfig::kModerate:
return NsConfig::SuppressionLevel::k12dB;
case NoiseSuppresionConfig::kHigh:
@@ -763,31 +722,10 @@ diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_imp
cfg, proc_sample_rate_hz(), num_proc_channels());
}
}
-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";
- case TransientSuppressor::VadMode::kNoVad:
- return "no VAD";
- }
-+ RTC_CHECK_NOTREACHED();
- }
-
- } // 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
-@@ -82,16 +82,18 @@ BandwidthLimitedCause GetBandwidthLimite
+@@ -81,16 +81,18 @@ BandwidthLimitedCause GetBandwidthLimite
// Probes may not be sent in this state.
return BandwidthLimitedCause::kLossLimitedBwe;
case LossBasedState::kIncreasing:
@@ -804,8 +742,8 @@ diff --git a/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc
GoogCcNetworkController::GoogCcNetworkController(NetworkControllerConfig config,
GoogCcConfig goog_cc_config)
- : key_value_config_(config.key_value_config ? config.key_value_config
- : &trial_based_config_),
+ : env_(config.env),
+ packet_feedback_only_(goog_cc_config.feedback_only),
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
@@ -830,7 +768,7 @@ diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screenc
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
+@@ -86,16 +86,17 @@ bool BitrateProber::ReadyToSetActiveStat
return true;
}
// If config_.min_packet_size > 0, a "large enough" packet must be
@@ -867,7 +805,7 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depa
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
--- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
+++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestion_control_feedback.cc
-@@ -105,16 +105,17 @@ uint16_t To2BitEcn(rtc::EcnMarking ecn_m
+@@ -108,16 +108,17 @@ uint16_t To2BitEcn(rtc::EcnMarking ecn_m
return 0;
case rtc::EcnMarking::kEct1:
return kEcnEct1 << 13;
@@ -888,7 +826,7 @@ diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_packet/congestio
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
+@@ -145,16 +145,17 @@ bool IsNonVolatile(RTPExtensionType type
#if defined(WEBRTC_MOZILLA_BUILD)
case kRtpExtensionCsrcAudioLevel:
// TODO: Mozilla implement for CsrcAudioLevel
@@ -951,7 +889,7 @@ diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_laye
diff --git a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
--- a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
+++ b/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc
-@@ -66,16 +66,17 @@ bool BeginningOfIdr(const H26xPacketBuff
+@@ -58,16 +58,17 @@ bool BeginningOfIdr(const H26xPacketBuff
case kH264StapA:
case kH264SingleNalu: {
return contains_idr_nalu;
@@ -965,10 +903,166 @@ diff --git a/third_party/libwebrtc/modules/video_coding/h26x_packet_buffer.cc b/
bool HasSps(const H26xPacketBuffer::Packet& packet) {
auto& h264_header =
- absl::get<RTPVideoHeaderH264>(packet.video_header.video_type_header);
- return absl::c_any_of(GetNaluInfos(h264_header), [](const auto& nalu_info) {
+ std::get<RTPVideoHeaderH264>(packet.video_header.video_type_header);
+ return absl::c_any_of(h264_header.nalus, [](const auto& nalu_info) {
return nalu_info.type == H264::NaluType::kSps;
});
+diff --git a/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc b/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
+--- a/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
++++ b/third_party/libwebrtc/net/dcsctp/packet/parameter/reconfiguration_response_parameter.cc
+@@ -57,16 +57,17 @@ absl::string_view ToString(Reconfigurati
+ case ReconfigurationResponseParameter::Result::
+ kErrorRequestAlreadyInProgress:
+ return "Error: request already in progress";
+ case ReconfigurationResponseParameter::Result::kErrorBadSequenceNumber:
+ return "Error: bad sequence number";
+ case ReconfigurationResponseParameter::Result::kInProgress:
+ return "In progress";
+ }
++ return "Should never be reached";
+ }
+
+ std::optional<ReconfigurationResponseParameter>
+ ReconfigurationResponseParameter::Parse(rtc::ArrayView<const uint8_t> data) {
+ std::optional<BoundedByteReader<kHeaderSize>> reader = ParseTLV(data);
+ if (!reader.has_value()) {
+ return std::nullopt;
+ }
+diff --git a/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc b/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
+--- a/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
++++ b/third_party/libwebrtc/net/dcsctp/public/dcsctp_handover_state.cc
+@@ -38,16 +38,17 @@ constexpr absl::string_view HandoverUnre
+ return "RETRANSMISSION_QUEUE_FAST_RECOVERY";
+ case HandoverUnreadinessReason::kRetransmissionQueueNotEmpty:
+ return "RETRANSMISSION_QUEUE_NOT_EMPTY";
+ case HandoverUnreadinessReason::kPendingStreamReset:
+ return "PENDING_STREAM_RESET";
+ case HandoverUnreadinessReason::kPendingStreamResetRequest:
+ return "PENDING_STREAM_RESET_REQUEST";
+ }
++ return "NOTREACHED";
+ }
+ } // namespace
+
+ std::string HandoverReadinessStatus::ToString() const {
+ std::string result;
+ for (uint32_t bit = 1;
+ bit <= static_cast<uint32_t>(HandoverUnreadinessReason::kMax);
+ bit *= 2) {
+diff --git a/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc b/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
+--- a/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
++++ b/third_party/libwebrtc/net/dcsctp/rx/data_tracker.cc
+@@ -354,16 +354,17 @@ absl::string_view DataTracker::ToString(
+ return "IDLE";
+ case AckState::kBecomingDelayed:
+ return "BECOMING_DELAYED";
+ case AckState::kDelayed:
+ return "DELAYED";
+ case AckState::kImmediate:
+ return "IMMEDIATE";
+ }
++ return "NOTREACHED";
+ }
+
+ HandoverReadinessStatus DataTracker::GetHandoverReadiness() const {
+ HandoverReadinessStatus status;
+ if (!additional_tsn_blocks_.empty()) {
+ status.Add(HandoverUnreadinessReason::kDataTrackerTsnBlocksPending);
+ }
+ return status;
+diff --git a/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc b/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
+--- a/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
++++ b/third_party/libwebrtc/net/dcsctp/socket/dcsctp_socket.cc
+@@ -249,16 +249,17 @@ bool DcSctpSocket::IsConsistent() const
+ !t1_cookie_->is_running() && t2_shutdown_->is_running());
+ case State::kShutdownReceived:
+ return (tcb_ != nullptr && !t1_init_->is_running() &&
+ !t1_cookie_->is_running() && !t2_shutdown_->is_running());
+ case State::kShutdownAckSent:
+ return (tcb_ != nullptr && !t1_init_->is_running() &&
+ !t1_cookie_->is_running() && t2_shutdown_->is_running());
+ }
++ return false; // notreached
+ }
+
+ constexpr absl::string_view DcSctpSocket::ToString(DcSctpSocket::State state) {
+ switch (state) {
+ case DcSctpSocket::State::kClosed:
+ return "CLOSED";
+ case DcSctpSocket::State::kCookieWait:
+ return "COOKIE_WAIT";
+@@ -270,16 +271,17 @@ constexpr absl::string_view DcSctpSocket
+ return "SHUTDOWN_PENDING";
+ case DcSctpSocket::State::kShutdownSent:
+ return "SHUTDOWN_SENT";
+ case DcSctpSocket::State::kShutdownReceived:
+ return "SHUTDOWN_RECEIVED";
+ case DcSctpSocket::State::kShutdownAckSent:
+ return "SHUTDOWN_ACK_SENT";
+ }
++ return "NOTREACHED";
+ }
+
+ void DcSctpSocket::SetState(State state, absl::string_view reason) {
+ if (state_ != state) {
+ RTC_DLOG(LS_VERBOSE) << log_prefix_ << "Socket state changed from "
+ << ToString(state_) << " to " << ToString(state)
+ << " due to " << reason;
+ state_ = state;
+@@ -588,16 +590,17 @@ SocketState DcSctpSocket::state() const
+ case State::kEstablished:
+ return SocketState::kConnected;
+ case State::kShutdownPending:
+ case State::kShutdownSent:
+ case State::kShutdownReceived:
+ case State::kShutdownAckSent:
+ return SocketState::kShuttingDown;
+ }
++ return SocketState::kShuttingDown; // notreached
+ }
+
+ void DcSctpSocket::SetMaxMessageSize(size_t max_message_size) {
+ options_.max_message_size = max_message_size;
+ }
+
+ size_t DcSctpSocket::buffered_amount(StreamID stream_id) const {
+ return send_queue_.buffered_amount(stream_id);
+diff --git a/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc b/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
+--- a/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
++++ b/third_party/libwebrtc/net/dcsctp/socket/packet_sender.cc
+@@ -39,10 +39,11 @@ bool PacketSender::Send(SctpPacket::Buil
+ return false;
+ }
+
+ case SendPacketStatus::kError: {
+ // Nothing that can be done.
+ return false;
+ }
+ }
++ return false; // not reached
+ }
+ } // namespace dcsctp
+diff --git a/third_party/libwebrtc/net/dcsctp/timer/timer.cc b/third_party/libwebrtc/net/dcsctp/timer/timer.cc
+--- a/third_party/libwebrtc/net/dcsctp/timer/timer.cc
++++ b/third_party/libwebrtc/net/dcsctp/timer/timer.cc
+@@ -44,16 +44,17 @@ TimeDelta GetBackoffDuration(const Timer
+ if (duration > options.max_backoff_duration) {
+ return options.max_backoff_duration;
+ }
+ }
+
+ return TimeDelta(std::min(duration, Timer::kMaxTimerDuration));
+ }
+ }
++ return base_duration; // fake nonreached
+ }
+ } // namespace
+
+ constexpr TimeDelta Timer::kMaxTimerDuration;
+
+ Timer::Timer(TimerID id,
+ absl::string_view name,
+ OnExpired on_expired,
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
@@ -990,3 +1084,24 @@ diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resourc
flags.resize(codec.VP9().numberOfSpatialLayers);
for (size_t i = 0; i < flags.size(); ++i) {
flags[i] = codec.spatialLayers[i].active;
+diff --git a/third_party/libwebrtc/video/config/encoder_stream_factory.cc b/third_party/libwebrtc/video/config/encoder_stream_factory.cc
+--- a/third_party/libwebrtc/video/config/encoder_stream_factory.cc
++++ b/third_party/libwebrtc/video/config/encoder_stream_factory.cc
+@@ -105,16 +105,17 @@ int GetDefaultMaxQp(VideoCodecType codec
+ return cricket::kDefaultVideoMaxQpH26x;
+ case webrtc::kVideoCodecVP8:
+ case webrtc::kVideoCodecVP9:
+ case webrtc::kVideoCodecGeneric:
+ return cricket::kDefaultVideoMaxQpVpx;
+ case webrtc::kVideoCodecAV1:
+ return cricket::kDefaultVideoMaxQpAv1;
+ }
++ return cricket::kDefaultVideoMaxQpAv1; // fake return for hopefully not reached
+ }
+
+ // Round size to nearest simulcast-friendly size.
+ // Simulcast stream width and height must both be dividable by
+ // |2 ^ (simulcast_layers - 1)|.
+ int NormalizeSimulcastSize(const FieldTrialsView& field_trials,
+ int size,
+ size_t simulcast_layers) {