Skip to content

Conversation

@JoshuaMoelans
Copy link
Member

@JoshuaMoelans JoshuaMoelans commented Oct 22, 2025

Native SDK PR: getsentry/sentry-native#1426
mini_chromium PR: getsentry/mini_chromium#4

zetafunction and others added 30 commits July 17, 2024 17:08
Since the test is specifically trying to exercise UB by testing the
state of an object it is already destroyed, unpoison the memory to
suppress MSan errors.

Bug: 40222690
Change-Id: I840e944f5e8b39668ac05d8d641fdd5f2e3db5ac
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5716150
Reviewed-by: Mark Mentovai <[email protected]>
Most significantly, this includes:

6a848b1a1643 Require a minimum of TLS 1.2 (#1889)

Although Crashpad only uses cpp-httplib in tests, there’s no reason to
taunt fate with this tempting juicy morsel. TLS 1.1 is deprecated
(https://datatracker.ietf.org/doc/html/rfc8996, 2021-03).

This includes a change to util/net/http_transport_test_server.cc to
ensure that the test server, which runs in a child process, continues to
return the full multipart request body as it had in the past. Since
cpp-httplib 7e420aeed361 introduced multipart handling, the raw
multipart wrapper no longer appears in Request::body, but is instead
made available at Request::files. With this change, the test server will
reconstitute the original request body to match the test’s expectations.
Note that this isn’t the only way to serialize the request to be
conveyed back to the test, but it’s the most expedient because it’s what
the test already expects, and because the existing framing already takes
the form of the raw HTTP request.

Change-Id: Ia4adaedff0873976f7cc5be138d78f931165fe4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5753782
Reviewed-by: Joshua Peraza <[email protected]>
Bug: 356640476
Change-Id: Ic715b20d7e8263854b1301d1bc74152a3becb206
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5758238
Commit-Queue: Justin Cohen <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
pipes is deprecated since Python 3.11 and is scheduled for removal in
Python 3.13 (https://peps.python.org/pep-0594/#deprecated-modules), with
shlex.quote being available since Python 3.3.

This was already implemented downstream in Chromium at
https://chromium.googlesource.com/chromium/src/+/8dc44aaeff04 without
following the instructions in third_party/crashpad/README.chromium, and
collided during the update at
https://chromium-review.googlesource.com/c/5766975.

Bug: 1453653
Change-Id: If54bd260e6f571c58f44568e79adafade5b1987e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5767512
Reviewed-by: Joshua Peraza <[email protected]>
This fixes errors observed while building
util/http_transport_test_server/http_transport_test_server.cc, shown
below.

The fixes include:
 - Library version check: tolerate BoringSSL as an alternative to
   OpenSSL 3.
 - Don’t call `OPENSSL_thread_stop`, which is not in BoringSSL.
 - Use `SSL_get_peer_certificate` (deprecated in OpenSSL 3), the old
   name for `SSL_get1_peer_certificate`, because the new name is not in
   BoringSSL.
 - Call `SSL_set_tlsext_host_name` directly instead of making a quirky
   `SSL_ctrl` call that BoringSSL does not support. The feared
   -Wold-style-cast warning that occurs when buidling with OpenSSL is
   not triggered in BoringSSL.

Compilation errors from
https://chromium-review.googlesource.com/c/5766975?checksPatchset=1&tab=checkshttps://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1909715/
→ “10. compilator steps (with patch)” → “31. compile (with patch)” →
stdout
(https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8740323272553670737/+/u/compile__with_patch_/stdout):

```
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:275:2: error: Sorry, OpenSSL versions prior to 3.0.0 are not supported
  275 | #error Sorry, OpenSSL versions prior to 3.0.0 are not supported
      |  ^
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:733:7: error: use of undeclared identifier 'OPENSSL_thread_stop'
  733 |       OPENSSL_thread_stop ();
      |       ^
third_party/cpp-httplib/cpp-httplib/httplib.h:9062:30: error: use of undeclared identifier 'SSL_get1_peer_certificate'; did you mean 'SSL_get_peer_certificate'?
 9062 |           auto server_cert = SSL_get1_peer_certificate(ssl2);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                              SSL_get_peer_certificate
…/boringssl/src/include/openssl/ssl.h:1784:22: note: 'SSL_get_peer_certificate' declared here
 1784 | OPENSSL_EXPORT X509 *SSL_get_peer_certificate(const SSL *ssl);
      |                      ^
In file included from util/net/http_transport_test_server.cc:42:
third_party/cpp-httplib/cpp-httplib/httplib.h:9083:24: error: use of undeclared identifier 'doesnt_exist'
 9083 |         SSL_ctrl(ssl2, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name,
      |                        ^
…/boringssl/src/include/openssl/ssl.h:5699:38: note: expanded from macro 'SSL_CTRL_SET_TLSEXT_HOSTNAME'
 5699 | #define SSL_CTRL_SET_TLSEXT_HOSTNAME doesnt_exist
      |                                      ^
4 errors generated.
```

Change-Id: I5798f17323672d70f75335cea61094457b54466e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5769752
Reviewed-by: Joshua Peraza <[email protected]>
This includes an upstreamed version of the Crashpad-local 1a62a01
(https://chromium-review.googlesource.com/c/5769752) for BoringSSL
compatibility.

50fce538c685 threadsafe CLOEXEC on platforms that support it
fb739dbaecf3 threadsafe accept on windows, linux
ed0719f2bcb5 Code format
521529d24d38 Fix #1481 (with content provider) (#1527)
e00fd06355e8 Release v0.16.1
ff038f98b701 Merge branch 'thread-safe-cloexec' of
             github.com:kdombroski/cpp-httplib into kdombroski-thread-
             safe-cloexec
ae63b89cbf70 Use SOCK_CLOEXEC instead of __linux__
69c84c9597c3 BoringSSL compatibility fixes (#1892)
c5c54b31e2bf Release v0.16.2

Change-Id: I01485010de53ae599e22c8ce3c9d6af046d47c24
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5769660
Reviewed-by: Joshua Peraza <[email protected]>
…a85315 (1 commit)

https://chromium.googlesource.com/chromium/mini_chromium/+log/bd56f6933f2f..7eca85315879

$ git log bd56f6933..7eca85315 --date=short --no-merges --format='%ad %ae %s'
2024-08-13 pbos Use abort() for NOTREACHED()

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Bug: chromium:40580068
Change-Id: Ia731e0fb3e5e4a50f61abf14d646089582cd1a50
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5784235
Reviewed-by: Mark Mentovai <[email protected]>
This alias is not present in mini_chromium and disappearing from
chromium.

Bug: chromium:40580068
Change-Id: Ib6218d96df3bb8b2fe46af08ac51d6362c7db64e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5783604
Reviewed-by: Mark Mentovai <[email protected]>
This was tested locally by adding "-Wunreachable-code-aggressive" after
making NOTREACHED() [[noreturn]] in mini_chromium and then getting that
to compile.

Bug: chromium:40580068
Change-Id: I7ec1c72be1d73436d128660a621e9060eaebaee8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5780891
Reviewed-by: Mark Mentovai <[email protected]>
There is no longer a need to use this macro; compilers have no problem
with `alignas()` nowadays.

Subsequent CLs will remove the macro entirely once it's unused in both
Crashpad and Chromium.

Bug: none
Change-Id: I94675f3f674f9bc32a213e972a017980dcd1c014
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5805982
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
`DISABLE_CFI_ICALL` is already defined in that header; use it.

This is both simpler and less likely to trigger macro redefinition
errors.

Bug: none
Change-Id: I3ecfe9b6dc4ac42c6a69b3fd9c6d2c68fe8e62a2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5805458
Reviewed-by: Mark Mentovai <[email protected]>
…c707cb (3 commits)

https://chromium.googlesource.com/chromium/mini_chromium/+log/7eca85315879..e04c707cb33a

$ git log 7eca85315..e04c707cb --date=short --no-merges --format='%ad %ae %s'
2024-08-21 pkasting Remove `WPRINTF_FORMAT`.
2024-08-21 pkasting Move/remove macros in compiler_specific.h to match Chromium.
2024-08-13 pbos Remove NOTREACHED_IN_MIGRATION()

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Bug: none
Change-Id: Ief091ad8f6f9a775ccf8b53fb5f884be6834b0f3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5805983
Reviewed-by: Mark Mentovai <[email protected]>
This reverts commit 458bdec.

Reason for revert: Crashpad roll into Chrommium failed.

https://chromium-review.googlesource.com/c/5805903
https://ci.chromium.org/ui/p/chromium/builders/try/android-x64-rel/171929/
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8738938901079891665/+/u/compile__with_patch_/stdout

While linking libcrashpad_handler_trampoline.so:

```
ld.lld: error: undefined symbol: std::__Cr::__libcpp_verbose_abort(char const*, ...)
>>> referenced by ascii.cc
>>>               obj/third_party/abseil-cpp/absl/strings/strings/ascii.o:(std::__Cr::__throw_out_of_range(char const*))
>>> referenced by lightweight_quarantine.cc
>>>               allocator_core/lightweight_quarantine.o:(partition_alloc::internal::LightweightQuarantineBranch::~LightweightQuarantineBranch()) in archive obj/base/allocator/partition_allocator/src/partition_alloc/liballocator_core.a
>>> referenced by lightweight_quarantine.cc
>>>               allocator_core/lightweight_quarantine.o:(partition_alloc::internal::LightweightQuarantineBranch::Purge()) in archive obj/base/allocator/partition_allocator/src/partition_alloc/liballocator_core.a
>>> referenced 1 more times
[…]
ld.lld: error: undefined symbol: std::get_new_handler()
[…]
ld.lld: error: undefined symbol: _Unwind_Backtrace
[…]
ld.lld: error: undefined symbol: _Unwind_GetIP
[…]
ld.lld: error: undefined symbol: __cxa_guard_acquire
[…]
ld.lld: error: undefined symbol: __cxa_guard_release
[…]
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

Original change's description:
> Don't redefine macros from base/compiler_specific.h.
>
> `DISABLE_CFI_ICALL` is already defined in that header; use it.
>
> This is both simpler and less likely to trigger macro redefinition
> errors.
>
> Bug: none
> Change-Id: I3ecfe9b6dc4ac42c6a69b3fd9c6d2c68fe8e62a2
> Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5805458
> Reviewed-by: Mark Mentovai <[email protected]>

Bug: none
Change-Id: Ie225e03e07ab3d0a00933217b377cee14fcdb8b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5806223
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Joshua Peraza <[email protected]>
Reviewed-by: Joshua Peraza <[email protected]>
`DISABLE_CFI_ICALL` is already defined in that header; use it.

This is both simpler and less likely to trigger macro redefinition
errors.

This was previously landed in crrev.com/c/5805458, but reverted due to
crbug.com/362787700.

Bug: chromium:362787700
Change-Id: I1fc8d9dc0b099c67ea7d774034b7691691ff2a50
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5825328
Reviewed-by: Joshua Peraza <[email protected]>
This GN arg config repros the failure in the bug:
```
chrome_pgo_phase = 1
is_official_build = true
target_cpu = "arm64"
target_os = "android"
use_remoteexec = true
```

Commenting out either is_official_build or chrome_pgo_phase removes the
compile error, but since many bots build with is_official_build, the
culprit must be chrome_pgo_phase.

Bug: chromium:362787700
Change-Id: I536a098693b85ed93c22e38e639b393fcb480e79
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5826154
Reviewed-by: Joshua Peraza <[email protected]>
Bug: 349528232
Change-Id: If5550f95a27655e1ad94830c6cd8b33dd2a068c4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5845908
Reviewed-by: Joshua Peraza <[email protected]>
The gn-args have default values in fuchsia-gn-sdk and not necessary
to be repeated - api-level 18 is also removed and breaks crashpad.

Bug: crashpad:365889763
Change-Id: I2a5a573158db434dd578c92455d0af6c96408d74
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5854005
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
Bug: 365974437
Change-Id: I9ada04b3602487513ff14ef1124feb43ddfb323a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5855599
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Justin Cohen <[email protected]>
buildtools has first party support to fetch clang-format so no longer
needed to use custom hooks.

Bug: chromium:336843583
Change-Id: I2c29ad9df579b605ff6e1d967da6502ffcd12faf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5586422
Commit-Queue: Josip Sokcevic <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
…1fd005 (3 commits)

https://chromium.googlesource.com/chromium/mini_chromium/+log/e04c707cb33a..c081fd005b09

$ git log e04c707cb..c081fd005 --date=short --no-merges --format='%ad %ae %s'
2024-10-03 pbos Reimplement LAZY_STREAM with a switch
2024-10-03 pbos Fix LOG(FATAL) compile errors
2024-10-03 pbos Make LOG(FATAL) [[noreturn]]

Created with:
  roll-dep crashpad/third_party/mini_chromium/mini_chromium

Bug: chromium:40254046
Change-Id: I78c16747fbc5fbba8c2d17c16fec47e467b00189
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5904404
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
No behavior change.

Bug: none
Change-Id: Ie838df830221a09d5401c6c73c8c889ea714940e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5905738
Reviewed-by: Peter Boström <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Nico Weber <[email protected]>
Bug: chromium:369900059
Change-Id: I0b39a72938b3dc591ab8b4894a7a23a3deb4604d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5920056
Commit-Queue: Jinyoung Hur <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
This brings in yhirose/cpp-httplib#1962 which
addresses -Wdeprecated-literal-operator.

Note that this contains v18.0 but is is 15 commits ahead as no release
has yet been made.

yhirose/cpp-httplib@v0.18.0...0cc1ca9

Bug: chromium:373130005
Change-Id: Iada3259107e68d0eeabf20812df2d73e50daa750
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5932425
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
Routing LogSink manually is not needed, as this is done implicitly
through the client shard. Future CLs will update the routing used in
the shard, so it's necessary to cleanup these duplicate routes in
order to update the shards.

Bug: fuchsia:345827642
Change-Id: I529ab52412530382240d5c6276c1ef01ab349ecc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5941579
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Brian Bosak <[email protected]>
This attempts to be somewhat forward-compatible with upcoming additions
to the Data struct, most importantly to not lose the client ID if we
ever need to downgrade / read data from a future crashpad version.

Bug: 42310127
Change-Id: Ic3914fdd8460f4f41e5bb523d5c52361767880dd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5915193
Reviewed-by: Mark Mentovai <[email protected]>
Reviewed-by: Jesse McKenna <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
Bug: crashpad:42310127
Change-Id: I8a060afd6d976379064c4177a40b337942252087
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5951643
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
Bug: 375980422
Change-Id: Ia3afad0d2a8bf701f783720554ca8887a34b6fda
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5969699
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Takuto Ikuta <[email protected]>
Bug: chromium:376296991
Change-Id: Iad1a2d59ceb444360f7dad407fdfe11f6f1aac69
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5991037
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Nico Weber <[email protected]>
In most cases NOTREACHED() is now a better option. Also performs
dead-code removal.

Bug: 40122554, 40580068
Change-Id: I2deffa59d375db7813ea6779b1d387718d5c62c7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6013409
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Peter Boström <[email protected]>
 - Where std::nullptr_t is used (in namespace std), #include <cstddef>,
   even if it appears alongside <stddef.h> because types like intptr_t
   are used (in the root namespace).
 - Where math library functions are used, #include <cmath> to get and
   use the versions of functions in namespace std which are overloaded
   by argument type, such as std::isinf and std::isnan.

third_party is excluded.

Change-Id: Ic9c143f407e5a9c5cff4098cf566ba5caf4bf6d8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6021439
Commit-Queue: Mark Mentovai <[email protected]>
Reviewed-by: Joshua Peraza <[email protected]>
Joshua Peraza and others added 21 commits July 24, 2025 19:12
__android_log_buf_write() has been updated to no longer return
-EAGAIN. It now returns 1 on success, otherwise -EPERM.

Change-Id: I3f78d25ca773bb3d580612454dded002084095db
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6786151
Commit-Queue: Joshua Peraza <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
Running macOS 15.5 24F74 on a MacBookPro18,2, this test was flaky with
an inner sleep of 1ms, but passes reliably at 10ms.

Change-Id: I697ef96e0b382ccea24d7983fcc53a1c21858f80
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6794724
Reviewed-by: Joshua Peraza <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
Starting in dyld-1284.13 (macOS 15.4), _dyld_get_image_name (in
dyld4::PrebuiltLoader::path) returns an absolute path for a main
executable, even when the image was not loaded from an absolute path.
This can break test expectations when the test executable is not invoked
from an absolute path. As a workaround, just use the main executable’s
basename for comparison purposes.

Change-Id: I3846d237a7a15e886cf15cd27146556103c22c2e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6794725
Reviewed-by: Joshua Peraza <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/6785872

Change-Id: I268b7c6ddd160cb759fae6ddd67b63dcfd3ad6c1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6788464
Reviewed-by: Lei Zhang <[email protected]>
Commit-Queue: Joshua Peraza <[email protected]>
sysctlbyname("kern.osproductversion", …) is available since macOS
10.13.4, which is now well below this code’s minimum runtime OS version.
The old implementation that fell back to calling uname and inferring the
macOS version from utsname::release is no longer necessary.

Tests and documentation are also slightly updated and improved.

Test: crashpad_util_test MacUtil.MacOSVersion*
Change-Id: Idb26bb59c124ab2191ef961f01e9691856f2c812
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6798736
Reviewed-by: Justin Cohen <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
The board_id returned on mac-arm64 was taken from the target-type
property of the IOPlatformExpertDevice obtained through IOKit when this
code was written on a mac-arm64 Developer Transition Kit, with a TODO to
verify with production hardware. Several generations of production
hardware have shown that this is a viable strategy. In fact, a slightly
more detailed ID can be obtained from the target-sub-type property.

mac-x86_64 continues to use the board-id property for this purpose.

Test: crashpad_util_test MacUtil.MacModelAndBoard
Change-Id: I81d5052d1a9cd7a76b6b4593fb4115a251409de7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6798247
Commit-Queue: Mark Mentovai <[email protected]>
Reviewed-by: Justin Cohen <[email protected]>
The files in infra/config/generated were generated by running `lucicfg
generate main.star`.

Bug: 434907998
Change-Id: I110f147a58d53f7b858829f9a09b959d97d48112
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6803620
Reviewed-by: Ben Pastene <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
macOS/iOS 26 introduce a new version of the crashreporter_annotations_t
structure used in __DATA,__crash_info or __DATA_DIRTY,__crash_info:
version 7. This is expected to be the value of
CRASHREPORTER_ANNOTATIONS_VERSION in the private
<CrashReporterClient.h>. Version 7 crashreporter_annotations_t
structures are empirically observed to be 328 bytes long, which is 264
bytes (or 33 uint64_ts) longer than the previously known version 5
structure. Version 5 was used from OS X 10.11 through macOS 15, and
there does not appear to be a version 6. The precise layout and meaning
of the new fields in the version 7 extension is not yet known.

Test: crashpad_snapshot_test MachOImageAnnotations.Crash*
Bug: 425331081
Change-Id: I1bc06a4a0f07c43830701e335da479f6fb5b5846
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6796433
Reviewed-by: Justin Cohen <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
This upstreams https://chromium-review.googlesource.com/c/chromium/src/+/6803484

No behavior change.

Bug: none
Change-Id: I5b9d304f693958236f839814ec427d8171c13578
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6812474
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Nico Weber <[email protected]>
On newer dyld versions, the `__crash_info` section is placed in the
`__DATA_DIRTY` segment. This change updates the crash handler to check
for this segment in addition to `SEG_DATA`.

Change-Id: Ie0eebf36c57db3e5267c4e3dcfae6eef488d52f3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6806281
Commit-Queue: Justin Cohen <[email protected]>
Reviewed-by: Mark Cogan <[email protected]>
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/5698665

Bug: 40506050
Change-Id: Idde07d7a8c8bb7209b38543b44fd13be72c9ce12
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6854282
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Joshua Peraza <[email protected]>
__system_property_get() is deprecated. __system_property_read_callback()
replaces it as of Android API level 26.

This change was generated using gemini-cli.

Bug: 413072681
Change-Id: Ifc532d1caa4692b496e57af4a0455ae95604e146
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6854281
Commit-Queue: Joshua Peraza <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
Bug: 40506050
Fixed: 439063162
Change-Id: Ia54a4391d705e9360ccdfee42dbed76c12260b77
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6854524
Reviewed-by: Mark Mentovai <[email protected]>
Reviewed-by: Joshua Peraza <[email protected]>
Commit-Queue: Thomas Gales <[email protected]>
ee0bee390725 Fix HttpWatch tests (#2089)
f2928d71525d Switch redirect tests to httpbingo.org (#2090)
85b5cdd78d9b Move detail::read_file() to test/test.cc (#2092)
5a1ecc3958f4 Run 32-bit compiled unit tests on Ubuntu (#2095)
48084d55f229 Fix #2096
37399af9960e build(meson): copy MountTest.MultibytesPathName files
             (#2098)
a9ba0a4dff62 Remove SSLInit (#2102)
2f39723d08ea Wrap poll()/WSAPoll() in a function and build compiled
             library on Windows (#2107)
a8d6172250ef Avoid static std::string (#2103)
94a402882189 Update vendored gtest to 1.12.1 (#2100)
2eaa2ea64f9f Make random_string() thread-safe (#2110)
0bda3a7d1a79 Update benchmark
c765584e6b10 Add zstd support (#2088)
33acccb346ec Fix #2109
87a5ae64a416 Fix #2097
0be052608541 cmake: only validate component when the required library is
             found (#2112)
7a212cfe40cc clang-format
787a34ad7f01 Release v0.20.0
65ce51aed7f1 Fix start_time shadow variable (#2114)
72b35befb242 Add AF_UNIX support on windows (#2115)
7dbf5471ce45 Fix the style error and comment
dbc4af819a2c Fix compilation error on windows (#2118)
0dbe8ba1446d Support zstd also via pkg-config (#2121)
b7e33b08f17a Add missing component comment (#2124)
3e3a8cc02f2b Made the max timeout threshold for SSL longer
65d6316d65ae Fix #2113
9e4aed482e70 Fix style error
caf7c55785ed Fix regression of #2121 (#2126)
9589519d5823 Fix #2130
7b752106ac42 Merge commit from fork
a0de42ebc41d clang-format
3af7f2c16147 Release v0.20.1
61893a00a42d Fix #2135
c216dc94d20e Code cleanup
366eda72dce5 Specify version in meson.build (#2139)
fd324e141289 Add KeepAliveTest.MaxCount
4a7aae54690c Detect if afunix.h exists (#2145)
365cbe37fac4 Fix #2101
fd8da4d8e4ec Feature/multipart headers (#2152)
3a1f379e751e Release v0.21.0
08a0452fb2fe Update README.md (#2156)
27879c4874aa Fix #2157 (#2158)
91e79e9a6345 Fix #1777 (#2160)
28dcf379e82a Merge commit from fork
b6c55c6030f5 Release v0.22.0
de5a255ac650 Fix bad request for multipart form data with boundary split
             (#2159)
aabd0634aeac Fix warnings created by #2152
1729aa8c1f45 Issue 2162 (#2163)
b2bf17239363 Fix #1551
d37373a983f9 Performance investigation
a183dba9fc93 clang-format
696c02f2bcc4 Update README
e1ab5a604bef Proxy problems (#2165)
e6ff3d7ac28c Cleaner API (#2166)
ea850cbfa74e Fix #1601 (#2167)
7c303bb87128 Launch proxy server before proxy test
292f9a6c5563 Add CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO
0b875e07471f Remove unnecessary parameters
d5409ab541ec Fix warnings
fd034832379e Fix warnings
9e36247665df clang-format
083fe43ad34d Remove httpwatch.com dependency
cfb56c0b787b Fix #1818
9a0571513e0f Fix Makefile
0c08c378d7d9 Simplify benchmark
ceff2c115405 Add non-blocking getaddrinfo option to Cmake (#2168)
120405beac2d clang-format
cb85e573dea2 Fix #1416 (#2169)
a636a094bf21 Fix #1656
a3f556919629 Fix #2082 (#2170)
af7337761181 Fix #1578 (#2171)
145fc8b0215f Proxy test (#2172)
af7a69bcf631 build(meson): add non_blocking_getaddrinfo option (#2174)
52163ed9823c Fix #2148 (#2173)
082acacd4581 Merge commit from fork
4ff7a1c858fa build(meson): simplify build options (#2176)
c551e972971b Add .pre-commit-config.yaml
9dbaed75efff Fix #2175 (#2177)
802743264cec Remove incorrect comment
17ba303889b8 Merge commit from fork
b5b2a1d1c862 Change uint64_t to size_t
ecfd84c1712b Release v0.23.0
53ea9e8bb475 Fix #2111 (#2179)
55b38907dcdf Resolve #1264
8b28577ec6c3 Resolve #366
7b6867bcdf72 Fix #2021 (#2180)
1f110b54d8b3 Chang #error to #warning for the 32-bit environment check
             except 32-bit Windows
dd98d2a24d9d build(meson): warn/fail on 32-bit machines (#2181)
ca5fe354fb83 Release v0.23.1
890a2dd85d9f Fix #2189
8e8a23e3d248 Fix #2187
c0c36f021def Fix #2184, #2185 (#2190)
a5d4c143e524 Release v0.24.0
0b3758ec36be Fix problem with Windows version check
acf28a362df8 #2191 Check for minimum required Windows version (#2192)
b52d7d8411f9 ErrorLogger support (#870) (#2195)
cdaed14925a4 Update README
70cca55cafb4 Workaround for chocolatey issue with the latest OpenSSL
fbee136dca54 Fix #2193. Allow _WIN32
b1c1fa2dc635 Code cleanup
7012e765e131 CMake: Check pointer size at configure time (#2197)
a2bb6f6c1ea5 Update docker/main.cc
3f44c80fd345 Release v0.25.0

Bug: 438422635
Test: crashpad_util_test HTTPTransport.*
Change-Id: Iaa8e732d3a2a9e46ee9ffefa4848b769c8f54f74
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6867730
Reviewed-by: Joshua Peraza <[email protected]>
Commit-Queue: Mark Mentovai <[email protected]>
'README.crashpad' is recognised by our tooling as a metadata file. This
invalid file prevents us enforcing vulnerability coverage. There are
about a dozen valid 'README.crashpads, see examples of correctly
formatted ones by searching on codesearch.

Bug: 422924482
Change-Id: Ie19422dd870548e36e9bbb7803e69a997d78b2da
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6975426
Reviewed-by: Will Harris <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Jordan Brown <[email protected]>
Bug: 448113221
Change-Id: I0e7bc9513fdbc1c22b3d94a82efeb0adee6cb04c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7022792
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Joshua Pawlicki <[email protected]>
This change moves the rate-limiting logic from ShouldRateLimitUpload()
into a separate helper function with its own tests. The logic itself
is unchanged.

This is a precursor to changes that will experimentally change the
rate limit. The new tests will help ensure that future changes don't
unexpectedly break existing logic that should be kept (e.g., the
CrashSkippedReason, which is emitted to a histogram).

Bug: 42310127
Change-Id: I68268ee6ea76aa31961f3791c595503a204ec5b4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7038272
Commit-Queue: Jesse McKenna <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
kBackwardsClockTolerance is in a header file, so it should be inlined to
ensure it's not duplicated across translation units.

This fixes the following Chromium presubmit warning:

Consider inlining constexpr variable definitions in headers outside of classes
to avoid unnecessary copies of the constant. See https://abseil.io/tips/168 for
more details.
  third_party\crashpad\crashpad\handler\crash_report_upload_rate_limit.h: 29
    constexpr int kBackwardsClockTolerance = 60 * 60 * 24;  // 1 day

Bug: 42310127
Change-Id: Ie37ec72f62f5e3ee8c8080e5e1dd951a575e248a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7056627
Reviewed-by: Mark Mentovai <[email protected]>
Commit-Queue: Jesse McKenna <[email protected]>
This fixes the following clang-tidy error seen when rolling Crashpad
into Chrome:

check: modernize-concat-nested-namespaces

nested namespaces can be concatenated
(https://clang.llvm.org/extra/clang-tidy/checks/modernize/concat-nested-namespaces.html)

Change-Id: I5b5ef3deef40e5850b92a0375b00b057c9b60244
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7068660
Commit-Queue: Jesse McKenna <[email protected]>
Reviewed-by: Mark Mentovai <[email protected]>
use std::atomic_fetch_add() in place of base::subtle::Barrier_AtomicIncrement()
move __attribute__((packed)) to the end of the struct to satisfy GCC
@supervacuus supervacuus force-pushed the meta/update_22_10_2025 branch from bbf220c to cc7d58a Compare October 22, 2025 14:57
@supervacuus
Copy link
Collaborator

The only thing left to check here might be base::fixed_extent usage in the UUID module.
The rate-limit topic might be better observed in the Native SDK repository.

@JoshuaMoelans, please cross-check with your review notes.

@JoshuaMoelans JoshuaMoelans merged commit b160f39 into getsentry Oct 23, 2025
17 checks passed
@JoshuaMoelans JoshuaMoelans deleted the meta/update_22_10_2025 branch October 23, 2025 10:13
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.