**DO NOT CLOSE** Notification V2 - #2
Draft
coder0107git wants to merge 187 commits into
Draft
Conversation
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>
Closed
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>
This last few fixes should unblock the chromium auto roller. Bug: 520101123 Change-Id: I61f9edc34ce09c21cfe568c97fd147ed98f0a0ef Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8166602 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
The new fuzzable protos can be used in non-fuzzing builds and unblock the migration to FUZZ_TEST. To match chromium, the CL also rolls lpm to the latest version, implements use_experimental_fuzzable_proto in openscreen's fuzzable_proto_library.gni and adds `force_component` to proto_library.gni 1. https://crrev.com/c/8162212 lpm: Disable some cast fuzzers to unblock upstream proto changes [chromium repo] 2. https://crrev.com/c/8164877 lpm: Use new fuzzable protos for chromium fuzzers [this cl] 3.https://crrev.com/c/8165141 lpm: Re-enable cast fuzzers and migrate to new fuzzable protos [chromium repo] Bug: 505034799 Change-Id: Ia3bcc3a1bdc2b4efa16110c25624308f758f5d9d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8164877 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Giovanni Ortuno Urquidi <ortuno@chromium.org>
…r NoLibs mode Add a zero-dependency synthetic streaming workflow so that cast end-to-end tests (standalone_e2e.py) can execute successfully in out/NoLibs mode when external media libraries (FFmpeg, libvpx, libopus, libsdl2) are missing. 1. Implement SyntheticFileSender generating in-memory 64x48 bouncing square video frames and silent audio PCM frames at 30 FPS. 2. Add ASCII art terminal rendering to DummyPlayer on keyframes. 3. Call receiver.ReportPlayoutEvent in DummyPlayer::OnFramesReady to populate playout statistics over RTCP. 4. Programmatically verify both TCP control (8010) and UDP streaming (2344) port availability in standalone_e2e.py before launching binaries. Fixed: 527285086 Change-Id: I1a8d7f87fea991187865eecafd8d7dc3891c444f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7988888 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
CompoundRtcpParser::ParseApplicationDefined consumed two uint32_t fields (sender_ssrc and name) without verifying that the APP payload contained at least 8 bytes (2 * sizeof(uint32_t)). A malformed RTCP APP packet with only 1 word payload caused an un-checked 4-byte heap out-of-bounds read. This change: 1. Rejects APP packets in ParseApplicationDefined if the payload buffer size is less than 2 * sizeof(uint32_t). 2. Adds OSP_CHECK_GE to ConsumeField in packet_util.h to enforce bounds checks as a defense-in-depth safety measure. 3. Adds a unit test in compound_rtcp_parser_unittest.cc for short APP payloads. Bug: 506942984 Change-Id: I043e6163df3ebd164a306792e956ee1618d2f0da Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8183673 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Now that chromium has removed all instances of legacy fuzzable protos we can remove support in openscreen. Bug: 505034799 Change-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
This reverts commit 3ea9029. Reason for revert: Required changes in Chromium haven't landed yet, so this is stopping the openscreen roll. Failure Link: https://chromium-review.git.corp.google.com/c/chromium/src/+/8187177 Original change's description: > lpm: Remove legacy fuzzable proto implementation > > Now that chromium has removed all instances of legacy fuzzable protos > we can remove support in openscreen. > > Bug: 505034799 > Change-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa > Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905 > Reviewed-by: Jordan Bayles <jophba@chromium.org> > Commit-Queue: Jordan Bayles <jophba@chromium.org> Bug: 505034799 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I60cb6fc3233073c65baba0245a505581bf2e38ba Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8186678 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
1. Add Muyao Xu to the AUTHORS file. 2. Remove the non-standard "Former OWNERS" section from the root OWNERS file. Change-Id: I0a29ded56e791294f4cfc88ecaad7f2f8886d8bf Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8186618 Reviewed-by: Thomas Guilbert <tguilbert@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
Adds configuration options for SetSendBufferSize and SetReceiveBufferSize to SenderSession, passing them directly to the Environment UDP socket. Bug: b/532185030 Change-Id: I506136c3c9198e66e1ed92ca2eee9b04bf13ac4a Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177868 Commit-Queue: Jon Mann <jonmann@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
This is a reland of commit 3ea9029 The original CL was reverted because the two precursor CLs hadn't yet landed in Chromium. The CLs have landed so this should be safe to land now. I verified locally that the fuzzers compile and run successfully on chromium head with this CL. There are no changes from the original CL. Original change's description: > lpm: Remove legacy fuzzable proto implementation > > Now that chromium has removed all instances of legacy fuzzable protos > we can remove support in openscreen. > > Bug: 505034799 > Change-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa > Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905 > Reviewed-by: Jordan Bayles <jophba@chromium.org> > Commit-Queue: Jordan Bayles <jophba@chromium.org> Bug: 505034799 Change-Id: Ifad075839d1ed946d441e77181697972943bc6f7 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8184390 Commit-Queue: Giovanni Ortuno Urquidi <ortuno@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
Bug: 501521717 TAG=agy CONV=e7033504-9617-4ac9-9724-d5ad0898be6e Change-Id: I0edba010372f685de3564cf09c20840f1afd97f4 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7906544 Commit-Queue: Taesun Yeoum <taesuny@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org>
This rolls tinycbor to 0.7.0 and fixes Open Screen build files: - Adds dynamic generation of tinycbor-version.h and tinycbor-export.h using GN generated_file and an action script parsing CMakeLists.txt. - Fixes raw_ptr const_cast issue in streaming_playback_controller.cc. - Adds tinycbor as a public_dep of osp/msgs to forward include dirs. Change-Id: Icd4e4a47d46dd4cccf192d291c1779b068f74421 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8033102 Reviewed-by: Thomas Guilbert <tguilbert@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
Introduce abstract WebTransport platform API in platform/api/web_transport.h. TAG=agy CONV=e7033504-9617-4ac9-9724-d5ad0898be6e Change-Id: If73a1ddbbdcdfc83a5847ebef2896bfdc57e360d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7934456 Commit-Queue: Taesun Yeoum <taesuny@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Muyao Xu <muyaoxu@google.com>
…ad-of-line blocking. Updates ReceiverImpl::AdvanceToNextFrame to use a two-pass logic. The first pass scans for a ready frame (independent and complete), allowing the receiver to skip over older frames that may be missing packet 0 and thus their estimated_capture_time. The second pass processes incomplete/late frames as before. Also removes a pedantic OSP_CHECK in DropAllFramesBefore that would crash the receiver if an older frame was skipped while missing packet 0. Includes unit test coverage for the simplified skipping logic. Bug: b/532185030 Change-Id: I4133b031ca5c268e6ed8f71ebb4c3d7b2ec29057 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180284 Commit-Queue: Jon Mann <jonmann@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
Introduces an optional mechanism for receivers to request Picture Loss Indicators (PLIs) when they are stalled waiting for late, incomplete frames. This allows the receiver to recover from heavy packet loss without waiting for standard transmission timeouts. To avoid network storming during prolonged outages, these proactive PLIs are rate-limited via `receiver_proactive_pli_interval`. This behavior is opt-in (disabled by default) to preserve existing OpenScreen behavior. Additionally, this CL adds an optional Sender-side timeout (`sender_keyframe_cooldown`), which limits how long the Sender will ignore incoming PLIs after dispatching a key frame. This allows the Sender to honor subsequent PLIs and encode a new key frame if the original was lost in flight. Bug: b/532185030 Change-Id: I79ce91ed7ea3723085f59510c0c9bb7fde2b60ad Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180226 Commit-Queue: Jon Mann <jonmann@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
Move generic QUIC adapters (alarm factory, packet writer, utils, constants) from osp/impl/quic to platform/impl/quic so they can be shared between OSP and WebTransport implementations. Bypass-Check-License: Moved files from osp/impl/quic TAG=agy CONV=e7033504-9617-4ac9-9724-d5ad0898be6e Change-Id: I3df3de16198ad3b16b17eaa4524f8a62e91a299f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7934457 Commit-Queue: Taesun Yeoum <taesuny@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org>
Updates Sender::Observer with a new virtual method:
OnPacketsRetransmitted(int count)
After NACKs are processed we now detect when a packet has been sent multiple times and notify registered observers. This allows clients to have more precise insight into congestion, packet loss, and general network health.
Bug: b/532185030
Change-Id: I6cbc85e6267b1aeedcf0b11bbdc664fd4362ea1d
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177869
Reviewed-by: Jordan Bayles <jophba@chromium.org>
Commit-Queue: Jon Mann <jonmann@chromium.org>
Implements and option for clients to override max_in_flight_media_duration on the sender's SenderSession::Configuration. This enables receivers with custom buffering strategies to adjust this value independently. Bug: b/532185030 Change-Id: I9112b4a1b2c62c2508e9989033ff971764309531 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180323 Commit-Queue: Jon Mann <jonmann@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
This change implements the ScopedWakeLock interface for Linux using a robust, dependency-free timed wake lock and heartbeat renewal mechanism. Fixed: 288311411,492683133 Change-Id: I178f9ba263dd8e0ad5e3984b35eaf511c97812ce Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814282 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
This change resolves flakiness in ScopedWakeLockLinuxTest when running openscreen_unittests across parallel test processes (such as on Chromium test bots): 1. Rename test fixture to ScopedWakeLockLinuxTest to match the implementation file and platform-specific test naming conventions. 2. Use unique temporary file paths per test process and test case in ScopedWakeLockLinuxTest::SetUp() to prevent file collision and clobbering across parallel test workers. 3. Invoke ScheduleHeartbeat() directly in ScopedWakeLockLinux constructor instead of posting a task with a raw "this" pointer, avoiding potential use-after-free if destroyed before the posted task executes. Bug: openscreen:288311411, openscreen:492683133 Change-Id: I9d34b0c327ff554ca0aceb01c940bdbe11778c62 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8220327 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
Bug: 538358806 Change-Id: I71522d1a288fda60c0a05d0d260e2bdacb4e9393 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8137565 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Jiewei Qian <qjw@chromium.org>
Node::~Node() iterated `children_` with a range-based for loop while calling RemoveChild() on each element, but RemoveChild() erases from that same vector. Mutating a vector while range-for iterating it invalidates the loop's cached iterator, causing children to be skipped or a stale pointer to be passed back into RemoveChild(), which then fails its OSP_CHECK(it != children_.end()) invariant. This was reachable in practice whenever a node with two or more children was torn down, e.g. tearing down a PTR node for a service type that had multiple discovered instances, which happens during DnsSdServiceWatcher::StopDiscovery() and crashed the process. Fix by popping from the back of `children_` in a while loop instead of range-for iterating it, so RemoveChild() is free to mutate the vector each iteration without invalidating anything still in flight. Change-Id: Ib45741e87a800fd396758d9ffd29808be1c3eac5 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8248339 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Mark Foltz <mfoltz@chromium.org>
…sted namespace Bug: openscreen:364687926 Change-Id: I7b33d6bd13a6207095c37d9f5f3714ec7c9c5064 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8252379 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Taesun Yeoum <taesuny@google.com>
…pace - Replaced 768-byte lookup tables with constexpr branchless ASCII classification and case conversion functions. - Made EqualsIgnoreCase constexpr inline in the header using std::ranges::equal. - Added StripTrailingAsciiWhitespace and StripAsciiWhitespace. - Added variadic StrCat overloads and in-place StrAppend. - Replaced std::views::split + filter pipeline with single-pass Split supporting SplitResult options, and added zero-allocation SplitOnce and RSplitOnce. - Optimized Join for string/string_view ranges with single allocation and precalculated capacity (avoiding std::stringstream), and fixed range.front() concept requirement to support any input_range. - Removed the nested openscreen::string_util namespace and migrated utilities directly into namespace openscreen, updating all call sites. - Cleaned up unused string_util.h includes. - Added comprehensive unit tests and static_assert constexpr checks. Bug: openscreen:364687926 Change-Id: I27a6d7d59be069b92a740f9b7913e4afd889ae2d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8252378 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
… to string_util - Replaced all StringFormat calls with native C++20 std::format and removed the temporary wrapper, addressing crbug.com/364687926. - Moved optimized HexEncode implementation and tests into util/string_util.h and util/string_util_unittest.cc. - Deleted util/stringprintf.h, util/stringprintf.cc, and util/stringprintf_unittest.cc and removed them from util/BUILD.gn. - Cleaned up stringprintf.h includes across the codebase. Bug: openscreen:364687926 Change-Id: Ia5060615448e8173514f92e513d263e6a0ddef85 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8249641 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
…iceImpl MdnsServiceImpl's constructor called socket_v4_->Bind() and socket_v6_->Bind() synchronously as its last step. UdpSocketPosix::Bind() itself asserts OSP_CHECK(task_runner_->IsRunningOnTaskRunner()), so this only worked if MdnsServiceImpl (and transitively ServiceDispatcher / DnsSdService, which callers reach via discovery::CreateDnsSdService()) happened to be constructed from a task already running on the task runner. Callers that constructed it directly (e.g. from a normal function scope, not from inside a posted task) hit that check and crashed. Fix by checking task_runner_->IsRunningOnTaskRunner() before binding: if construction is already happening on the task runner, bind immediately; otherwise post the bind to the task runner. This keeps the common case (construction already on the task runner) synchronous instead of unconditionally deferring it, while still guaranteeing Bind() only ever runs on the task runner regardless of which thread/context constructs the service. Change-Id: Ice1dce7f8002c3a82f3fed55ee152ce2591579e9 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8254500 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Mark Foltz <mfoltz@chromium.org>
This aligns with Chromium's C++ code guidelines which prohibit std::bind in favor of modernized C++11 lambdas. It prevents unnecessary overhead and improves code readability. Bug: openscreen:548337640 Change-Id: I956a3ce572b1470ffc3d2647dee49a684a4bdba0 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8240611 Reviewed-by: Shawn Quereshi <shawnq@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Sara Lin <saralin@google.com>
…offset_estimator This CL replaces legacy typedef usages with modern C++11 `using` alias declarations in clock_offset_estimator_impl.h for better readability. Bug: openscreen:548337640 Change-Id: Ic90d19df828d6fde30334920961fc95f4a8193d0 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8240452 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Sara Lin <saralin@google.com> Reviewed-by: Shawn Quereshi <shawnq@google.com>
This CL improves memory safety and error handling in certificate_utils: 1. Wraps raw RSA pointers in bssl::UniquePtr in ImportRSAPrivateKey to prevent memory leaks if subsequent assignment operations fail. 2. Checks the return value of EVP_PKEY_assign_RSA and ASN1_BIT_STRING_set_bit. 3. Adds safety checks in GetSpkiTlv when extracting public keys from incomplete/empty certificates. 4. Adds dedicated unit tests in certificate_utils_unittest.cc verifying graceful error handling on malformed keys and empty certificates. Bug: openscreen:548337640 Change-Id: Ia3d46e4ffcbd92f039707acc0441ca4c8d995937 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8237093 Reviewed-by: Shawn Quereshi <shawnq@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Sara Lin <saralin@google.com>
Enables the OpenScreen standalone receiver to negotiate and decode incoming H.264 and HEVC video streams, cleanup and optimize the decoding. Key changes: - Added kHevc to supported video codec constraints for mirroring negotiation. - Enabled PARSER_FLAG_COMPLETE_FRAMES for all video codecs. - Configured FF_THREAD_SLICE and AV_CODEC_FLAG_LOW_DELAY to eliminate frame-buffering latency in H.264 / HEVC decoding. - Added input validation, zero-sized packet checks, and decode queue flushing on error to prevent FrameId desynchronization. - Added unit tests for HEVC codec string round-trip. Bug: 529461375 Bug: 529454832 Test: cast_unittests --gtest_filter="MessageFieldsTest.*" Test: End-to-end streaming tested with standalone sender & receiver. Change-Id: I25bbd56931695d9e2a7ee94cd1cdb2dd4543e30d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8212699 Reviewed-by: Shawn Quereshi <shawnq@google.com> Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
This change introduces a Rust-based JSON parsing and serialization backend using serde_json_lenient and cxx FFI bindings. - Add third_party/rust and rust_toolchain hooks to DEPS. - Add GN argument `use_json_serde` (default false) and USE_JSON_SERDE build flag. - Implement streaming JSON parser and serializer in Rust using serde_json_lenient and bridge to Json::Value via CXX. - Add unit tests covering nested structures, booleans, and roundtrip serialization. Fixed: openscreen:364820106 Change-Id: Id10dbf588bb2f7b7f60607f067ed3ac4f4a53f7d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8254590 Reviewed-by: Jordan Bayles <jophba@chromium.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hack to get commit notifications. Do not close!!!