2411 Commits

Author SHA1 Message Date
Justin Cohen
6d37f81ace ios: Remove OS filter for iOS simulator tests.
Bug: 365974437
Change-Id: I9ada04b3602487513ff14ef1124feb43ddfb323a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5855599
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-09-11 22:29:44 +00:00
Hzj_jie
e3abe1ed44 [fuchsia] remove unnecessary build args
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 <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-09-11 17:43:16 +00:00
Mark Mentovai
35e06fe736 Add Revision to xnu’s README.crashpad
Bug: 349528232
Change-Id: If5550f95a27655e1ad94830c6cd8b33dd2a068c4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5845908
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2024-09-09 15:45:19 +00:00
Peter Wen
915913bd5a Fix crashpad for PGO generation
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 <jperaza@chromium.org>
2024-09-03 17:27:07 +00:00
Peter Kasting
f9fa2d112b [reland] 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.

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 <jperaza@chromium.org>
2024-08-28 22:57:49 +00:00
Mark Mentovai
50faaf111e Revert "Don't redefine macros from base/compiler_specific.h."
This reverts commit 458bdec9852280f091a72f9d90eb75f04d0af05f.

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 <mark@chromium.org>

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 <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2024-08-22 16:33:50 +00:00
Peter Kasting
756637881a Roll crashpad/third_party/mini_chromium/mini_chromium/ 7eca85315..e04c707cb (3 commits)
7eca853158..e04c707cb3

$ 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 <mark@chromium.org>
2024-08-22 02:48:21 +00:00
Peter Kasting
458bdec985 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 <mark@chromium.org>
2024-08-22 02:47:50 +00:00
Peter Kasting
adb22c8169 Switch from ALIGNAS() to alignas().
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 <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-08-22 00:55:59 +00:00
Peter Boström
6265674c98 Migrate to NOTREACHED()
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 <mark@chromium.org>
2024-08-14 03:11:45 +00:00
Peter Boström
cc54fcc7f5 Fix trailing NOTREACHED_NORETURN()
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 <mark@chromium.org>
2024-08-14 01:57:47 +00:00
Peter Boström
ee8369ffb2 Roll crashpad/third_party/mini_chromium/mini_chromium/ bd56f6933..7eca85315 (1 commit)
bd56f6933f..7eca853158

$ 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 <mark@chromium.org>
2024-08-13 01:19:28 +00:00
Mark Mentovai
6159a43ff1 Update cpp-httplib to c5c54b31e2bf (0.16.2)
This includes an upstreamed version of the Crashpad-local 1a62a0182557
(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 <jperaza@chromium.org>
2024-08-08 16:22:48 +00:00
Mark Mentovai
1a62a01825 BoringSSL compatibility fixes for cpp-httplib
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 <jperaza@chromium.org>
2024-08-07 17:57:22 +00:00
Mark Mentovai
b8658f3806 Use Python shlex instead of the deprecated pipes
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 <jperaza@chromium.org>
2024-08-06 20:30:30 +00:00
Justin Cohen
9b3ff691e9 Upgrade simulator tests to iPhone 15 running iOS 17.4
Bug: 356640476
Change-Id: Ic715b20d7e8263854b1301d1bc74152a3becb206
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5758238
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-08-01 21:27:47 +00:00
Mark Mentovai
d380daf704 Update cpp-httplib to 6a848b1a1643
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 <jperaza@chromium.org>
2024-07-31 17:46:48 +00:00
Daniel Cheng
aef7de4e93 [MSan] "Fix" use-after-dtor in InitializationState.InitializationState
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 <mark@chromium.org>
2024-07-17 17:08:24 +00:00
Takuto Ikuta
a1fc5d728b Revert "DEPS: fix version of fuchsia/sdk/core to avoid build error"
This reverts commit a63adda6278e9caa75361051cb23fd914e533151.

Reason for revert:
This is not necessary after https://crrev.com/c/5585353.

Original change's description:
> DEPS: fix version of fuchsia/sdk/core to avoid build error
>
> This is a temporary workaround to avoid error like
> https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview
>
> Bug:  41489832
> Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3
> Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904
> Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
> Reviewed-by: Mark Mentovai <mark@chromium.org>

Bug: 41489832
Change-Id: I2c6d3c3008047a6f79fb3bfddd8240a758ee645a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599914
Reviewed-by: Mark Mentovai <mark@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
2024-06-06 03:01:20 +00:00
Takuto Ikuta
c09de98737 remove references to goma
goma is not maintained anymore.

Bug: 41489832
Change-Id: Ic82524205c7593ddba041c253e7d6283f9c89f33
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599864
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
2024-06-06 01:46:46 +00:00
Takuto Ikuta
a63adda627 DEPS: fix version of fuchsia/sdk/core to avoid build error
This is a temporary workaround to avoid error like
https://ci.chromium.org/ui/p/crashpad/builders/try/crashpad_fuchsia_arm64_dbg/1299/overview

Bug:  41489832
Change-Id: Ia5404b5d7a2f01f53211fba7b8d602b9236ccbd3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5599904
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-06-06 01:46:12 +00:00
Hzj_jie
25c079d731 [Fuchsia] Run fuchsia-gn-sdk from chromium
The latest build rules have the ffuchsia-api-level.
Need https://crrev.com/c/5586319.

Bug: fuchsia:42085580, fuchsia:327691011
Change-Id: I21383e02f9fff3db9405c0dbe42051122a325003
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5585353
Commit-Queue: Zijie He <zijiehe@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-06-05 23:10:01 +00:00
Justin Cohen
0bebda66a8 ios: Remove duplicate implementations of ReadStringSysctlByName
Bug: crashpad: 480
Change-Id: Ie37c557d2170f6d96968ec4922ec52bfc6ad8136
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5580854
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-06-04 18:25:16 +00:00
Ben Pastene
cd0b7c2cd4 infra: Move crashpad ci/try builds from Ubuntu-18.04 to Ubuntu-22.04
These are the last remaining jobs on the last remaining bionic pools.
Moving these over should let the bionic flex pool finally be decommed.

All of chrome/chromium has been on Ubuntu-22.04 for months now. So
hopefully this is transparent for crashpad.

Bug: chromium:40255350
Change-Id: I82828c0ae0c6efc8868b33779d7ebf5fb9b16116
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5550958
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-05-21 15:55:36 +00:00
Peter Boström
6af42bc0b2 Use NOTREACHED_IN_MIGRATION()
This was generated by replacing "  NOTREACHED()" with
"  NOTREACHED_IN_MIGRATION()" and running git cl format.

This prepares for making NOTREACHED() [[noreturn]] alongside
NotReachedIsFatal migration of existing inventory.

Bug: chromium:40580068
Change-Id: Idb68e2fc8adba180350b0595fd494cf0f206bded
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5548246
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-05-17 16:30:52 +00:00
Peter Boström
efd29a76c9 Roll crashpad/third_party/mini_chromium/mini_chromium/ a6607b1fd..5856e1ea6 (2 commits)
a6607b1fd7..5856e1ea61

$ git log a6607b1fd..5856e1ea6 --date=short --no-merges --format='%ad %ae %s'
2024-05-16 pbos Add NOTREACHED_IN_MIGRATION()
2024-05-11 pwjworks Remove workaround for missing std::atomic_thread_fence

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

Bug: chromium:40580068
Change-Id: I6d1385739042fa5b826bfa91c50b914eebaaf8fd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5544927
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-05-17 00:10:03 +00:00
Ben Hamilton
d588c50b16 [ScopedSpinGuard] Use std::atomic::compare_exchange_strong() for spinlock
Previously, ScopedSpinGuard used std::atomic::compare_exchange_weak()
in a loop to implement a spinlock. After looping for the specified
number of nanoseconds, it would give up and return an error.

A few bugs have come in on ARM platforms (https://crbug.com/340980960,
http://b/296082201) which indicate that this can fail even in
single-threaded cases where nothing else has the spinlock.

From https://cbloomrants.blogspot.com/2011/07/07-14-11-compareexchangestrong-vs.html :

> compare_exchange_weak exists for LL-SC (load linked/store
> conditional) type architectures (Power, ARM, basically everything
> except x86), because on them compare_exchange_strong must be
> implemented as a loop, while compare_exchange_weak can be
> non-looping.

and:

https://en.cppreference.com/w/cpp/atomic/atomic/compare_exchange#Notes

> compare_exchange_weak is allowed to fail spuriously, that is, acts
> as if *this != expected even if they are equal. When a
> compare-and-exchange is in a loop, compare_exchange_weak will yield
> better performance on some platforms.
>
> When compare_exchange_weak would require a loop and
> compare_exchange_strong would not, compare_exchange_strong is
> preferable [...]

My conclusion is that this logic needs to use
`compare_exchange_strong` to avoid spurious failures on ARM in the
common case when there's no other thread holding the spinlock.

Change-Id: I2a08031db6b219d7d14a5cd02b3634985f81ab06

Bug: b:340980960
Change-Id: I2a08031db6b219d7d14a5cd02b3634985f81ab06
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5545257
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Ben Hamilton <benhamilton@google.com>
2024-05-16 22:16:59 +00:00
Joshua Peraza
0e043ccf70 Add guard pages to test stacks
Bug: b:340659332
Change-Id: I4c2c82a1868d7a4f4a062a4e7a64258deedfb794
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5542248
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2024-05-16 16:28:52 +00:00
Arthur Wang
aef8303371 Fix format issue
Change-Id: I9756fa76f94cfcb9edc9f8df8ecfa5ff33918c22
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5542412
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Arthur Wang <wuwang@chromium.org>
2024-05-15 19:43:28 +00:00
Arthur Wang
4f99326c2e Replace std::unique_ptr with base::HeapArray in process_memory.cc
Bug: crashpad:326459219
Change-Id: Ic5e252285ed1fb1769eef67ddaea00a830d0ee6a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5535006
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Arthur Wang <wuwang@chromium.org>
2024-05-14 00:07:05 +00:00
Arthur Wang
1174aa4fc3 Add build/build_config.h in capture_memory.cc
Change-Id: I486e7bcdb205de5b24846a8e782a6163c2ce8829
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5531439
Commit-Queue: Arthur Wang <wuwang@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-05-10 19:34:20 +00:00
Arthur Wang
9032284170 Pull latest Fuchsia toolchain
Change-Id: Ia328c6defc59fc06fcf69a2875a0eed335c8dd78
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5532142
Commit-Queue: Arthur Wang <wuwang@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-05-10 18:19:20 +00:00
Arthur Wang
981d4189aa Replace std::unique_ptr<T> with HeapArray
Bug: crashpad: 326459659,326458942,326459376,326459390,326459417,326458979,326459333,326459016,326458338,326458738,326459156,326459512,326458694
Change-Id: I04724530cbef50a8d3c18f306d16c0bbf3b0815b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5512394
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Arthur Wang <wuwang@chromium.org>
2024-05-09 22:16:58 +00:00
Justin Cohen
371083179b ios: Use correct address when storing register memory.
The memory region data saved in the intermediate dump is an address
offset by 128 bytes. However, the MemorySnapshot generated was using the
original address and not the offset address.  The same data is being
captured in the minidump.

Change-Id: Ia34912c035319e79cf446a130e662084f4ab51ea
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5529059
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
2024-05-09 18:56:10 +00:00
danakj
8e60a935d9 Roll mini_chromium to remove the pointer-based overload of RandBytes()
R=mark@chromium.org

Bug: 40284755
Change-Id: I2f491cc3f630767e607ea1df7d21791be522b4de
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5518909
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
2024-05-07 18:02:45 +00:00
danakj
5c09c9a701 Include build_config.h before checking COMPILER_MSVC
This is caught by chromium presubmit when rolling crashpad.

R=mark@chromium.org

Change-Id: Ida9ff07e7b2bd27808c092afbc5a1345fa29a4f3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5515300
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
2024-05-06 14:47:42 +00:00
danakj
84c87739e8 Use the span version of RandBytes
Some unique_ptr<T[]> are also changed to HeapArray in order to
facilitate the change.

Bug: chromuim: 40284755
Change-Id: I30b9d55ff81f23c63ad4958786740f67ee612024
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5512569
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
2024-05-06 14:12:00 +00:00
Andrew Williams
bff9873242 Make NTSTATUS_LOG less likely to change ::GetLastError() value
This better ensures that using code like
`NTSTATUS_LOG(ERROR, status) << ::GetLastError()` would print the
intended value. This isn't done today by the code AFAICT, but
making this change primarily for consistency with the change to
Chromium logging in
https://chromium-review.googlesource.com/c/chromium/src/+/5443628

Bug: chromium:333445539
Change-Id: I49f16b9ed78d98a0b2f178f58465002aad757ae5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5474027
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Andrew Williams <awillia@chromium.org>
2024-05-03 23:13:34 +00:00
Andrew Williams
da189353b6 Replace std::is_pod usage
Replacing std::is_pod usage as per the following compilation error:
```
../../util/misc/uuid.cc:44:20: error: 'is_pod<crashpad::UUID>' is deprecated: use 'is_standard_layout && is_trivial' instead [-Werror,-Wdeprecated-declarations]
static_assert(std::is_pod<UUID>::value, "UUID must be POD");
                   ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:818:5: note: 'is_pod<crashpad::UUID>' has been explicitly marked deprecated here
    _GLIBCXX20_DEPRECATED_SUGGEST("is_standard_layout && is_trivial")

```

Bug: None
Change-Id: I1d61ee12261877f7f1f84f0ea15d262d22959766
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5472885
Commit-Queue: Andrew Williams <awillia@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-05-03 21:22:37 +00:00
Alex Gough
dc489055ed Fix incorrect DCHECK in CET contexts
This DCHECK() was not correct. When dumping a process with CET
enabled the cetumsr and cetussp registers are not available in
the context obtained for the exception record. All contexts to be
written to a minidump must have the same context format so those
registers will be present for captured threads. It is therefore ok for
the context to expect extended xsave registers but for them to be
zero in some cases.

Bug: 337665168
Change-Id: If7e5f40fe8eda6799b034991cb87e89437cb4821
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5507588
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Alex Gough <ajgo@chromium.org>
2024-05-02 17:31:03 +00:00
Arthur Wang
76badd4c20 Replace std::unique_ptr<T[]> with HeapArray in process_info.cc and
process_info_test.cc

Bug: crashpad: 326459035,326458915,326459055
Change-Id: Ifb91297b6097aa81a9d5c883b2c284e9fdd512a8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5463361
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Arthur Wang <wuwang@chromium.org>
2024-05-02 15:53:17 +00:00
danakj
7e0af1d4d4 Use byte conversions over the byte swap functions
base/sys_byteorder.h is going away. Instead, use the byte conversions
in base::numerics to convert from a byte array in big endian to an
integer. This avoids putting big endian data into integer types at all.

mini_chromium was rolled and crashpad updated to work with newer
mac/windows toolchains in order to support C++20 in
f9cee5c147db30dc8fa1a048aabd165965b5cb60.

Bug: 40284755
Change-Id: If690847b7aa54b0216e73ec297eae3d0bca2fa57
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5402184
Commit-Queue: danakj <danakj@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-04-11 17:31:35 +00:00
Ben Hamilton
8df174c64c [ios] Fix TSAN issue and Mach port leak in CrashpadClient
There were two issues with the iOS implementation of CrashpadClient
which I reported in https://crbug.com/crashpad/481:

1) TSAN found a data race in ResetForTesting() when it modified the
ScopedMachReceiveRight while the Mach exception port thread was
reading it

2) The Mach port connected to the exception server was never deallocated

This CL fixes both issues.

Change-Id: I5bd4f79ae6d0eccca954d663be7a36f8ceb0a0e8
Bug: https://crbug.com/crashpad/481
Bug: b:332305593
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5410301
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-04-11 17:00:05 +00:00
Justin Cohen
f9cee5c147 Roll mini_chromium to pick up the latest version of base::span.
Also enables C++20 as span now depends on it.

Roll buildtools to grab a newer libc++ that supports C++20.

Explicitly capture `this` in lambdas in cpp-httplib as the implicit
capture through `=` is deprecated and causes an error in C++20.

Update the MacOS version to "Mac-13|Mac-14" which is the current
value of `os.MAC_DEFAULT` in Chromium infra in order to have
C++20 support in the std library on iOS.

Moves iOS tests to run on iPhone 13 and includes a mini_chromium roll
to fix Xcode 14.3 egtests.

Bug: 40284755
Change-Id: Ic078f07d12473f2aaed5e84df0f0a7fb7b8c35c3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5443384
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
2024-04-11 16:00:45 +00:00
danakj
bbb99bfa37 Move crashpad to using Mac-13|Mac-14 (like chromium) and latest win sdk
This should give crashpad a newer xcode and msvc that support C++20.

These changes need to land separately from the C++20 usage, as they do
not get applied until after landing, so can't affect the CQ from inside
the CQ.

Bug: 40284755
Change-Id: I3ae72befa008bfb37bac882de0986c5bcf9de079
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5425460
Commit-Queue: danakj <danakj@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-04-04 19:50:08 +00:00
Justin Cohen
1cea0473a5 ios: Capture signal exception context memory regions correctly.
Previously, Crashpad would only capture iOS thread context memory regions by iterating the task_threads->thread_get_state's. For Mach
exception this worked as intended.  However, for signal exceptions this
missed the registers from the actual signal context. This change
correctly captures these regions and stores them in the exception
snapshot.

Change-Id: I494e753a25c2687e61b5183ed0135f520ca8bf52
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5380505
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-03-21 20:10:05 +00:00
Justin Cohen
ccd20652bc ios: Update exception test for Chromium release builds.
After https://crrev.com/c/5375084, Chromium __libcpp_verbose_abort is
handled differently for official non-dcheck builds. This change fixes
the test expectation for release non-official builds.

Bug: 330168249
Change-Id: Iceb6d327f9e93fd366cc07abe27eefd1adf06472
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5378380
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-03-18 18:21:32 +00:00
André Kempe
6bf5e1b5c5 Fix invalid check for valid key of Pointer Authentication
Arm's Pointer Authentication uses two keys for signing pointers, A-key
and B-key. Although by default Clang uses the A-key if PAC support is
enabled at compile time, this behaviour might be overridden via compiler
command line.

This CL fixes the check for the B-key being enabled. The key that shall
be used for Pointer Authentication is denoted by bits 0 (A-key) or
1 (B-key) of __ARM_FEATURE_PAC_DEFAULT. Hence, the previous way of
checking by using bits 0 and 2 does not correctly identify the B-key.

Bug: 40608466
Change-Id: Ib2f226baa12a7145fa0b6e486e49d36e6b0a3cd7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5341090
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-03-15 14:10:46 +00:00
André Kempe
dea283a7eb Make AnnotationList's iterator compliant to input iterator
This CL make the iterators implemented by AnnotationList compliant to
the requirements imposed by the C++ standard on input iterators.

Change-Id: I263c94a97f5bcd7edd5ef4d8b65fa28b11876974
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5093147
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-03-15 14:08:58 +00:00
Justin Cohen
c4d4a4d83e ios: Disable annotations tests on older simulators on macOS 14.3
There appears to be a change in dyld in macOS 14.3 that iOS 17
accounts for, but older simulators do not. This causes the main
binary to be listed twice when iterating modules, breaking some
tests.

Bug: crbug.com/328282286

Change-Id: I71909fbc13bee6de23b10ffd92a791067f8ea909
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5353754
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-03-08 22:44:08 +00:00
Ian Barkley-Yeung
9c58b668ff Increase kMaxNumberOfAnnotations
Chrome on ChromeOS is starting to run into problems where there are more
than 200 annotations, primarily because we use a lot of command-line
switches (40 or more) and commandline-enabled-features as well, each of
which takes up an annotation. It's still rare (100s a day) but will
probably become worse over time as more CrashKey uses are added.

Increase kMaxNumberOfAnnotations to 400.

BUG=296821415

Change-Id: Iba7049014ee3c5ae9c45c4022600eaba50acd403
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5354336
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Ian Barkley-Yeung <iby@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2024-03-07 22:17:03 +00:00
Peter Boström
bc4fd34fe2 Log argv[0] for failing spawns
This adds argv[0] for PLOG(FATAL) calls following a failed posix_spawn
or execve call to make logs more useful.

Bug: chromium:324982367
Change-Id: I179928ec9f791ce5b365b3444aa3bb667f4ec4b3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5315332
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-02-22 19:28:55 +00:00
Joshua Peraza
37afd37401 Properly update iterator
Bug: 325296797
Change-Id: I39f76519c46804ad663172abf91ef582bde135e7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5310754
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2024-02-21 03:06:39 +00:00
Hzj_jie
29ac83caeb [Fuchsia] remove use of fuchsia mac sdk
Bug: b/325495632
Change-Id: I19df5b44b76efcdb050344e79bcc2dfd18d8e289
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5299466
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-02-15 22:18:40 +00:00
Jesse McKenna
940e8a3445 Fix leaky CrashpadInfo test
CrashpadInfo::AddUserDataMinidumpStream() and
UpdateUserDataMinidumpStream() allocate memory for the newly added
streams. This change makes the CrashpadInfo test free that allocated
memory to prevent memory leaks from these tests.

This is intended to fix the ASAN failures seen on crrev.com/c/5285881:
https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_asan_rel_ng/1839072/overview

Bug: crashpad:474
Change-Id: I6e030291594d22e316942a58805a177ce448053b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5292137
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Jesse McKenna <jessemckenna@google.com>
2024-02-13 18:34:48 +00:00
Sylvain Defresne
5075fb617a Honor ios_is_app_extension chromium build flag
If building for chromium, honor the ios_is_app_extension gn variable
that is set per toolchain. When it is defined, the code is built for
an application extension (i.e. -fapplication-extension is passed to
the compiler).

Use CRASHPAD_IS_IOS_APP_EXTENSION build guard to not compile code
that use unavailable extension when ios_is_app_extension is set. If
the variable is not set, then check at runtime whether the API can
be used or not (if the crashpad client uses the same toolchain for
the main application and its application extensions).

This is required to pass -fapplication-extension to the compiler when
building application extensions (which allow catching API that is not
available to application extensions).

Bug: 40120082
Change-Id: I28d545fcfd0f8662430c40ff202b79b0c2b2ff8b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5286216
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
2024-02-12 15:43:24 +00:00
Jesse McKenna
c576bf35ea Add Update method to CrashpadInfo
This change adds a method to update a CrashpadInfo stream.

As part of this change, AddUserDataMinidumpStream() now returns a handle
to the added stream. This handle can be passed to
UpdateUserDataMinidumpStream() if a new version of the stream needs to
be attached to the crash report.

This method is needed for e.g., allowing Chrome's System Profile to
update, as it contains some data that takes a while to collect.

Bug: crashpad:474
Change-Id: I19e935a6904d8843215582e5606b189479ee338b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5260024
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Jesse McKenna <jessemckenna@google.com>
2024-02-09 21:32:29 +00:00
Justin Cohen
5d81482aea ios: Read dyld modules in reverse order.
The change in macOS 14's dyld to insert new modules in the front of
`dyld_all_image_infos` means that if the any images are loaded
during an exception while iterating the modules list, the primary
executable will be missed. Instead, read the modules in reverse
order.


Change-Id: I49f6468173f18ef4bd0f326c84e4b48cfc696cd3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5249275
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-02-01 22:08:46 +00:00
Mitchell Kember
27b460cc7e [fxbug.dev] Migrate bug numbers
This changes fxbug.dev/ URLs from Monorail bug numbers to the new
Fuchsia Issue Tracker numbers.

The migration to the new issue tracker was announced here:
https://groups.google.com/a/fuchsia.dev/g/announce/c/GOYfJozEqmk/m/qsGsaJ7UAAAJ

Bug: 298074672
Change-Id: I5f4b7a26a3f41bf539fa79d15e1a108ea35a5b29
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5246697
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-02-01 19:39:27 +00:00
danakj
a02e4935bd Avoid assuming string_view iterators are char*
This assumption is non-portable and prevents Chromium from using
bounded iterators in libc++.

Bug: chromium: 1519908
Change-Id: Iafe6639ef3bc896d6fa4fb3ceb7ac0b546363017
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5237292
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: danakj <danakj@chromium.org>
2024-01-26 14:03:07 +00:00
Justin Cohen
22c386d1ac ios: Allow missing exception thread id from thread list.
It's expected that iOS intermediate dumps can be written with
missing information, but it's better to try and report as much as
possible rather than drop the incomplete minidump.

Bug: b/284959148
Change-Id: I04110b576a4ee552814234d559c9ba85db0382f0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4582167
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-01-22 19:57:50 +00:00
Mark Mentovai
305b648e71 doc: Upgrade the crashpad-home App Engine app to the go121 flex runtime
Change-Id: I0a30b816e2550e7df6d7777c6d27e6104fc2f9fa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5206711
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2024-01-17 17:45:43 +00:00
Peter Boström
5183bef5f3 Remove should-be-dead code after PLOG(FATAL)
This will trigger dead-code warnings in chromium once LOG(FATAL) is
understood as [[noreturn]], which needs to be fixed in crashpad first.

Bug: 1409729
Change-Id: I75cb4d93e648ca9804f1299345e52bb3e2834cd9
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5193351
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-01-12 21:41:10 +00:00
Justin Cohen
30b2f4ba38 ios: Add crashpad_uptime_ns crash key to iOS reports.
This CL introduces a new crash key 'crashpad_uptime_ns' that records the
number of nanoseconds between when Crashpad was initialized and when a
snapshot is generated.

Crashpad minidumps record the MDRawMiscInfo process_create_time using a
sysctl(KERN_PROC).kp_proc.p_starttime. This time is used to display the
'uptime' of a process.  However, iOS 15 and later has a feature that
'prewarms' the app to reduce the amount of time the user waits before
the app is usable. This mean crashes that may happen immediately on
startup would appear to happen minutes or hours after process creation
time.

While initial implementations of prewarming would include some parts of
main, since iOS16 prewarming is complete before main, and therefore
before Crashpad is typically initialized.

Bug: crashpad:472
Change-Id: Iff960e37ae40121bd5927d319a2767d1cafce846
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5171091
Reviewed-by: Ben Hamilton <benhamilton@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2024-01-11 16:42:54 +00:00
Peter Boström
98d0d86e76 Add [[noreturn]] version of NtstatusLogMessage
This will be used by base/logging.h in chromium to make sure that
LOG(FATAL) variants never return and are properly understood as
[[noreturn]] by the compiler.

Once that's landed in chromium it'll be up/downstreamed into
mini_chromium as well.

Bug: chromium:1409729
Change-Id: I75340643fe075475f997bbc45250fa10df63c9fa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5185996
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-01-11 16:15:20 +00:00
Peter Boström
d256de3171 Roll crashpad/third_party/mini_chromium/mini_chromium/ c7fccaa8e..203a01130 (1 commit)
c7fccaa8ec..203a01130f

$ git log c7fccaa8e..203a01130 --date=short --no-merges --format='%ad %ae %s'
2024-01-10 pbos Fix base::ImmediateCrash() IWYU

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

Bug: chromium:1409729
Change-Id: Ic9fee112a48b66c92b8446270280d5f2a3d0ef59
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5187485
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-01-10 23:38:24 +00:00
Peter Boström
4426ed9991 Roll crashpad/third_party/mini_chromium/mini_chromium/ 1e64ecb51..c7fccaa8e (1 commit)
1e64ecb51e..c7fccaa8ec

$ git log 1e64ecb51..c7fccaa8e --date=short --no-merges --format='%ad %ae %s'
2024-01-10 pbos Implement base::ImmediateCrash()

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

Bug: chromium:1409729
Change-Id: Iaa4f4d81027cb0ddafe85bab8d186949eb7f852e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5186004
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Boström <pbos@chromium.org>
2024-01-10 22:37:43 +00:00
Peter Boström
65f2a2bcfe Roll crashpad/third_party/mini_chromium/mini_chromium/ cc2ae8eb0..1e64ecb51 (1 commit)
cc2ae8eb01..1e64ecb51e

$ git log cc2ae8eb0..1e64ecb51 --date=short --no-merges --format='%ad %ae %s'
2024-01-10 pbos Make ~LogMessage virtual

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

Bug: chromium:1409729
Change-Id: Ib0011b85c35c781ea35e0d399cccb81b54916ca4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5186000
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-01-10 19:31:40 +00:00
Peter Boström
bbb721fd5b Roll crashpad/third_party/mini_chromium/mini_chromium/ ac3e73239..cc2ae8eb0 (1 commit)
ac3e732395..cc2ae8eb01

$ git log ac3e73239..cc2ae8eb0 --date=short --no-merges --format='%ad %ae %s'
2024-01-10 pbos Add Flush() method to LogMessage

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

Bug: chromium:1409729
Change-Id: I59b4c9fc9701f3a504b89f396de9da49b333712f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5185844
Commit-Queue: Peter Boström <pbos@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2024-01-10 18:37:45 +00:00
David Fang
2905784a7d [build] Re-enable action tracing
Avoid unconditionally running mig in incremental builds,
and causing un-necessary re-build of downstream targets.

Bug: b/42147841
Bug: b/42084680
Change-Id: I961189870aec8f0b1a1ced22105730218664e109
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5171755
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: David Fang <fangism@google.com>
2024-01-06 04:24:21 +00:00
Ben Hamilton
3a20cc2447 [ios] Add arm64e support to in_process_intermediate_dump_handler
Change-Id: Ifc373d313db71872cc0fd7706da2bdc07cf4ba1b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5126940
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Ben Hamilton <benhamilton@google.com>
2023-12-18 18:34:11 +00:00
Avi Drissman
9f896f2581 Qualify bit_cast with base::
The real Chromium base/bit_cast.h is in the base namespace.
mini_chromium's version was just changed to be in the base namespace
as well. Roll to the latest mini_chromium and scope all calls to
bit_cast.

Bug: chromium:1506769
Change-Id: I7b25ee512f67694ef6ed3d0250e4f6a6db151eb3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5116880
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
2023-12-12 22:52:47 +00:00
Ben Hamilton
337b4f7971 [mac] mach_absolute_time() -> clock_gettime_nsec_np(CLOCK_UPTIME_RAW)
https://developer.apple.com/documentation/kernel/1462446-mach_absolute_time

> Prefer to use the equivalent clock_gettime_nsec_np(CLOCK_UPTIME_RAW) in nanoseconds.

The two are equivalent:

c5a3293354/gen/clock_gettime.c (L118)

Change-Id: I1c7a08d821d1840b74fc5eaa0e9ceca2ade5bbfc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5085307
Commit-Queue: Ben Hamilton <benhamilton@google.com>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-12-12 18:08:21 +00:00
Avi Drissman
7049d966b5 Fix improper use of bit_cast
bit_cast should never be used on pointers, as it doesn't avoid UB and
can lose qualifiers.

Fortunately, the only use of bit_cast on a pointer was to cast
nullptr into a function pointer, and because nullptr will implicitly
behave as any kind of pointer, that cast isn't needed.

Bug: none
Change-Id: I3ad79b36b7fb5ab53d4b4b6dfc82dea883ec8b53
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5106728
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
2023-12-08 22:15:17 +00:00
Daniel Cheng
5fc60aeb3b Use googletest flag macros to access googletest flags.
The implementation details of flags can change; fixing this proactively
makes it easier to roll googletest in chromium.

Bug: chromium:1409870
Change-Id: Ib27a922a5b3147386a36f98b42e60950e2215190
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5081703
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2023-12-04 16:10:52 +00:00
Lei Zhang
5613499bbd Replace base::WStringPiece with std::string_view
Bug: chromium:691162
Change-Id: I2d34bcfd3b97d59d1811183d62b893b875b08bb4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5010942
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
2023-11-07 21:04:05 +00:00
Peter Kasting
573918571f Roll crashpad/third_party/mini_chromium/mini_chromium/ e508a6010..450b10118 (1 commit)
e508a6010e..450b101187

$ git log e508a6010..450b10118 --date=short --no-merges --format='%ad %ae %s'
2023-11-06 pkasting Rename WCHAR_T_IS_UTF* to WCHAR_T_IS_*BIT

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

Change-Id: Id39911a5dbd1275199400848428ab024bb62cf2a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5008818
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
2023-11-07 03:23:08 +00:00
Lei Zhang
1675ce7c58 Add missing base/check.h includes
Do not rely on base/logging.h to provide it.

Change-Id: I8b7d733bcf66abe9b46eabd3703b7ed549d02db7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5007844
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-11-06 22:00:17 +00:00
Justin Cohen
3ba2403a73 ios: Fix leak in iOS NSException preprocessor.
Call __cxa_free_exception after __cxa_allocate_exception usage.

Change-Id: I0cd5043b945652e6ac28c3bf79486c071d3aa09e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4990028
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-31 17:06:02 +00:00
André Kempe
c39206f699 Provide a way to iterate over a const AnnotationList
This CL implements a const iterator to allow for iteration over a const
AnnotationList. This way, the annotation list can passed as a const
reference in search only situations.

Change-Id: I53bd7871f3d914e7e7e627b6b464aa7fa79597f4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4984053
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Andre Kempe <andre.kempe@arm.com>
2023-10-31 08:24:31 +00:00
David Benjamin
c5e2b0313c Fix UB when saving an StringAnnotation
memcpy and memchr on NULL, 0 is UB due to a C language bug. Instead, use
the C++ functions, which do not have this bug.

Bug: chromium:1394755
Change-Id: I82023aa038c53905f9867c635b26f3b26d9994f5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4987148
Commit-Queue: David Benjamin <davidben@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2023-10-30 19:33:13 +00:00
David Benjamin
41f6ad560f Fix crashpad tests under UBSan
These are slightly frustrating. First, when a struct is packed, some of
its fields may be underaligned. This is fine for direct access
(foo.bar), but if one takes the address if the field, this creates an
unaligned pointer. Dereferencing that pointer is then UB. (I'm not sure
if creating that pointer is UB.)

Crashpad seemingly doesn't do this, but it uses EXPECT_EQ from GTest.
EXPECT_EQ seems to internally take pointers to its arguments. I'm
guessing it binds them by const reference. This then trips UBSan. To
avoid this, we can copy the value into a temporary before passing to
EXPECT_EQ.

Second, the test to divide by 0 to trigger SIGFPE is undefined behavior.
The compiler is not actually obligated to trip SIGFPE. UBSan prints one
of its errors instead. Instead, since this file is only built on POSIX
anyway, use GCC inline assembly to do the division. That one is
well-defined.

Finally, casting a string to uint32_t* is undefined both by alignment
and by strict aliasing (although Chromium doesn't enable the latter).
Instead, type-punning should be done with memcpy.

Bug: chromium:1394755
Change-Id: I79108773a04ac26f5189e7b88a0acbf62eb4401d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4985905
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
2023-10-30 19:31:22 +00:00
Avi Drissman
4a93d7f4c4 Revert "Add an option to start a Windows client with global hooks disabled."
This reverts commit e17518a9e879f63b578db6c184c6bb17f1b13a06.

Reason for revert:

When trying to roll Crashpad into Chromium, all the new tests in
this CL fail; https://crrev.com/c/4984643?checksRunsSelected=win-rel&tab=checks

Original change's description:
> Add an option to start a Windows client with global hooks disabled.
>
> Change-Id: I645d6136788ca4ccebfc73005c8c2455dc4b2cee
> Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4949671
> Reviewed-by: Mark Mentovai <mark@chromium.org>
> Commit-Queue: Rich Mckeever <mckeever@google.com>

Change-Id: I3a41238cf0960899fac19d1e6d0ed0e527dfe13f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4985124
Reviewed-by: Mark Mentovai <mark@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Avi Drissman <avi@chromium.org>
2023-10-27 20:45:09 +00:00
Avi Drissman
188ad79298 Roll crashpad/third_party/mini_chromium/mini_chromium/ 707c87bd2..98bbdbe49 (1 commit) + changes
707c87bd25..98bbdbe49f

$ git log 707c87bd2..98bbdbe49 --date=short --no-merges --format='%ad %ae %s'
2023-10-27 avi Update ScopedTypeRef

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

---

In addition, change implicit unwrapping of ScopedCFTypeRef to be
explicit.

Bug: chromium:1495438, chromium:1495439
Change-Id: I47dd12f94f71caaad74cf23be9da9d03a59772db
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4984741
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-27 16:15:49 +00:00
Eric Astor
59fc31ce00 Update mini_chromium & use its new support for wide streaming in file_path
Fixes a pending issue when we eventually move to C++20.

Original author: Dean Sturtevant

Change-Id: I7bb0648c73df6b6a28a3a4debdb4524d3cd27b38
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4979733
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Eric Astor <epastor@google.com>
2023-10-26 22:15:17 +00:00
Rich Mckeever
e17518a9e8 Add an option to start a Windows client with global hooks disabled.
Change-Id: I645d6136788ca4ccebfc73005c8c2455dc4b2cee
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4949671
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rich Mckeever <mckeever@google.com>
2023-10-26 19:40:30 +00:00
Peter Kasting
376e8c0e69 Eliminate call to StringPrintf() with non-constexpr format string.
Bug: 1371963
Change-Id: Ic3cc2010e48c399de8d19b94c3b515b53e2d18a3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4953795
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-19 00:33:53 +00:00
Peter Kasting
b6d3cdcc4d Roll crashpad/third_party/mini_chromium/mini_chromium/ 42f1fddfe..bc8dca83b (3 commits)
42f1fddfec..bc8dca83bd

$ git log 42f1fddfe..bc8dca83b --date=short --no-merges --format='%ad %ae %s'
2023-10-18 pkasting Add iter_reference_t to template_util.h.
2023-10-18 thestig Remove check_op.h from base/logging.h
2023-10-17 pkasting Add base::StrCat().

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

Bug: 1371963
Change-Id: I19a74661930c733814403c9813fe544fe0540b1f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4953853
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
2023-10-19 00:33:28 +00:00
Lei Zhang
c63c073d27 Do IWYU for check_op.h
Include check_op.h directly, instead of relying on the transitive
include from logging.h. This transitive include does not exist in
Chromium's //base.

Change-Id: I15962a9cdc26ac206032157b8d2659cf263ad695
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4950200
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
2023-10-18 20:01:37 +00:00
Peter Kasting
ce4e3d6ee0 Roll crashpad/third_party/mini_chromium/mini_chromium/ 276f2ac53..42f1fddfe (1 commit)
276f2ac531..42f1fddfec

$ git log 276f2ac53..42f1fddfe --date=short --no-merges --format='%ad %ae %s'
2023-10-16 pkasting Use POSIX format specifiers on Windows.

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

Bug: 1371963
Change-Id: I7210b416b5e498b9888d1c942084c07ef177b667
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4944315
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-17 01:24:23 +00:00
Peter Kasting
aef75040fd Use format macros for int64_t instead of hardcoding the format.
Bug: 1371963
Change-Id: I7fa4557472684cdd2b8e0cc977230941f26f1eaa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4943901
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Peter Kasting <pkasting@chromium.org>
2023-10-16 23:52:56 +00:00
Sylvain Defresne
7c89d500cd [ios] Remove ios_use_shared_bundle_id_for_test_apps gn variable
The variable was to true in https://crrev.com/c/3308823 and is
never overridden. Remove it as it simplify the logic of the
test targets (and remove code duplication).

  This is a followup to https://crrev.com/c/4935576 which make
  the corresponding change in the Chromium repository.

Bug: 1250788
Change-Id: Ide05fa3bf4177b5761ef0ad5c6edf9baf181b28c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4943570
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2023-10-16 16:04:01 +00:00
Leonard Grey
63ec9482cf Windows: don't compile HandleHeapCorruption on ASAN
f145b54e8378c8e2bd1fbb427684ca9b4c54ea9c put the only reference to this
in a non-ASAN block, so we're hitting an unused function warning rolling
into Chromium

Bug: crashpad:464
Change-Id: I225debd48a255aa5214e02a6821dcd72c618f141
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4939552
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
2023-10-16 15:10:06 +00:00
Leonard Grey
2f6cffa676 Mac: don't consider module order in process reader tests
This is a follow-up to 0fc1b6ae780e7ba854652bd5581f936abf824a5e.

The change in macOS 14's dyld to insert new modules in the front of
`dyld_all_image_infos` means that if any images are loaded after the
executable and its direct dependencies, it's no longer possible to
rotate the list to match the order used by the `dyld_get_image...`
APIs.

This forces us to dispense with checking the order at all except to
ensure that the executable is first, and dyld itself is last.

Additionally fixes an unreachable return introduced in
0fc1b6ae780e7ba854652bd5581f936abf824a5e.

Bug: chromium:1452203
Change-Id: If0b09b9110d8f60d29cca79ea6a59050b0293c5e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4935952
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-13 17:23:26 +00:00
Rich Mckeever
f145b54e83 Stop registering Windows VEH in ASAN builds.
ASAN injects a bad de-reference in HandleHeapCorruption() that causes it to be recursively invoked.

Bug: crashpad:464
Change-Id: I5e8db5555462166b963e0e43c6eb8ac0b327219e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4935953
Reviewed-by: Alex Gough <ajgo@chromium.org>
Commit-Queue: Rich Mckeever <mckeever@google.com>
2023-10-13 14:39:58 +00:00
Leonard Grey
0fc1b6ae78 Mac: update ProcessReaderMac and tests for macOS 14
dyld in macOS 14 has two changes that impact how we read in modules:
- Timestamp is always empty
- The executable appears *last* rather than first in the
dyld_all_image_infos array (see comment for details)

This change:
- Removes all timestamp checks in the tests
- Removes 10.6 era code that worked around a different "executable in
the wrong place" issue. Replaces this with a new branch that checks
if the executable is in the last position, and rotates it to the
front if so. This is necessary instead of just swapping (as in the 10.6
code)  so that it can match the order returned by the `dyld_get_image...` family.

Bug: chromium:1452203
Change-Id: Iac9b29a0d9b9461b0ef386c9541661171ef9fd11
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4917145
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-09 15:32:57 +00:00
Thomas Gales
a1b467ab45 Pull latest toolchain
The previous CIPD location was stale and the packages there are no
longer updated. Compiling for Fuchsia using the latest toolchain
revealed that zlib needed to be updated as well to resolve errors
thrown by -Wstrict-prototypes.

Newer versions of zlib fail to compile for Fuchsia without the addition
of -Wno-sign-compare, recommended for this situation by the Fuchsia
toolchain team.

Bug: fuchsia:128938
Bug: fuchsia:128939

Change-Id: Iccf6dcb1aef1e1811f458fd18a2f04e7b044a918
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4893089
Commit-Queue: Thomas Gales <tgales@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-10-06 21:22:25 +00:00
Justin Cohen
b90db3e47f ios: Fix Chromium bundle id for xcuitest.
This is needed in Chromium for enabling iOS PartitionAlloc

Rolls mini_chromium to support overriding the BundleIdentifier.

Bug: 1489308
Change-Id: I314958182f35edba3300e545b2877d288b43ccb9
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4911575
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2023-10-04 19:29:39 +00:00
Rupert Ben Wiser
485cfaf26e Update chromium_mini dependency
We had an issue that was causing breackages with Fuchsia builders. We
needed to copy over additional code to mini_chromium. Making sure this
relies on the improved version as well.

Bug: 1484644
Change-Id: I0250a44cb29c758d7865cc6222d32a69048c9157
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4905890
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2023-09-29 20:40:12 +00:00
Rupert Ben Wiser
7f6d9e9c7f Add support for matching with key allowlist
WebView makes use of this allowlist. We are hoping to
include switches and features in our crash keys as users
can enable these with an easily available developer UI.

These crash keys follow a pattern of "switch-<index>" so
it is impractical to indefinitely add a larger list of switch
keys. Adding this matcher lets us rather add "switch-*".

Bug: 1484644
Change-Id: I667cef70cce1efb0710b4a2f009d8d80a1eeae5a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4894239
Commit-Queue: Rupert Wiser <bewise@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2023-09-29 16:53:15 +00:00