Skip to content

**DO NOT CLOSE** Notification V2#2

Draft
coder0107git wants to merge 138 commits into
coder0107git:notification-hackfrom
msft-mirror-aosp:upstream-main
Draft

**DO NOT CLOSE** Notification V2#2
coder0107git wants to merge 138 commits into
coder0107git:notification-hackfrom
msft-mirror-aosp:upstream-main

Conversation

@coder0107git
Copy link
Copy Markdown
Owner

Hack to get commit notifications. Do not close!!!

DKLoehr and others added 4 commits March 25, 2025 15:20
Clang has added a new warning for virtual specifiers on methods of
`final` classes. This cleans them up in preparation for enabling that
warning.

Bug: chromium:403236787
Change-Id: I1bb144494028f674d0de409a65412af1f084b56c
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6391658
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Currently, Chromium openscreen builders are failing for timeout
since remote execution is disabled.
https://ci.chromium.org/ui/p/openscreen/builders/try/chromium_linux_x64/b8719177567471980433/overview

Those builders need to switch from Ninja to Siso.
The new properties are necessary for the migration.

Bug: 379584977
Change-Id: I52f42dcc247a70cf609e0fcfd6c916ed914ba531
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6436889
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
This patch resolves a longish standing TODO to move the statistics
generation code out of the Sender class and into its own, unit tested
class. This class is called StatisticsDispatcher.

Bug: 298277160
Change-Id: I755beb6c4222f65a94a9b5503a708c431e52bc1b
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6398046
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
The chromium builders don't use Reclient anymore.

Bug: 379584977
Change-Id: I2071ea6c93c3af80e19a82dfd93ddf25fbbf5725
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6439985
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
@coder0107git coder0107git mentioned this pull request Apr 9, 2025
DKLoehr and others added 25 commits April 16, 2025 16:57
Clang maps -Wall (or /Wall) to -Weverything on windows, so it causes
low-value warnings to trigger during out build. Instead, we should
use /W4, which corresponds to gcc's `-Wall -Wextra`.

Bug: chromium:410803303
Change-Id: Id512338bf412794e4b7278e7b6332bc44fe74305
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6457698
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
This patch improves error messaging around certificate loading,
especially private keys.

Change-Id: I5c00b44a9bed04ec51826d78805b0cb29f90e855
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6473163
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
See comment on https://chromium-review.googlesource.com/c/openscreen/+/6457698

This config mostly exists to disable -Wshadow for one cc file.

Instead, just build that one file as no_chromium_code.

No effective behavior change.

Bug: chromium:410803303
Change-Id: I952057f0a31f0a150926c55e65fd6ade89b93807
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6483407
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
This patch fixes a critical infra failure where the build is
currently broken due to a minor speed improvement made to the clang
update script.

This patch rolls the build and buildtools submodules as well as updates
the clang update download script to pull a specific version of the
update script, to avoid breaking changes like this in the future.

Change-Id: I975ecaf1667cf03c57ac3f7bd15314b1c54281a9
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6544748
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch updates the platform implementation to not subscribe
to wait events for UDP sockets. It is part of a larger cleanup
to improve the amount of time spent in loops in the platform
implementation.

Change-Id: Ib09474a1ee05629770acd6b2d7893276bb965e79
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6539456
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch optimizes a check for Writable handles,
ensuring that we don't pass a handle to the write
argument for select() if we don't have anything to
write. This lowers the amount of cycles spent
polling the select loop.

This is a not-insignificant change, involving updating
the SocketHandleWaiter interface and its subscribers to
allow the waiter to poll for whether the socket has pending
write events or not.

Change-Id: Icbd38a67fbc1fa4856f9605d6306971568dcca5e
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6556928
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This also requires a change in chromium/src.

Bug: b:374199735
Change-Id: I76bc61259d939ff8c87aba84650f228de92c5c2e
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6533602
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Antonio Rivera <antoniori@google.com>
Also updated protobuf revision to match the current version.


Bug: 421988683, 421989590, 421989329, 421989630, 421989709, 421988806, 421989809, 421988937
Change-Id: I45e3cbc029bee0f5f04e2fb0c8f76c9415b7eeba
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6768426
Reviewed-by: Takumi Fujimoto <takumif@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Brown <rop@google.com>
takumif@ is no longer on the team.

Change-Id: Ie42bf4e833253c12346e43434457c60a87e2b9f6
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6882217
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Takumi Fujimoto <takumif@chromium.org>
Python3 is used by default in recipes now and this config is not
necessary anymore.

Bug: 440235171
Change-Id: I89d420b8481fe5af08704939f74033226fd511ba
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6888255
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Bug: None
Change-Id: I6dc21fff88a8e61806e98defb5178ce4bd8bcc3a
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6896306
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Not needed and deprecated [0]. This CL should be a no-op.

[0]: https://chromium.googlesource.com/external/github.com/google/googletest.git/+/a05c0915074bcd1b82f232e081da9bb6c205c28d/googlemock/include/gmock/gmock-actions.h#2046

Bug: chromium:439838457
Test: `openscreen_unittests` in Chromium
Change-Id: I73446be5df46235049139edde087dfa17f7ded15
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6897917
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Not needed and deprecated [0]. This CL should be a no-op.

[0]: https://chromium.googlesource.com/external/github.com/google/googletest.git/+/a05c0915074bcd1b82f232e081da9bb6c205c28d/googlemock/include/gmock/gmock-actions.h#2046

Bug: chromium:439838457
Test: `openscreen_unittests` in Chromium
Change-Id: Ib4ef3f314a6b0348ac276c7145b5f5862b09853c
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6897919
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Not needed and deprecated [0]. This CL should be a no-op.

[0]: https://chromium.googlesource.com/external/github.com/google/googletest.git/+/a05c0915074bcd1b82f232e081da9bb6c205c28d/googlemock/include/gmock/gmock-actions.h#2046

Bug: chromium:439838457
Test: `openscreen_unittests` in Chromium
Change-Id: If131ba9ea908a1f2918dc9e712821341714a35a1
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6897920
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/b514bdc898e2..eb2d85edd0bf

$ git log b514bdc89..eb2d85edd --date=short --no-merges --format='%ad %ae %s'
2025-08-24 absl-team Remove unused syslog dependency for Fuchsia.
2025-08-19 absl-team Internal header include changes.
2025-08-16 absl-team Deprecate single-argument DoAll and Invoke.
2025-08-11 absl-team Update the document in typed tests to use using-declaration instead of typedef
2025-07-28 absl-team Provide a better error message when ASSERT and SKIP macros are used in methods that return values
2025-07-23 absl-team Skip the predicate on SIGSEGV in death-test on Android builds with API level <= 23.
2025-07-18 absl-team Fix the sample usage of `ConvertGenerator` by removing the type-id name.
2025-07-12 absl-team Automated Code Change
2025-07-04 absl-team Replace internal link in GoogleTest docs
2025-06-27 pizzud gtest: Reword fail_if_no_test_selected_message for sharding and filtering.
2025-06-24 absl-team Add documentation for exception matchers.
2025-06-13 absl-team Although the following paragraph explains there is a better solution, having this technique in the bullet point seems to suggest that this technique is considered as a valid alternative. It would be better to drop it or make it clear that this technique is not recommended.
2025-06-12 absl-team Add UnpackStructImpl for structs with 24, 25 and 26 fields.
2025-06-11 joel.langlois README.md: Fixed broken Markdown link formatting.
2025-06-10 absl-team Automated Code Change
2025-06-09 absl-team In MatcherCast, store the input value as its own type rather than as the Matcher type, to avoid dangling references
2025-06-09 pizzud googletest: Add a flag to fail if no tests were selected to run.
2025-06-05 absl-team Remove "blindly" from the gmock "uninteresting call" message.
2025-05-30 absl-team Fix unified diff headers.
2025-05-30 absl-team Use the provided length in ConditionalPrintAsText
2025-05-25 nextgen.gubka Fix extra ';' after member function definition
2025-05-22 absl-team Updates Google Analytics tracker.
2025-05-22 dcheng Print std::basic_string_view<Char> as a string literal
2025-05-20 dmauro Delete the absl polyfill support for std::any, std::optional and std::variant now that the absl types are aliases of the std types
2025-05-19 absl-team Add UnpackStructImpl specialization for 23 struct members.
2025-05-19 absl-team Use static_cast instead of ImplicitCast_ for character conversions
2025-05-15 dmauro GoogleTest CI Update
2025-05-13 mkruskal Add [[nodiscard]] to GetParam() to prevent accidental misuse.
2025-05-12 absl-team Clarify that the return value of `InvokeArgument` is not the return value of the action.
2025-05-01 absl-team gtest: Remove incorrect documentation of private headers as PIMPL idiom
2025-04-30 dmauro Update documentation for v1.17.0
2025-04-30 dmauro Update GoogleTest dependencies in preparation for release
2025-04-29 lar Use std::memcpy instead of a union to access floating point bits.
2025-04-29 dmauro Fix GCC15 warning that <ciso646> is deprecated in C++17
2025-04-23 absl-team AllOf, AnyOf, Optional: Avoid generating unnecessary match explanations
2025-04-17 dmauro Bump RE2 dependency to 2024-07-02.bcr.1
2025-04-09 jacobsa `gmock-actions`: add a missing conversion operator to `WithArgsAction`.
2025-04-09 jacobsa `gmock-actions`: run clang-format.
2025-03-26 durandal Remove obsolete references to LinuxThreads.
2025-03-21 absl-team Add UnpackStructImpl for structs with 22 fields.
2025-03-21 ototot Fix a typo
2025-03-20 absl-team Add a non-'const' overload for the function invoked by the IgnoreArgs action wrapper.
2025-03-18 wan Improve the failure messages of `ElementsAre()`, `ElementsAreArray()`, etc.
2025-03-11 wan Clarify the polymorphic matcher concept and explain how to define a composite matcher.
2025-03-11 wan Allow `DistanceFrom()` to use user-defined `abs()` by default.
2025-03-07 wan Add a `DistanceFrom()` matcher for general distance comparison.
2025-03-04 absl-team Add a `testing::ConvertGenerator` overload that accepts a converting functor. This allows the use of classes that do not have a converting ctor to the desired type.
2025-02-28 dmauro Try to warn the user when test filters do not match any tests
2025-02-27 pizzud googletest: Add testonly alias of :gtest for testonly cc_libraries to use.
2025-02-27 absl-team Add UnpackStructImpl for structs with 21 fields.
2025-02-26 dmauro Output to the test warning file if no tests are linked.
2025-02-24 wan Adds support for a --gtest_fail_if_no_test_linked flag to fail the test program if no test case is linked in (a common programmer mistake).
2025-02-21 dmauro GoogleTest C++17 cleanups   * Use `[[nodiscard]]` instead of GTEST_MUST_USE_RESULT_   * Use `[[maybe_unused]]` instead of  GTEST_INTERNAL_ATTRIBUTE_MAYBE_UNUSED   * Use `[[deprecated]]` instead of `GTEST_INTERNAL_DEPRECATED`   * Remove `GTEST_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL`
2025-02-17 jmr Property: Promote note to warning
2025-02-12 dmauro Require C++17
2025-02-10 absl-team Add SaveArgByMove
2025-02-07 dmauro Update docs for v1.16.x branch
2025-02-06 dmauro Update GoogleTest deps in preparation for release
2025-02-06 dmauro Remove empty glob pattern, which is now an error.
2025-01-31 absl-team Pull Regexp syntax out of Death test section in advanced.md
2025-01-31 absl-team Fix extended regular expressions reference URL in advanced.md
2025-01-30 absl-team Export testsuite properties as XML elements, not attributes.
2025-01-16 absl-team Cast mutable lvalue references to const from testing::ResultOf
2025-01-15 absl-team Enable safe matcher casts from `Matcher<const T&>` to `Matcher<T>`.
2025-01-10 hector.dearman Default to color output for ghostty
2025-01-09 absl-team Document unexpected interaction with death test error code and gmock.
2025-01-08 absl-team Add UnpackStructImpl for structs with 20 fields.
2024-12-26 absl-team gtest: Output a canned test case for test suite setup / teardown failures in XML/JSON
2024-12-23 absl-team Put the fake Fuchsia SDK in a module extension
2024-12-16 absl-team the public version already has the const qualifier
2024-12-11 absl-team Update the links to ISTQB glossary.
2024-12-10 absl-team Add support for printing C++20 std::*_ordering types to gtest. Adds feature test macro for C++20 <compare> header, a pretty-printer, and tests. Inexplicably, these types aren't enums, so can't be handled with a switch.
2024-11-15 andy.soffer Fix documentation bug.
2024-11-04 absl-team Fixing a typo in the documentation of IsSubsetOf().
2024-10-31 absl-team Remove mention of using `ASSERT_...` statements inside custom matcher definitions.
2024-10-27 pbos Use FAIL() in GTEST_SKIP() documentation
2024-10-16 absl-team Avoid creating std::vector<const T> in UnorderedElementsAreArrayMatcher and others.
2024-10-14 absl-team This change adjusts how `ASSERT_NEAR` and `EXPECT_NEAR` treats infinity, such that `ASSERT_NEAR(inf, inf, 0)` passes. This makes the behavior more consistent with `ASSERT_EQ(inf, inf)` which succeeds.
2024-10-04 absl-team Automated Code Change
2024-10-01 absl-team Optional(): Add support for std::optional<>-like types lacking bool conversion.
2024-09-16 absl-team Use matcher's description in AnyOf when matcher has no explanation.
2024-08-29 absl-team Automated Code Change
2024-08-01 dmauro Update main to point to 1.15.2 patch release
2024-07-30 dmauro Remove auto-detection of Python toolchain from MODULE.bazel since it affects downstream users
2024-07-30 absl-team Directly include `gmock.h` and `gtest.h` in gmock-matchers tests.
2024-07-24 absl-team Use matcher's description in AllOf if matcher has no explanation.
2024-07-23 jacobsa gmock-actions: make DoAll convert to OnceAction via custom conversions.
2024-07-23 jacobsa Run clang-format.
2024-07-20 dmauro Change the Bazel build to use the canonical repo names used by Bzlmod and the Bazel Central Registry
2024-07-16 dmauro Update GoogleTest Bazel quickstart for Bzlmod
2024-07-16 dmauro Update main branch to reflect the release of 1.15.0
2024-07-16 absl-team Use matcher's description in AllOf if matcher has no explanation.
2024-07-15 absl-team Use matcher's description in AllOf if matcher has no explanation.

Created with:
  roll-dep third_party/googletest/src

Change-Id: I8352afc32791030187946292a2f5aca6fcc8a05a
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6897921
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Bug: 40249958
Change-Id: I44cac4484c5172f71f96699b6dc9e41e632f5fd8
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6909331
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
…6e8a8acb91a

This picks up a couple *years* worth of BoringSSL changes. The main
relevant change here is that generate_build_files.py is no longer
needed! Everything it generated is now checked in BoringSSL proper,
including a GN source list.

$ git log 8d19c850d..26e8a8acb --date=short --no-merges --format='%ad %ae %s'
2025-08-22 davidben bssl-crypto: Fix Ed25519 SPKI parser to check key types
2025-07-09 agl Add a jitter entropy source.
2025-08-15 davidben Set an EVP_PKEY's algorithm and data together
2025-08-15 davidben Make some more half-empty EVP_PKEY states impossible
2025-08-14 davidben Limit EVP_PKEY_set_type to EVP_PKEY_X25519
2025-08-19 davidben Add a test that arbitrary curves can be wrapped in EVP_PKEY
2025-08-15 davidben Stop tracking an ENGINE in EVP_PKEY_CTX
2025-08-13 davidben Rename EVP_PKEY_METHOD to EVP_PKEY_CTX_METHOD
2025-08-15 davidben Pull the EC_GROUP_new_by_curve_name up into EVP_PKEY_CTX_set_ec_paramgen_curve_nid
2025-08-16 davidben Split evp_tests.txt into separate files
2025-08-16 davidben Add a test for SPKI and PKCS8 parsing with unknown algorithms
2025-08-20 chlily Fix markdown syntax in BUILDING.md
2025-08-17 davidben Test async BIO_flush and fix a corner case
2025-08-15 davidben Rename EVP_R_EXPECTING_AN_EC_KEY_KEY to match OpenSSL
2025-08-16 davidben Document the generators for all the MODP groups
2025-08-15 davidben Remove an old, impractical TODO
2025-08-15 davidben Say a bit more in docs about how to use EVP_PKEY_CTX
2025-08-18 davidben Bump version for BCR
2025-08-15 davidben Run through more code in PKCS#8 and SPKI parsers
2025-08-18 davidben Fix typo in comment
2025-08-17 davidben runner: Remove need for an AllCurves value
2025-08-14 davidben Remove redundant copy of EVP_PKEY type
2025-08-15 davidben Remove EVP_PKEY_print_* support for DSA
2025-08-15 davidben Don't support parameterless DSA keys in SPKIs
2025-08-15 davidben Add a couple more no-op compatibility functions
2025-08-14 davidben More consistently reset EVP_PKEYs in free_it
2025-08-14 davidben Unexport the Kyber implementation
2025-08-14 davidben Deprecate EVP_PKEY_set_type
2025-08-14 davidben Fix reference to public key in evp.h docs
2025-08-13 ellyjones pki: add PEMDecode and PEMDecodeSingle
2025-06-17 agl Switch to using a derivation function in CTR-DRBG.
2025-08-13 ellyjones pki: allow span<string_view> for allowed types in PEMTokenizer
2025-08-13 chlily Style guide: mention placement of & for reference types
2025-08-12 davidben Update releasing docs slightly
2025-08-12 chlily Implement MLKEM1024 for TLS
2025-08-06 agl delocate: support 4-bit tweak immediates for AArch64.
2025-08-08 davidben Add a discussion about callbacks to API Conventions
2025-06-17 agl Don't run CTR-DRBG in Kyber tests.
2025-08-07 agl Link to ACVP results for 20250728.
2025-08-07 davidben Bump Bazel deps and version for BCR
2025-08-05 chlily Expand BCM abbreviation in the FIPS.md documentation
2025-08-04 chlily Add IWYU export in nid.h file generated by objects.go
2025-08-04 chlily Fix documentation typo
2025-08-04 chlily Revert Rust config for 32-bit Linux CI/CQ bots
2025-08-04 chlily Run Rust recipe steps on Mac CI/CQ builders and 32-bit Linux
2025-07-31 chlily Run Rust recipe steps on "win64_rel" builder
2025-07-31 chlily Make Windows Rust try builder use a Release build
2025-07-29 chlily Add a default-off win64_rust try builder for testing
2025-07-28 chlily Run Rust recipe steps on "linux" builder
2025-07-28 agl Fix FIPS version number comment.
(...)
2023-09-01 alex.gaynor Return the correct value in EVP_CIPHER_CTX_iv_length after EVP_CTRL_AEAD_SET_IVLEN
2023-06-01 yukl Add X25519 bindings for bssl-crypto
2023-06-01 yukl Add ecdh and P256 bindings to bssl-crypto
2023-09-01 davidben Update the warnings on split handshakes and handshake hints
2023-09-01 davidben runner: Check that the shim HRRs echo the session ID
2023-09-01 davidben Reland "Build with C11 on MSVC in the standalone Bazel build"
2023-08-31 yukl Fix cargo clippy and fmt
2023-08-17 scw delocate: accept more directive expressions
2023-08-29 davidben Initialize libunwind cursors from the signal handler's ucontext_t
2023-08-24 davidben Remove another decltype(fclose)
2023-08-28 davidben Save trampoline state in unwind tests more straightforwardly
2023-08-29 davidben Explicitly mark saved registers with .cfi_restore
2023-08-28 bbe Remove undesired OPENSSL_EXPORT's in non-library code
2023-08-28 davidben Fix RBP-based unwind in fiat assembly
2023-08-28 bbe Remove another OPENSSL_EXPORT in an enum
2023-08-24 davidben Silence warn_unused_result warning on write() call
2023-08-25 bbe Remove OPENSSL_EXPORT from enum in fillins/net_errors.h
2023-08-25 bbe Ensure OPENSSL_EXPORT is only on the class not methods.
2023-08-24 bbe Add pki file lists to generated gn build files
2023-06-05 nwadih Add Rust bindings to AES_CTR through EVP_* cipher API's
2023-08-24 davidben Export CBS/CBB unicode functions
2023-08-24 bbe rename fillins/string_util.h because gn is special
2023-08-24 bbe rename fillins/base64.c to handle gn being special
2023-08-24 davidben Also suppress OPENSSL_LINUX for nanolibc
2023-08-24 davidben Add BN_bn2lebinpad and BN_lebin2bn
2023-08-17 davidben Use a callable type for ScopedFILE in settings_writer.cc
2023-06-02 nwadih Add Rust bindings to AES-GCM through the EVP_AEAD_* APIs
2023-08-18 davidben Deduplicate the three copies of OBJ_cmp
2023-08-17 bbe Remove header file accidentally added to sources.cmake
2023-08-17 bbe Sync pki to chromium d740199e083b70d13506973c6f479f0b01165a05
2023-07-25 bbe Move the fuzzers into the fuzz directory and make them build.
2023-08-16 davidben Fix typo in .size directives for aesni_gcm_encrypt
2023-08-16 bbe Hook in ocsp into libpki, and run the ocsp unit tests.
2023-08-16 bbe Update pki to chromium cf9a08ff8be3a3f2d5b13693cc13ef22ab7ee618
2023-08-16 bbe Make a BSSL_CHECK that always aborts
2023-05-19 nwadih Add rust bindings to AES-GCM-SIV through the EVP_AEAD_* API's
2023-08-14 davidben Add EVP_HPKE_KEY_move
2023-08-11 davidben Default to q = (p-1)/2 for DH keygen
2023-08-15 davidben Remove the CRYPTO_is_*_capable_at_runtime indirection
2023-08-14 davidben Select SHA-256 vs SHA-512 explicitly in perlasm
2023-08-14 davidben Hash-to-curve is now RFC 9380
2023-08-14 bbe Add the rest of the new test data files to sources.cmake
2023-08-11 davidben Align DH keygen with NIST's formulation when q is available
2023-08-14 bbe add missing test file to sources.cmake
2023-07-27 davidben Consistently reject large p and large q in DH
2023-08-14 bbe use <errno.h> instead of <sys/errno.h>
2023-08-11 davidben Document and test DH_generate_key's weird key reuse behavior
2023-08-14 bbe Sync pki to chromium 8049b24a3fa617e66c5d3fc0e9322bb07c500f49
2023-07-31 bbe Add a basic sanity test for getentropy() if we are using it.
2023-07-20 yich Add ChromeOS EC related targets

Created with:
  roll-dep third_party/boringssl/src

Change-Id: Ibfb51bca122dc6ed2cffa76fe1d2a79e4a1e47fe
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6881127
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Bug: 391445226
Change-Id: I16ee2a97fb106d2e2560991cd1bfbe92913949fa
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/6917871
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Taesun Yeoum <taesuny@google.com>
My local mac compiler is complaining about incorrect semicolon
usage in the standalone sender code. This patch fixes the build
by removing the extraneous semicolons.

Change-Id: I87d33e48c59906fce203dfeacb37ab8cf57e1262
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7007553
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch cleans up the statistics defines file,
changing the name to statistics common to more accurately
represent its contents, and more tightly grouping related
types and classes into the StatisticsEvent struct.

This is helpful for the upcoming receiver statistics implementation.

Bug: 448199360
Change-Id: I5bc6ee380b52c10fbe839de12844ba1b03eb58c9
Bypass-Check-License: moved a file.
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7008996
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch significantly refactors the ClockOffsetEstimator to improve
the accuracy and stability of its network latency and clock offset
estimations. The previous implementation used a simple weighted moving
average, which was susceptible to jitter and slow to adapt to changing
network conditions.

The core of this change is the introduction of a 1D Kalman filter.
This allows the estimator to:
- More effectively smooth out network jitter, providing a more stable
  latency estimate.
- Converge more quickly and accurately to the true latency and offset,
  even in the presence of noise.
- Better track clock drift over time.

To validate this new design, the unit test suite for the
ClockOffsetEstimator has been greatly expanded to cover a wide range
of realistic and challenging network scenarios, including:
- High network jitter
- Continuous clock drift
- Bursty packet loss
- Sudden, large latency spikes
- A mix of audio and video media streams

Additionally, a new general-purpose Gmock matcher, `EqualsDuration`,
has been added to `testing/util` to provide more readable error
messages for std::chrono::duration types in unit tests.

Bug: b:448199360


Merge branch 'refactor-event' into clock_offset_estimator_refactor


WIP refactor

Change-Id: I7a3df074a7e421b051191dcbc9503a2b31dd6fea
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7007555
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Replaces the ClockDriftSmoother's weighted-average logic with a more
robust exponential moving average (EMA) filter. This provides more
stable and predictable smoothing of the clock offset.

This change also includes:
- A new, comprehensive unit test suite for the ClockDriftSmoother.
- A change to `ClockDriftSmoother::Current()` to return `std::optional`
  to make the uninitialized state explicit and improve call-site safety.
- A new `ExpectDurationNear` test helper to simplify duration
  comparisons in tests, replacing the more verbose `EXPECT_THAT` with
  `EqualsDuration`.

The `receiver.cc` implementation is updated to safely handle the
optional return value from the smoother.

Bug: 298085631
Change-Id: I9ae5816c6a6586bed99774a5b3ce21bd01f888be
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7032428
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
I recently installed Open Screen on my new laptop and wanted to update the
build instructions.

Change-Id: I9a77a15125d815ef7a3a1a9820ae15020876fe26
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7083713
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Chromium has been building openscreen with C++20 for years now, this
looks like a leftover.

Bug: 388070065
Change-Id: Id03507d446d3dfccb4aa184a4fe4431daf978978
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7124721
Commit-Queue: Victor Vianna <victorvianna@google.com>
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Context in the linked bug. See also https://crrev.com/c/7123796
for the recipe-side change.

Bug: 458361503
Change-Id: I986d780ffe35ed0f8c975de63de85eb16cdba4b8
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7128379
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Jon Toohill and others added 30 commits March 24, 2026 11:42
Bug: chromium:492241998
Change-Id: If567f34e7a86eed44503594ab207850e6a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7695059
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Jon Toohill <jtoohill@google.com>
The Answer message previously defined rtp_extensions as a flat
std::vector<std::string>. However, RTP extensions are negotiated
per-stream (e.g., input_events for video streams).

This change updates rtp_extensions in the Answer message to
be a std::vector<std::vector<std::string>> that parallels the
send_indexes array. It also introduces JSON helpers to parse and
serialize array of arrays, updates the schemas and protocol docs,
restricts the input_events extension to only apply to video streams,
and extracts the input_events literal into a shared constant in
cast/streaming/impl/message_constants.h.

Bug: 495577323
Change-Id: If148f7783d6b1daeb229cd2eac5fc4ed367c0ba0
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7695772
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
When build_with_chromium=true, exclude url.cc and the googleurl dep from
the util target. Instead, depend on a Chromium-side platform_impl that
provides the URL implementation via //url directly. Standalone builds
continue using the bundled googleurl.

Also guard url_unittest.cc with !build_with_chromium, since the test
links against the bundled googleurl implementation which is not
available in Chromium builds. The Chromium-side equivalent test lives in
components/openscreen_platform:unittests.

Changes in main repo:
https://chromium-review.googlesource.com/c/chromium/src/+/7696516

Bug: 495648329, 351564777
Change-Id: Ia69951eabc6d0d788d0a97ae6b586da14aa29365
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7696713
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jason Leo <cgqaq@chromium.org>
- Grouped and alphabetized existing ignore entries by category.
- Added ignores for common AI assistants (Gemini, Claude, Cursor, Aider, Copilot).
- Added ignore for Perfetto trace files (*.pftrace).

Change-Id: Ib29ceef1c378bb5a658b81fc4f85bedad7b1b674
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7709363
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Refactor the Cast Streaming Receiver to eliminate redundant memory copies during frame decryption. Previously, the Receiver assembled encrypted RTP packets into a single contiguous buffer before decryption. Now, decryption is performed piecewise directly from the original network buffers (PayloadChunks) into the consumer's output buffer.

Key changes:
- Refactored FrameCollector to avoid contiguous buffer assembly and expose raw chunks.
- Refactored FrameCrypto to support streaming/chunked decryption via a unified Crypt method.
- Updated Receiver::ConsumeNextFrame to use the new zero-copy decryption path.
- Benchmarking showed a ~83% reduction in overhead for 2MB frames (saving ~13.5ms per frame on typical development hardware).
- Updated related unit tests to match the new chunk-based APIs.

Change-Id: Icddb22f33706ce441d664dc24666a6e6cf63b2b8
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7705668
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
This patch deletes the Url class, which is currently unused and causing
maintenance headaches downstream.

Bug: 495648329
Change-Id: Ifae5b5d7e1097d3807542f0c176bc1bbe4ed9a07
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7719179
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch adds taesuny@ to the OWNERS list as an additional
reviewer. Taesun has made some significant CLs for Open Screen:

https://chromium-review.googlesource.com/c/openscreen/+/7108400
https://chromium-review.googlesource.com/c/openscreen/+/7247255
https://chromium-review.googlesource.com/c/openscreen/+/7283925

As well as some smaller, single / few line changes:
https://chromium-review.googlesource.com/c/openscreen/+/6917871
https://chromium-review.googlesource.com/c/openscreen/+/7128520
https://chromium-review.googlesource.com/c/openscreen/+/7517644
https://chromium-review.googlesource.com/c/openscreen/+/7598315

In addition, Taesun manages the downstream integration of libcast into
the Android Cast implementation, so has extensive experience with the
library as a consumer.

I believe that, in conjuction, this makes him a great candidate for
inclusion in our OWNERS list.

Change-Id: Ia623d54e61ed0852adf85c13541c313887e2b4b6
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7714244
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This patch does some significant cleanups of the Sender and
Receiver classes, in order to make embedder's lives easier (and
ideally our own) around testing and reasoning about these classes.

Sender and Receiver are now virtual abstract base classes, making
mocking easy and making it possible for tests in libcast and
tests in the embedder to not have to worry about implementation
details.

Previously, it was impossible to for embedders to appropriately
test classes they write that depend on the Receiver interface --
since you can't construct a receiver without a packet router,
and including the packet router header is banned by GN check.

Bypass-Check-License: moved some files around
Bug: 255632830
Change-Id: I2347bf370c392e2f663872c49f6fb9f8a94ee20d
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7594201
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Added ReportFrameDropEvent to Sender to align with the Receiver's
ReportPlayoutEvent. This new event captures the details of the frame
dropped by the encoder and wires it up to the statistics analyzer for
tracking kNumFramesDroppedByEncoder.

Bug: b/298205111
Change-Id: I176b3a539c7682ba08912492447243f5ebbde231
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7709359
Reviewed-by: Muyao Xu <muyaoxu@google.com>
This patch enables the no exit time destructors clang check, and fixes
violations of this check. A new `NoDestructor` class is added to avoid
littering the codebase with `static Foo* kStaticFoo = new Foo()` to avoid
declaring exit time destructors.

Bug: 40031409
Change-Id: I7b94ee90f810ab8848d85b6548793232c5f65176
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7732861
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
- Fixes a bug in the E2E tests where fatal logs were ignored due to incorrect tuple unpacking.

- Fixes a race condition where cast_receiver could crash during teardown because flat_map::erase_key used OSP_CHECK when a key was not found.

- Improves E2E error outputs when a fatal log is encountered.

- Fixes Python argument parsing in standalone_e2e.py so the unittest module does not complain.

Change-Id: Ia6ba4420990f3edc2af213c0d1b9f0580c367e12
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7746325
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
MirroringApplication supports two namespaces, kCastWebrtcNamespace and kCastRemotingNamespace.
To support custom namespaces, a custom message callback is added to SessionMessenger, where non-standard namespace messages are sent to.


Change-Id: I78b7f501aee339047627b96a01fa15265c29cf78
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7731037
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Taesun Yeoum <taesuny@google.com>
Reviewed-by: Jordan Bayles <jophba@chromium.org>
This CL ensures that ReceiverSession and SenderSession unregister themselves
(and their components) from the Environment upon destruction. Previously,
Environment would hold dangling raw pointers to these objects, leading to
a Use-After-Free when socket events or statistics collection occurred
after a session was destroyed.

Bug: b/505815444
Change-Id: I4b3874d0b9f40ea2e7eab940bd3c83f7d08c42ab
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7797696
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
This patch fixes a macos specific static initalizer issue by
reverting a recent refactor in ScopedWakeLockMac.

Change-Id: Ib3e4a8c43d37af57acb677d19203843520028165
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7797504
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
SenderMessage::Parse and other message parsing functions index into
const Json::Value& references with string keys without verifying the
root is an object. If the parsed JSON resolves to a scalar or an array,
jsoncpp aborts the process instead of returning a null value because
OpenScreen builds with JSON_USE_EXCEPTION=0.

This CL adds explicit .isObject() validation steps to json parsing
functions across the cast/streaming and cast/sender namespaces to
properly reject malformed arrays/scalars before querying them.

Bug: b/505947418, b/505902444
Change-Id: Ife4d19bfb592656a48773e9e7069571b617ce7df
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7801091
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This updates the visibility list for certificate_boringssl to allow all
targets within //components/media_router/common/providers/cast/channel
to depend on it.

This is necessary because a change to the fuzzer_test template in
Chromium for android causes intermediate generated targets to inherit
the fuzzer's dependencies. This breaks the strict target-name visibility
check

Bug: 506174854
Change-Id: I83702f3e353d9f76aedf3ede9387de987bca937b
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7793868
Commit-Queue: Edgar Aguilar <eledgar@google.com>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Titouan Rigoudy <titouan@chromium.org>
This patch rolls protobuf to 33.6 to patch some vulnerabilities. A new
`tools/roll_protobuf.sh` script is also added to make rolling protobuf
much easier. This roll required zero manual intervention after running
the script.

The script also now prunes obviously not needed directories (such as the
github directory and not supported languages), reducing the checkout
size by 465 KiB / > half a million lines of code.

Bug: b/507096835
Change-Id: I9d75f398f96b88fb5f6d7694443c0cc36e375c73
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7808806
Commit-Queue: Jordan Bayles <jophba@chromium.org>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Implement proper write flow control in TlsConnectionPosix to prevent
event loop busy-waiting when SSL_write is blocked by a read operation
(e.g., during renegotiation, returning SSL_ERROR_WANT_READ).

This change:
- Adds `is_write_blocked_by_read_` state to TlsConnectionPosix.
- Updates `HasPendingWrite()` to return false when the write path is
  blocked by read, preventing SocketHandleWaiter from polling for
  writability.
- Sets the flag when SSL_write returns SSL_ERROR_WANT_READ.
- Resets the flag when TryReceiveMessage() is called (socket is
  readable), allowing the write path to retry after the read path makes
  progress.

Bug: 492683133
Change-Id: Ie44060036f6446f30f483110496270f0b7813b28
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814283
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Muyao Xu <muyaoxu@google.com>
…e destructors

Refactor static singletons in SenderSession and CastNonce to use
openscreen::NoDestructor instead of manually leaking them on the heap
using 'new' to avoid exit-time destructors.

This change:
- Refactors 5 static Error singletons in sender_session.cc to use
  NoDestructor<Error>.
- Refactors the CastNonce singleton in cast_auth_util.cc to use
  NoDestructor<CastNonce>.
- Makes the CastNonce constructor public so NoDestructor can access it
  (safe as the class is in an anonymous namespace).

Bug: 40031409
Bug: 492683133
Change-Id: Ie26adbbc83a4ed0f08cbb3cf7bfe7821d742a08d
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7813205
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Add OSP_CHECK(task_runner_.IsRunningOnTaskRunner()) to all public API
entry-points of UdpSocketPosix.

This change:
- Enforces the documented UdpSocketPosix threading model: "All public
  methods must be called on the same thread--the one executing the
  TaskRunner."
- Adds checks to Bind(), SetMulticastOutboundInterface(),
  JoinMulticastGroup(), SendMessage(), and SetDscp().
- Prevents dynamic race conditions and memory corruptions if an embedder
  invokes these APIs from the wrong thread.

Bug: 492683133
Change-Id: I8010ee0e21df3a7a09728fb904167fbaba9b3084
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814331
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Migrates the bash-based `tools/roll_protobuf.sh` script to Python
(`tools/roll_protobuf.py`) to conform with the Google Shell Style Guide,
which mandates Python for scripts exceeding 100 lines.

The new roll_protobuf script offers:
- Standardized cross-platform execution (eliminating bash dependencies like perl, curl, and awk).
- Robust error handling and a structured `ProtobufVersion` dataclass.
- Rich terminal output utilizing the newly abstracted `tools/cli_utils.py`.
- A dedicated unit test suite (`tools/roll_protobuf_test.py`).

Additionally, this change performs a sweep of Python tooling across the
repository (`tools/*`, `cast/standalone_e2e.py`, and `PRESUBMIT.py`) to
align with the modern Google Python Style Guide:
- Applied PEP-8 compliant type hinting.
- Refactored internal implementation details from `CamelCase` to
  `_snake_case` to properly enforce private module boundaries.
- Re-formatted all scripts using `git cl format`

Change-Id: Ib4ec003716e2857f259e9d50db062467de14d554
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7809783
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
…common

Deduplicate FFMPEG and avcodec unique pointer helpers, compatibility
macros, and the AvErrorToString implementation between standalone_sender
and standalone_receiver.

This change:
- Creates a new shared 'cast/standalone_common' component.
- Moves and consolidates ffmpeg_glue.h/cc and avcodec_glue.h into the
  new component.
- Refactors both standalone_sender and standalone_receiver to depend on
  this new shared component.
- Simplifies OnError in decoder.cc to use AvErrorToString.

Bug: 224642520
Bug: 492683133
Change-Id: I93d9dd862fdf8c885929ba23d89803c3e92cc09f
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814281
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Introduce Abseil-style thread safety annotations (OSP_GUARDED_BY, etc.)
to enable static analysis of mutex-guarded variables during compilation.
This resolves b/322734860.

This change:
- Creates 'util/thread_annotations.h' containing the Clang-specific macro
  definitions for thread safety analysis.
- Audits and annotates all 'std::mutex' usages in Open Screen production
  code:
  - TlsDataRouterPosix (accept_socket_mappings_, connections_)
  - TaskRunnerImpl (tasks_, delayed_tasks_)
  - SocketHandleWaiter (handles_being_deleted_, handle_mappings_)
  - UdpSocketReaderPosix (sockets_)
  - StreamingAv1Encoder (needs_key_frame_, target_bitrate_, encode_queue_)
  - StreamingVpxEncoder (needs_key_frame_, target_bitrate_, encode_queue_)
- Refactors all 'std::unique_lock' usages to 'std::lock_guard' where
  possible to resolve Clang static analysis limitations.
- Fixes a real concurrency bug in video encoders where GetTargetBitrate()
  was reading 'target_bitrate_' without holding 'mutex_'.
- Makes 'mutex_' mutable in encoders and socket reader to allow locking
  in const methods.
- Safe-bypasses Clang's lambda-condvar-loop analysis limitations by
  using standard 'while' loops or 'OSP_NO_THREAD_SAFETY_ANALYSIS' where
  manually verified to be safe.

Fixed: 322734860
Bug: 492683133
Change-Id: I9a86c0848267c2893ddba9ff319cdce8b02a5812
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814327
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
…ification

Acknowledge and document that SSL_shutdown is already robustly verified
by CastSocket E2ETests, resolving b/169966671.

This change:
- Adds an explicit comment in cast_socket_e2e_test.cc (inside
  CloseSocketsFromOneEnd) explaining why the kSocketClosedFailure assertion
  explicitly verifies SSL_shutdown correctness (i.e., if the peer did not call
  SSL_shutdown, BoringSSL would report a protocol error mapped to
  kFatalSSLError instead).
- Removes the stale TODO comment from tls_connection_posix.cc since
  E2E coverage is the correct and most robust way to verify this behavior
  and is already fully implemented.

Bug: 169966671
Bug: 492683133
Change-Id: I49ddc19165f2eac3eaafabf44a71479ad1cc035b
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7815047
Reviewed-by: Muyao Xu <muyaoxu@google.com>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
This commit replaces the manually maintained copies of Chromium's
`licenses.py` and `protoc_wrapper.py` scripts with an automated
solution via DEPS hooks, ensuring these scripts remain up-to-date
with Chromium's trunk.

- Created a generic `tools/download-chrome-file.py` (based on
  the former `download-clang-update-script.py`).
- Updated `DEPS` hooks to use the new downloader script to
  fetch `licenses.py`, `spdx_writer.py`, and `protoc_wrapper.py`
  directly from Chromium matching the existing `chrome_version`.
- Replaced the deprecated `ScanThirdPartyDirs()` call in
  `PRESUBMIT.py` with the modern `_DiscoverMetadatas()` API
  from `licenses.py`.
- Removed tracked copies of the scripts from git and added their
  paths to `.gitignore`.

Bypass-Check-License: moved file.
Change-Id: I7363d45252be702c75c0aeb5b9d51f42038100b4
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7815044
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
This commit addresses the presubmit failures caused by the recent
transition to Chromium's upstream `licenses.py` script.

- Renamed `README.openscreen` files to `README.chromium` in
  `third_party/getopt`, `third_party/libc++`, and
  `third_party/libc++abi` as the upstream script only looks for
  `README.chromium`.
- Removed duplicate `README.openscreen` from `third_party/ninja`.
- Added `third_party/googletest/README.chromium` to store metadata
  that was previously hardcoded in the old `licenses.py` script's
  `SPECIAL_CASES` dictionary.
- Updated `licenses.PRUNE_PATHS` in `PRESUBMIT.py` to ignore nested
  `third_party` directories within our dependencies (e.g.
  `boringssl`, `googleurl`, `perfetto`, etc.) since the upstream
  script now recursively checks subdirectories.

Change-Id: I8322ca0557688f84ffbc9bbbc9598edf6defb2f1
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7833399
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Implement both client-side and server-side TLS session resumption to
reduce reconnection latency on Wi-Fi drops. This brings the standalone
implementation more in parity with Chromium's platform implementation,
which has a robust SSL cache.

This change:
- Enables server-side session caching using BoringSSL's native
  SSL_SESS_CACHE_SERVER mode, and configures a unique session ID context.
- Implements a client-side session cache in TlsConnectionFactoryPosix
  using a std::map keyed by IPEndpoint.
- Saves successfully established client sessions after handshake
  completion using SSL_get1_session().
- Reuses saved sessions for subsequent client connections to the same
  IPEndpoint using SSL_set_session() before handshake initiation.

Fixed: 281741213
Bug: 492683133
Change-Id: I9f641c7d68d68c0cd11f7165ea829eb0122ae4f0
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814329
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Jordan Bayles <jophba@chromium.org>
QUICHE needs to be rolled to Open Screen in order to permit removing the
obsolete QuicSession::CreateIncomingStream() method.

The new version of QUICHE requires absl::down_cast, so Abseil needs to
be rolled to permit QUICHE to be rolled.

The new version of Abseil no longer includes a definition of memcpy()
in string_view.h, which makes compilation fail on GCC with older
versions of QUICHE. For this reason, QUICHE and Abseil need to be
updated in the same CL.

Roll third_party/quiche/src/ d54ca111b..a849d35c9 (299 commits)

https://quiche.googlesource.com/quiche.git/+log/d54ca111b108..a849d35c908d

$ git log d54ca111b..a849d35c9 --date=short --no-merges --format='%ad %ae %s'
2026-05-07 ianswett Update CWND calculations to match the latest BBR draft. https://www.ietf.org/archive/id/draft-ietf-ccwg-bbr-05.html
2026-05-07 rch No public description
2026-05-06 ricea Temporarily add a dummy definition of CreateIncomingStream() to quic::QuicSession
2026-05-06 haoyuewang Increase the QUIC_BUG threshold.
2026-05-06 vasilvv Add functions to interop between absl::Cord and QuicheMemSlice.
2026-05-05 rch No public description
2026-05-04 rch Deprecate QUIC reloadable flag quic_close_connection_on_underflow.
2026-05-04 vasilvv Rewrite MOQT control message parser.
2026-05-02 ianswett Update BBR3 to more closely align with the BBRv3 draft.
2026-05-01 ianswett Remove tests for the deprecated kB201 connection option from BBR2 and BBR3 simulator tests.
2026-04-29 ianswett Enable gfe2_reloadable_flag_quic_reject_empty_cid_in_ncid in Chrome.
2026-04-29 ianswett Deprecate gfe2_reloadable_flag_quic_no_path_degrading_before_handshake_confirmed.
2026-04-28 ripere Add gzip response decompression support to Masque OHTTP client.
2026-04-28 dschinazi MasqueOhttpClient: Print chunked body to stdout
2026-04-27 dschinazi Deprecate quic_stop_sending_legacy_version_info and quic_stop_parsing_legacy_version_info
2026-04-27 ianswett BBR3: Update startup pacing gain, drain gain, and max ack height window to match the BBR IETF draft: https://datatracker.ietf.org/doc/draft-ietf-ccwg-bbr/
2026-04-23 rch Additional PendingStream cleanup * Remove unused constructors * Pass PendingStream by reference in CreateIncomingStream
2026-04-23 rch Remove unused QuicSession::CreateIncomingStream(PendingStream*). Remove overrides in subclasses which considered it an error to call this method. Move from override to virtual in those subclasses which actually use this method.
2026-04-22 wub No public description
2026-04-22 rch Refactor QuicSession PendingStream methods to take references.
2026-04-22 ianswett Refactor: Cache Bbr2DebugState in simulator tests.
2026-04-22 rch Refactor QuicStream constructor to take PendingStream by reference.
2026-04-21 martinduke Allow MoqtClient and MoqtServer to control session parameters.
2026-04-21 martinduke Move some non-message-related data structures out of moqt_messages.h
2026-04-21 ianswett Refactor BBR2/BBR3 initialization and inline some methods.
2026-04-21 rch Convert quic::PendingStream constructor to take QuicSession reference.
2026-04-20 ianswett Refactor BBR2/BBR3 parameters by moving kDefaultMinimumCongestionWindow and kInitialPacingGain into Bbr2Params.
2026-04-20 quiche-dev Add ohttp_ping_pong_mode_{gateway_name} to test ping-pong interactive chunking. It guarantees there is no buffering between the client and server, bidirectionally.
2026-04-20 ianswett Refactor: Extract DebugState from Bbr2Sender and Bbr3Sender to a common header.
2026-04-20 martinduke Get rid of moqt::SubscribeWindow.
2026-04-20 ianswett Refactor and simplify BBR3.
2026-04-20 quiche-dev Add support for sending OHTTP request bodies in multiple chunks.
2026-04-17 ianswett Branch Bbr2Sender to create Bbr3Sender and no long have modes extend from Bbr2ModeBase.
2026-04-16 martinduke Permanently cancel subgroups if the stream has STOP_SENDING.
2026-04-16 haoyuewang QUIC_BUG on the size of connection_state_map_.
2026-04-16 ianswett Move Bbr2ProbeBwMode::CyclePhase to bbr2_misc.h and rename it to ProbePhase.
2026-04-15 reubent Reset streams which surpass MAX_HEADER_LIST_SIZE
2026-04-15 ianswett Deprecate --gfe2_reloadable_flag_quic_send_connection_close_on_max_age.
2026-04-14 birenroy Enabling rolled out flags.
2026-04-14 martinduke Deprecate gfe2_reloadable_flag_quic_disconnect_early_exit.
2026-04-14 vasilvv Merge QuicStreamSendBufferBase into QuicStreamSendBufferInlining.
2026-04-14 martinduke Limit Joining FETCH to largest_object at time of SUBSCRIBE.
2026-04-13 dmcardle Deprecate MASQUE PerRequestConfig::SetExpectedEncapsulatedResponseBody()
2026-04-10 dmcardle Add encapsulated response body callback to MASQUE client's PerRequestConfig
2026-04-10 ripere Add `num_ohttp_chunks` flag and remove `chunked` flag.
2026-04-10 ripere Add `num_bhttp_chunks` flag and remove `indeterminate_length` flag.
2026-04-10 ianswett Reject NEW_CONNECTION_ID frames with empty connection IDs and close the connection, per RFC9000.  Based on cr/896368856
2026-04-10 wub No public description
2026-04-09 reubent Enforce a limit on the amount of total, uncompressed header bytes
2026-04-09 dschinazi Improve connection logging in OHTTP toy client
(...)
2026-01-15 ripere Refactor HttpHeaderBlock tests to use const-qualified functors.
2026-01-15 birenroy One more fix for the case of a nulled out pending frame.
2026-01-14 martinduke Consolidate MOQT *_ERROR message into REQUEST_ERROR.
2026-01-14 haoyuewang Add QuicServerSessionBase::enable_reset_ssl_after_handshake that reset SSL after handshake is done to save connection level memory on the server side.
2026-01-13 quiche-dev Add UpdateMaxSize to QuicLRUCache.
2026-01-13 birenroy Fixes behavior in OgHttp2Session::CloseStream when frames have been removed from the pending frames queue.
2026-01-12 dschinazi Unblock quic_stop_sending_legacy_version_info
2026-01-12 martinduke Rename MoqtRequestError to MoqtErrorPair.
2026-01-12 vasilvv Implement bandwidth probing in MoQ bitrate adjuster.
2026-01-12 ripere Refactor BHTTP test constants.
2026-01-12 dmcardle Deprecate gfe2_reloadable_flag_quic_delay_connection_close_on_invalid_sni
2026-01-12 wangsteve Automated g4 rollback of changelist 840297420.
2026-01-09 martinduke Update MoQT malformed track detection to draft-16.
2026-01-09 ripere Refactor BHTTP content terminated sections decoding.
2026-01-09 dmcardle Add --request_trust_anchors to the QUIC toy client
2026-01-09 ripere Return absl::Status from test helper functions
2026-01-09 ripere Refine IndeterminateLengthMessageSection enum for BinaryHttpResponse encoding.
2026-01-09 ripere Refactor OHTTP client, gateway, and BHTTP decoder creation methods to pass the retained parameter as pointer instead of a reference.
2026-01-08 vasilvv Add missing QUICHE_EXPORT directives.
2026-01-08 martinduke Implement MOQT draft-16 version negotiation.
2026-01-08 martinduke Change MOQT key-value pair lists to have diff-encoded keys.
2026-01-07 diannahu Mark --gfe2_restart_flag_quic_stop_sending_legacy_version_info as enabling_blocked_by.
2026-01-07 birenroy No public description
2026-01-07 quiche-dev Fix gap filling ACK logic in QuicReceivedPacketManager.
2026-01-06 haoyuewang Do not instantiate QpackSendStream if qpack_maximum_dynamic_table_capacity_ is 0 in QuicSpdySession.
2026-01-06 vasilvv Implement a dedicated WebTransport-only dispatcher.
2026-01-06 vasilvv Ensure WebTransport QUIC streams are always set to level-triggered mode.
2026-01-06 ianswett Deprecate --gfe2_reloadable_flag_quic_bbr2_probe_two_rounds.
2026-01-06 ripere Refactor BinaryHttpRequest IndeterminateLengthDecoder to use a local checkpoint.
2026-01-06 danzh Rename methods in QuicConnectionMigrationManager for readability. Callback methods like FinishFoo() are renamed to ContinueFoo() if Foo() is async or DoneWithFoo() if it merely does clean up.
2026-01-06 ripere Wrap chunk handler errors in InternalError.
2026-01-05 ianswett Deprecate quic_bbr2_simplify_inflight_hi.
2026-01-05 rch Remove unreachable return in quic_spdy_session_test.cc
2026-01-05 birenroy Uses `quiche::QuicheCircularDeque` as the type backing the pending frame queue, rather than `std::list`.
2026-01-05 vasilvv Move moqt::TrackNamespace and friends into a separate header.
2025-12-30 quiche-dev No public description
2025-12-29 rch Fix unused parameter warning in quic_session.h
2025-12-23 rch Add support for sending immediate GOAWAYs in HTTP/3.
2025-12-23 quiche-dev QBONE ICMP reachable: eliminate last usage of `SOCK_RAW`.
2025-12-23 quiche-dev Make the masque client return a special error when it gets an expected failure
2025-12-23 quiche-dev Move balsa_fuzz_util to a separate quiche_fuzz_support glob.
2025-12-22 quiche-dev QBONE ICMP reachable: convert to "ping sockets" to avoid the need for `SOCK_RAW` permissions.
2025-12-20 dschinazi Allow content-type parameters in MASQUE/OHTTP test code
2025-12-20 dschinazi Properly handle TLS error in MasqueH2Connection
2025-12-20 dschinazi Allow key fetch and key proxy requests without the Accept header in masque_tcp_server
2025-12-20 dschinazi Properly handle query parameters in MASQUE/OHTTP test code
2025-12-20 dschinazi Only respond to key requests on gateway path in masque_tcp_server
2025-12-20 dschinazi Add --key_proxy option to masque_tcp_server
2025-12-20 dschinazi Increase connection-level flow control in MasqueH2Connection
2025-12-19 dschinazi Make gateway actually proxy requests in masque_tcp_server

Created with:
  roll-dep third_party/quiche/src

Roll third_party/abseil/src/ 987c57f32..8a6b6ae90 (332 commits)

https://chromium.googlesource.com/external/github.com/abseil/abseil-cpp.git/+log/987c57f325f7..8a6b6ae902ac

$ git log 987c57f32..8a6b6ae90 --date=short --no-merges --format='%ad %ae %s'
2026-04-21 absl-team Automated rollback of commit 34e723033bf6e31b196258451c6cdc684804a88d.
2026-04-21 absl-team Change abseil hardening assertions in types directory from macros to functions
2026-04-21 absl-team Change abseil hardening assertions in types directory from macros to functions
2026-04-21 ckennelly Replace ABSL_INTERNAL_LOG with ABSL_RAW_LOG in ReadMonotonicClockNanos.
2026-04-21 goldvitaly Introduce HashtableCapacity wrapper for capacity_ and rename HashtableSize to HashtableInlineData and move capacity into it.
2026-04-20 ckennelly Use if constexpr around allocator type check for hashtable sampling.
2026-04-20 mkruskal Add a friendship for gloop testing
2026-04-16 absl-team Optimzie crc32 on AMD Milan+
2026-04-16 tokarip Optimzie crc32 on AMD Milan+
2026-04-16 dmauro Stop exporting internal Base64 escaping functions that do not need to be exported. The one function that is currently using it is easily implemented with absl::Base64Escape().
2026-04-14 absl-team Add additional bounds check functions to cover most ABSL_HARDENING_ASSERTs.
2026-04-13 absl-team Undo unintended inlining of absl::void_t -- the inlining didn't actually replace it with std::void_t
2026-04-10 ckennelly Consume result from various SampleRecorder methods.
2026-04-09 absl-team Remove unnecessary usages of absl::void_t
2026-04-09 akraman StrFormat: format %g without heap allocation
2026-04-09 absl-team Remove unnecessary namespace bracketing for an internal nullability macro.
2026-04-08 dmauro Introduce ABSL_OPTION_INLINE_HW_ACCEL_STRATEGY in absl/base/options.h to provide a centralized policy for hardware-accelerated implementations in headers.
2026-04-07 sbenza Refactor error factories to propagate static knowledge to the compiler, where supported.
2026-04-07 absl-team Inline absl::void_t to std::void_t wherever possible
2026-04-06 absl-team Deprecate and inline a lot of C++17 Abseil type traits
2026-04-06 absl-team Remove more lingering C++17 type traits polyfill usages
2026-04-06 absl-team nullstream: fix a header guard comment
2026-04-06 absl-team Add SKIP_ABSL_INLINE_NAMESPACE_CHECK to absl/base/internal/exception_safety_testing.h as it doesn't use the absl namespace at all
2026-04-06 mkruskal Expose gloop peer friendship for testing
2026-04-03 absl-team Stop using C++17 type traits polyfills
2026-04-03 dmauro Remove the forward declaration of base::scheduling::Schedulable from thread_identity by using a void*, and fix callers to use base::scheduling::Schedulable::GetBoundSchedulable().
2026-03-31 absl-team Support passing I/O manipulators such as std::endl to StringifyStream
2026-03-31 absl-team Add absl::Status::MakeNonOkStatusWithOkCode() and absl::status_internal::StatusPrivateAccessor for private/internal use
2026-03-30 dmauro Add cleanup dependency
2026-03-28 dmauro Prepare to move callers away from get_bound_schedulable() to remove the forward declaration of base::scheduling::Schedulable.
2026-03-26 absl-team Prevent users of absl::AnySpan::subspan(pos, len) from relying on truncation behavior while the migration from this nonstandard function is in progress.
2026-03-26 absl-team Add support for [[clang::annotate("clang-tidy", "bugprone-use-after-move", "null_after_move")]] annotations.
2026-03-25 lar Reduce duplication in absl/random/internal.
2026-03-25 cramertj Use absl::SourceLocation for Rust source locations in Status
2026-03-24 absl-team Avoid using lambdas in Abseil assertion macros
2026-03-23 dmauro Minor changes to #includes
2026-03-23 cmihelic Document that DemangleRustSymbolEncoding omits some details on purpose.
2026-03-20 mvels Add gloop/perftools/tracing visibility
2026-03-18 mkruskal Add //gloop/util/status:status_macros to Gloop
2026-03-17 absl-team Remove the legacy stateless symbol decorator API.
2026-03-16 dmauro Add additional tests in str_split_test.cc
2026-03-13 absl-team Add absl::strings_internal::AbslStringifyStream
2026-03-13 absl-team Add supporting code for absl::SourceLocation
2026-03-13 absl-team Open-source absl::AnySpan
2026-03-12 mkruskal Add //gloop/util/gtl:iterator_range to Gloop
2026-03-12 mkruskal Internal functionality
2026-03-12 goldvitaly Fix sampling for the insert into a non-SOO table with capacity==1.
2026-03-12 goldvitaly Add benchmark for string erase/emplace.
2026-03-11 dmauro Minor reformatting
2026-03-11 sbenza Prepare GenericPrinter for the rename of ArenaSafeUniquePtr.
(...)
2025-09-30 absl-team Remove unnecessary dep on `core_headers` from the `nullability` cc_library
2025-09-29 jmr type_traits: Add type_identity and type_traits_t backfills
2025-09-26 ezb Refactor raw_hash_set range insertion to call private insert_range function.
2025-09-25 absl-team Fix bug in absl::FunctionRef conversions from non-const to const
2025-09-24 anton.klaren PR #1937: Simplify ConvertSpecialToEmptyAndFullToDeleted
2025-09-23 absl-team Improve absl::FunctionRef compatibility with C++26
2025-09-23 dmauro Add a workaround for unused variable warnings inside of not-taken if-constexpr codepaths in older versions of GCC
2025-09-23 absl-team Annotate ABSL_DIE_IF_NULL's return type with `absl_nonnull`
2025-09-22 goldvitaly Move insert index computation into `PrepareInsertLarge` in order to reduce inlined part of insert/emplace operations.
2025-09-21 absl-team Automated Code Change
2025-09-20 keithbsmiley PR #1939: Add missing rules_cc loads
2025-09-19 durandal Expose (internally) a LogMessage constructor taking file as a string_view for (internal, upcoming) FFI integration.
2025-09-15 absl-team Fixed up some #includes in mutex.h
2025-09-15 absl-team Make absl::FunctionRef support non-const callables, aligning it with std::function_ref from C++26
2025-09-15 goldvitaly Move capacity update in `Grow1To3AndPrepareInsert` after accessing `common.infoz()` to prevent assertion failure in `control()`.
2025-09-13 sohaibiftikhar Fix check_op(s) compilation failures on gcc 8 which eagerly tries to instantiate std::underlying_type for non-num types.
2025-09-12 goldvitaly Use `ABSL_ATTRIBUTE_ALWAYS_INLINE`for lambda in `find_or_prepare_insert_large`.
2025-09-12 derekbailey Mark the implicit floating operators as constexpr for `absl::int128` and `absl::uint128`
2025-09-09 self PR #1931: raw_hash_set: fix instantiation for recursive types on MSVC with /Zc:__cplusplus
2025-09-09 absl-team Add std::pair specializations for IsOwner and IsView
2025-09-09 durandal Cast ABSL_MIN_LOG_LEVEL to absl::LogSeverityAtLeast instead of absl::LogSeverity.
2025-09-08 absl-team Fix a corner case in the aarch64 unwinder
2025-09-04 absl-team Fix inconsistent nullability annotation in ReleasableMutexLock
2025-09-04 absl-team Remove support for Native Client
2025-09-03 absl-team Rollback f040e96b93dba46e8ed3ca59c0444cbd6c0a0955
2025-09-02 durandal When printing CHECK_XX failures and both types are unprintable, don't bother printing " (UNPRINTABLE vs. UNPRINTABLE)".
2025-09-02 rsworktech PR #1929: Fix shorten-64-to-32 warning in stacktrace_riscv-inl.inc
2025-09-02 ezb Refactor `find_or_prepare_insert_large` to use a single return statement using a lambda.
2025-09-02 ckennelly Use possible CPUs to identify NumCPUs() on Linux.
2025-09-02 qrczak Fix incorrect nullability annotation of `absl::Cord::InlineRep::set_data()`.
2025-09-02 goldvitaly Move SetCtrl* family of functions to cc file.
2025-09-01 dmauro Change absl::InlinedVector::clear() so that it does not deallocate any allocated space. This allows allocations to be reused and matches the behavior specification of std::vector::clear().
2025-08-27 avassalotti Mark Abseil container algorithms as `constexpr` for C++20.
2025-08-27 dmauro Fix `CHECK_<OP>` ambiguous overload for `operator<<` in older versions of GCC when C-style strings are compared
2025-08-27 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.
2025-08-26 nafi Optimize `CRC32AcceleratedX86ARMCombinedMultipleStreams::Extend` by interleaving the `CRC32_u64` calls at a lower level.
2025-08-26 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.
2025-08-26 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.
2025-08-26 bgraur std::multimap::find() is not guaranteed to return the first entry with the requested key. Any may be returned if many exist.
2025-08-26 derekbailey Mark `/`, `%`, and `*` operators as constexpr when intrinsics are available.
2025-08-26 dmauro Add the C++20 string_view contructor that uses iterators
2025-08-22 absl-team Implement absl::erase_if for absl::InlinedVector
2025-08-20 absl-team Adjust software prefetch to fetch 5 cachelines ahead, as benchmarking suggests this should perform better.
2025-08-20 goldvitaly Reduce maximum load factor to 27/32 (from 28/32).
2025-08-19 dmauro Remove unused include
2025-08-18 absl-team Remove unused include statement
2025-08-18 30942300+past-due PR #1921: Fix ABSL_BUILD_DLL mode (absl_make_dll) with mingw
2025-08-18 zebreus PR #1922: Enable mmap for WASI if it supports the mman header
2025-08-14 absl-team Rollback C++20 string_view constructor that uses iterators due to broken builds
2025-08-14 dmauro Add the C++20 string_view contructor that uses iterators

Created with:
  roll-dep third_party/abseil/src

Manual changes:
- Update abseil/BUILD.gn. Only add new source files that are actually
  used, for consistency with existing practice.
- Add -Wno-deprecated to the protobuf BUILD.gn, as protobuf uses
  absl::disjunction, which is deprecated in the newer versions of
  Abseil.

Bug: b:508413463
Change-Id: Iadaacdc024231789f7c9c62ade695fadc10596c2
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7831666
Commit-Queue: Adam Rice <ricea@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
I wrote a `gn suggest` tool which suggests dependencies, and it takes
into account visibility to suggest the right dependency for you.

gn suggest out/linux-x64 //third_party/protobuf:protoc_cpp=//third_party/abseil-cpp/absl/algorithm:algorithm
Warning: "//third_party/abseil-cpp/absl/algorithm:algorithm" is exposed via multiple targets
Suggestion: Clean up the visibility so that only one of the below targets is visible to //third_party/protobuf:protoc_cpp
Suggestion: Depend on one of the following:
* //third_party/abseil-cpp:absl
* //third_party/angle:angle_abseil
* //third_party/openscreen/src:gn_all
* //third_party/openscreen/src/third_party/abseil:abseil
* //v8:v8_abseil

Bug: chromium:500845363
Change-Id: I181f3aa63e7029a41a285b45e6583b576a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7851118
Commit-Queue: Matt Stark <msta@google.com>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
…cxxabi

Added the missing README.chromium file for googletest with the
necessary 'Security Critical', 'Version', and 'Revision' fields.

Renamed README.openscreen to README.chromium for libc++ and libc++abi
to match standard Chromium project guidelines, and added their missing
'Revision' fields based on their current submodule SHAs.

This resolves automated metadata tracking issues.

Fixed: 511607099, 511607634, 511607185
Change-Id: I555195db0edbbc2952bbe2554d557974d2065c03
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7857615
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.