1970 Commits

Author SHA1 Message Date
Mark Mentovai
ca83774eea mac-arm64: Make MacModelAndBoard use target-type instead of board-id
Bug: crashpad:345
Test: crashpad_util_test MacUtil.MacModelAndBoard
Change-Id: I3eff29c2fc6ae646808cc9dbde8d0dbefd810962
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386465
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-09-04 03:43:25 +00:00
Mark Mentovai
abfc89bb9b mac-arm64: Set expectations for tests that crash via __builtin_trap
__builtin_trap uses ud2 on x86_64, producing a SIGILL. On arm64, it uses
brk #1, producing a SIGTRAP. Test expectations must be adjusted
accordingly.

Bug: crashpad:345
Test: crashpad_snapshot_test MachOImageAnnotationsReader.CrashModuleInitialization, crashpad_util_test ExcServerVariants.*,ExceptionPorts.*
Change-Id: I22e75b7b48b8887031b1d95f1cea8a09733daf49
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386464
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-09-04 03:41:05 +00:00
Mark Mentovai
e0d8a0aa01 mac-arm64: Cope with signal handling quirks
On x86_64, it’s impossible for a signal handler distinguish between
SIGBUS caused synchronously by a hardware fault and SIGBUS raised
asynchronously by software. This remains true on arm64, and is expanded
to include both SIGILL and SIGSEGV.

Bug: crashpad:345
Test: crashpad_util_test Signals.Raise_HandlerReraisesTo*
Change-Id: I181ea35121048dc0c666e2346340e698220ca650
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386463
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-09-04 03:21:35 +00:00
Mark Mentovai
5412beb633 mac: Replace MacOSXMinorVersion with MacOSVersionNumber
MacOSXMinorVersion reported just the “y” value for an OS version 10.y.z.
This is no longer sufficient to identify OS versions accurately in macOS
11. A new MacOSVersionNumber function reports the full OS version as
“xxyyzz” for an OS version x.y.z. This is the same format used by
<Availability.h> __MAC_* macros since 10.10.

MacOSXVersion is also renamed to MacOSVersionComponents for
disambiguation and proper modern nomenclature.

Bug: crashpad:347
Test: crashpad_snapshot_test SystemSnapshotMacTest.OSVersion, crashpad_util_test MacUtil.MacOSVersionNumber
Change-Id: I66421954f021c0627095474cb26359970fcd9101
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386386
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-09-04 02:53:35 +00:00
Sean McAllister
3965bc7d78 Refactor OS_LINUX usage for coming LaCrOs update.
We're working to decouple ChromeOS and Linux builds of Chrome.

Currently OS_CHROMEOS sets OS_LINUX, so we need to refactor
current OS_LINUX usage to make this explicit.

More information can be found at go/cros_is_linux_os_linux

BUG=chromium:1110266
TEST=manual build

Change-Id: Ie765da1ab6a0bf0286538ae1df3697abaa29aeaa
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2391116
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-09-03 19:12:04 +00:00
Shai Barack
c4acae9f96 fuchsia: fix configs clobbering in GN template
Bug: fuchsia:56258
Change-Id: Ie4412ced77b2376ab22e8a72db2bccd93f462d49
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386639
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-09-01 17:16:08 +00:00
Mark Mentovai
df3bc64246 mac: Be more positive
4ae896bad0af replaced OS_MACOSX with OS_APPLE and introduced OS_MAC,
disentangled from OS_IOS. This allows !defined(OS_IOS) to be written
more directly as defined(OS_MAC) in cases where OS_APPLE is assured.

Change-Id: I8848503d3318038865dd4c8586a81ce82764af0a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2384318
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-31 21:16:59 +00:00
Mark Mentovai
b3d84e0d05 mac: System libraries are no longer found on disk on macOS 11
On macOS 11, system libraries are no longer present on disk as
individual Mach-O files, but are shipped exclusively in the dyld shared
cache. This affects tests that verify the list of modules loaded into a
process. The new _dyld_shared_cache_contains_path function can be used
to determine whether a path exists in the dyld shared cache.

Bug: crashpad:347
Test: crashpad_snapshot_test ProcessReaderMac.{Self,Child}Modules
Change-Id: I19402e45701caeb850bdafd701ccbba4ef9c60bc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2384322
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-08-31 21:15:49 +00:00
Mark Mentovai
56937e1df5 mac: 11.0 SDK support
This updates the process_types version of dyld_all_image_infos for macOS
11.0.

Test: crashpad_snapshot_test ProcessTypes.DyldImagesSelf
Bug: crashpad:347
Change-Id: Ieb134f17015070a11c918b26ece316f77a4cc263
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2384317
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-08-31 21:14:59 +00:00
Mark Mentovai
bdf9471324 mac: Switch from <AvailabilityMacros.h> to <Availability.h>
The macOS 11.0 SDK, as of Xcode 12b6 12A8189n, has not updated
<AvailabilityMacros.h> with a MAC_OS_X_VERSION_11_0 or
MAC_OS_X_VERSION_10_16 constant. However, the <Availability.h> interface
has been updated to provide both __MAC_11_0 and __MAC_10_16.
<AvailabilityMacros.h>’s MAC_OS_X_VERSION_MAX_ALLOWED, which is supposed
to identify the SDK version, is broken in the 11.0 SDK in that whenever
the deployment target is set to 10.15 or earlier, the SDK will be
mis-identified through this interface as 10.15. When using the
<Availability.h> equivalent, __MAC_OS_X_VERSION_MAX_ALLOWED, the 11.0
SDK is identified as 10.16 (arguably it should be internally versioned
as 11.0, but at least this interface allows it to be detected
unambiguously.) It’s clear that the <AvailabilityMacros.h> interface
provides no meaningful support for the macOS 11.0 SDK at all, but
<Availability.h> does.

<Availability.h> was introduced in the Mac OS X 10.5 SDK, so there is no
relevant SDK version compatibility problem with this interface.

Key differences between these interfaces for the purposes used by
Crashpad:
 - <AvailabilityMacros.h> → <Availability.h>
 - MAC_OS_X_VERSION_MIN_REQUIRED (DT) → __MAC_OS_X_VERSION_MIN_REQUIRED
 - MAC_OS_X_VERSION_MAX_ALLOWED (SDK) → __MAC_OS_X_VERSION_MAX_ALLOWED
 - MAC_OS_X_VERSION_x_y → __MAC_x_y
 - <Availability.h> __MAC_OS_X_VERSION_* SDK/DT macros are only
   available when targeting macOS, while <AvailabilityMacros.h>
   MAC_OS_X_VERSION_* SDK/DT macros are available on all Apple platforms,
   which may be a source of confusion. (<Availability.h> __MAC_* macros
   do remain available on all Apple platforms.)

This change was made mostly mechanically by:

sed -i '' -Ee 's/<AvailabilityMacros.h>/<Availability.h>/g' \
    $(git grep -E -l '<AvailabilityMacros.h>' |
          grep -v AvailabilityMacros.h)

sed -i '' -Ee 's/(MAC_OS_X_VERSION_(MIN_REQUIRED|MAX_ALLOWED))/__\1/g' \
    $(git grep -E -l 'MAC_OS_X_VERSION_(MIN_REQUIRED|MAX_ALLOWED)' |
          grep -v AvailabilityMacros.h)

sed -i '' -Ee 's/(MAC_OS_X_VERSION_(10_[0-9]+))/__MAC_\2/g' \
    $(git grep -E -l 'MAC_OS_X_VERSION_(10_[0-9]+)' |
          grep -v AvailabilityMacros.h)

Bug: crashpad:347
Change-Id: Ibdcd7a6215a82f7060b7b67d98691f88454085fc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2382421
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-31 21:11:29 +00:00
Shai Barack
364fdd65a0 fuchsia: Fix Wconversion on Mac/iOS builds (take two)
Followup to:
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2373376

This time tested the changed code path.
Sorry for the sloppy changes. Thank you for your patience.

Bug: fuchsia:56258
Change-Id: I1dc0e37600be3879e76ae4fe17806504b34c75fc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2381081
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-08-28 17:26:09 +00:00
Shai Barack
dc9f3a58aa fuchsia: Fix Wconversion on Mac/iOS builds
Followup to:
https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2345384

Bug: fuchsia:56258
Change-Id: Iec749d385f5d7546d020c0037581515f28df0fe9
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2373376
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-27 17:31:57 +00:00
Justin Cohen
71695216f9 ios: Fix Xcode project buildgen.
Change-Id: Ib9701a2c7c7ebc55ba69e1e6fa9cde59d3e4c557
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2378400
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-27 15:59:07 +00:00
Shai Barack
59e8120e7a [Wconversion] Suppress warnings on Fuchsia
Bug: fuchsia:56258

Change-Id: I6bdc0b81a0294040e4dceb18576ab38c45a430e4
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2345384
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-08-25 00:09:48 +00:00
Mark Mentovai
45ca490687 Build with -Wvla, forbidding stack-allocated variable-length arrays
Update mini_chromium to f3cfec80ca521881c97629adf6fcdf21158d635d

4b41c7657578 Add DISABLE_CFI_ICALL and NO_SANITIZE macros
f3cfec80ca52 Build with -Wvla, forbidding stack-allocated variable-
             length arrays

Change-Id: Ic6342ac9fee49061f9086ffb79a061b104168eef
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363827
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 22:28:49 +00:00
Mark Mentovai
1509aadd63 Remove a variable-length array to enable compiling with -Wvla
Change-Id: I721f1dccc7e1188631a57f435c5c097ff83853b8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363768
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 21:18:39 +00:00
Mark Mentovai
ebab28f30d Remove a variable-length array* to enable compiling with -Wvla
* that hopefully never actually materialized

Change-Id: Ic8625c0edf773a2dd5f0c40b7f293ec5492ce101
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2363147
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-08-18 15:16:47 +00:00
Scott Graham
b472408135 fuchsia: Remove run_tests.py functionality
This removes the rotted functionality for running tests on Fuchsia. It
had previously been broken by other platform changes. Other tools are
from previous SDKs being removed too; this approach is no longer going
to work.

The preferred way is to connect via SSH to the device, however, that
requires using the femu.sh from the SDK, which in turn requires `sudo`
to create a network device, so it won't directly work on bots anyway.

I started trying to update the to use femu.sh, fserve.sh, & fpublish.sh,
but that requires building a .far, which uses GN templates which
differ from the in-tree versions, and don't seem (?) to support
packaging resources into the package.

So, for now because it was confusing people (see linked bug) give up and
delete the code for the time being.

Bug: fuchsia:54031
Change-Id: Iac7af80094b150d11e71474cba4bd93eb8e80639
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2354160
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-13 23:21:50 +00:00
Joshua Peraza
7547d0aa87 android: Remove orderfile configs from handler trampoline
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/1505951

Change-Id: Id78d20308cfcbfba9b0f6535a8c69e9cbbf219e1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2354278
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-08-13 20:56:30 +00:00
Joshua Peraza
0cccdc0b7e Replace is_linux with is_linux || is_chromeos
Upstreams https://chromium-review.googlesource.com/c/chromium/src/+/2326293

Change-Id: I74379d1fbb8f9ec94e3e7eb969af0c8c492c9c07
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2342044
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-08-06 22:39:56 +00:00
Joshua Peraza
2f66eefb79 Update language to eliminate 'whitelist'
Change-Id: I6afe27313093c6867d0276274e6b17b195d9d263
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2339536
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-06 21:03:16 +00:00
Joshua Peraza
94b7e45210 fix OS guards for attachments
Change-Id: I10fdaf15ea4ba5906eeb81234508e987c29985ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2333082
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-08-03 21:05:48 +00:00
Mark Mentovai
9cd1a4dadb doc: Upgrade the crashpad-home App Engine app to the Go 1.11 runtime
App Engine’s Go 1.9 runtime is no longer functional. See
https://cloud.google.com/appengine/docs/deprecations and
https://cloud.google.com/appengine/docs/standard/go111/go-differences.

Note that this doesn’t migrate away from the App Engine SDK per
https://cloud.google.com/appengine/docs/standard/go111/go-differences#migrating-appengine-sdk,
as this service does use App Engine APIs. Newer Go runtimes are
available, currently including 1.12, 1.13, and a beta version of 1.14,
but 1.12 and newer do not support App Engine APIs per
https://cloud.google.com/appengine/docs/standard/go112/go-differences,
so this upgrade targets the Go 1.11 runtime.

Change-Id: Ia9c28cfb1abe5f226ae8c07de90cd2e9b6e19a48
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2328805
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-31 03:06:41 +00:00
Avi Drissman
4ae896bad0 Migrate to OS_MAC and OS_APPLE in Crashpad
This migrates:

 defined(OS_MACOSX) -> defined(OS_APPLE)
 defined(OS_MACOSX) && !defined(OS_IOS) -> defined(OS_MAC)
 !defined(OS_MACOSX) || defined(OS_IOS) -> !defined(OS_MAC)

Bug: chromium:1105907
Change-Id: I1b4abc19bbbe8df90e9c6e64cd29324b40b8ab71
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2321777
Commit-Queue: Avi Drissman <avi@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-28 02:35:48 +00:00
Joshua Peraza
e89ba0d1d6 linux: fix timer test
Semaphore is implemented with a mutex and condition variable.
When a semaphore is used in TimerTest, Run() acquires a lock
to guard its CV but may be interrupted by the signal handler
before releasing the lock which results in a hang when
Signal(), called from the signal handler, also needs to
acquire the lock.

Bug: chromium:1050178
Change-Id: I0d7ef65bd159ee2de9258ba24537f9470f4c621d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2318554
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-27 20:48:49 +00:00
Joshua Peraza
ad3ad354d3 android: fix executable name test
Bug: chromium:1050178
Change-Id: I04ba3e4c4b3d2c707a9967b792a2e8d85e62adef
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2317841
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-27 16:51:25 +00:00
Tamir Duberstein
f9549d1ffe [fuchsia] Avoid underscores in package names
Bug: fuchsia:22679
Change-Id: I11de95cd91b23bd496d17246a448bcf1995a2814
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315004
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-23 17:08:02 +00:00
Tamir Duberstein
13fd1561dc [fuchsia] Mark tests group testonly
Bug: fuchsia:22679
Change-Id: Ief6171ef8b00997edfc36e6fb6214c582a1b3f11
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315007
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-23 02:15:11 +00:00
Tamir Duberstein
1a64e1cdc6 [fuchsia] Add tests group
We'll indirect through this group while we rename crashpad{_,-}tests.

Bug: fuchsia:22679
Change-Id: Ic4ca73ecbd6d3e2776a7b7ee8bbbd5012459be52
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315003
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
Commit-Queue: Tamir Duberstein <tamird@google.com>
2020-07-22 23:46:12 +00:00
Tamir Duberstein
6c96d8fb78 fuchsia: Move crashpad_tests to injected-services
Isolation=good.

Change-Id: Ide383f52548bbfb5bef2703787cb7bab411fb8bf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2315002
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-22 23:33:31 +00:00
Mark Mentovai
5d1c71c83e Update buildtools to 9e121212d42b and mini_chromium to 85e41f6b6cb5
Update buildtools to 9e121212d42be62a7cce38072f925f8398d11e49

6b2a302b65ba Roll GN from 7d7e8dee..cd3869be
6b951673d176 Roll GN from cd3869be..b6203d18
00f6f7c80e3c Update chromium's DEPS-file presubmits with new 'Str' type
eb3987ec709b Roll GN from b6203d18..d585128c
9e121212d42b Roll GN from d585128c..3028c6a4

Update mini_chromium to 85e41f6b6cb5dd31521c4a06b15c25d3345a6194

85e41f6b6cb5 apple: Use `frameworks` instead of `libs` in GN targets

Change-Id: I1fd5cc4d48bdcc2ec762c6edf570fa8c7e55dc88
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2311421
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-22 05:00:20 +00:00
Joshua Peraza
b71bde32e7 linux: fix tests with msan
Change-Id: Ie8fdeeb5b783e28cba2ae73345ddcff1405ccdf5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2309228
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-21 16:55:49 +00:00
Joshua Peraza
070b18d326 linux: fix alt-stack tests with asan
Disable the stack-overrun test since ASAN will detect the
stack corruption and kill the process.

Also allocate extra alt-stack space when ASAN is enabled.

Change-Id: Id8711d2aaa31c90c78b7feceec2877c18dc9be00
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2303591
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-20 20:50:06 +00:00
Joshua Peraza
9f66d569fb linux: put test attachment in temp directory
This prevents errors creating the attachment if a previous test
failed to delete it for some reason.

Change-Id: I2622d86e08987ad3ff201da84dc9ae210acf776d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2302722
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-07-16 20:54:31 +00:00
Joshua Peraza
06a688ddc1 linux: setup a signal stack
Bug: crashpad:340
Change-Id: I035d988bc8e76dbf80c07f0c92b07dbefeba8bd1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2209768
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-15 19:00:09 +00:00
Scott Graham
ef8a063055 Fuchsia: Propagate failure to initialize exception snapshot
If the process' threads can't be read, then the cpu context object won't
be able to be initialized.

Previously, the process snapshot always assumed that the context would
be filled out, as there was no error returned, which could result in
later checks failing.

Return an error from the exception snapshot's initialization so that
process snapshot can correctly handle failure to initialize.

Bug: fuchsia:55837
Change-Id: Ia3fecef1230a19dfa23401b0339c6a94370c6baf
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2296039
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-13 19:53:06 +00:00
Mark Mentovai
fd001f792e build: Make crashpad_dependencies="external" work in the GN build
…for macOS, at least.

Change-Id: Iba45328d957de17198180d171677a45468c9adc2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2290842
Reviewed-by: Eric Astor <epastor@google.com>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-11 03:33:33 +00:00
Suraj Malhotra
e3c94b87f0 [fuchsia] Move //zircon/system/ulib/fdio to //sdk/lib/fdio
Bug: fuchsia:54057
Change-Id: I58e2bbf7f3a1674d5b34d4bc502b85cee0bea347
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2253148
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-07-10 18:43:55 +00:00
Mark Mentovai
498c36b82a mac arm64: Provide something more useful from SystemSnapshot::CPURevison
hw.cputype is just CPU_TYPE_ARM64, which isn’t terribly useful.
hw.cpufamily is somewhat better as it uses <mach/machine.h> CPUFAMILY_*
values, which distinguish between different CPU generations.
CPUFAMILY_ARM_VORTEX_TEMPEST identifies A12, for example. (The fun cores
are Vortex and the boring cores are Tempest.)

Bug: crashpad:345
Change-Id: I88be4fa0b305b2fa15bd24358f63dc7d72192b27
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2289041
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-09 01:48:42 +00:00
Mark Mentovai
030c58c295 mac: Add missing #include "build/build_config.h" for ARCH_CPU_*
This #include was omitted from 0c3f50c8e14a.

Bug: crashpad:345
Change-Id: Ic3392bfc611ba847e50743ef7129263bf69c81e2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2288393
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 21:01:31 +00:00
Mark Mentovai
0c3f50c8e1 mac: Crashpad for macOS on arm64, phase 2: build tests
This gets all tests building. They don’t all pass, and there aren’t any
guarantees that anything else works yet, either.

This is mostly a lot of CPU context shuffling.

Bug: crashpad:345
Change-Id: I684017a5816f44917392964d7fb6d08083770b38
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285962
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 20:26:51 +00:00
Mark Mentovai
809939c9d1 mac: Crashpad for macOS on arm64, phase 1: build it
This gets all production code for Chrome building, excluding tests.
There aren’t any guarantees that anything works yet.

This is mostly a lot of CPU context shuffling.

In contrast to macOS on x86, there’s no need to support 32-bit arm on
macOS, because this new platform is 64-bit-only from its inception.

Bug: crashpad:345
Change-Id: I187239b6a969005a3458af7fe30c44147a57f95f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285961
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 16:18:40 +00:00
Mark Mentovai
b9c828ea83 android: Fix “gn analyze”
On Android, the compat library built compat/android/sys/mman.cc, which
provides a fallback for mmap, and compat/linux/sys/mman.cc, which
provides a fallback for memfd_create. This can result in two object
files colliding in the library, which is flagged as a “gn analyze”
error:

> ERROR at //crashpad/compat/BUILD.gn:62:5: Duplicate object file
>     static_library(target_name) {
>     ^----------------------------
> The target //crashpad/compat:compat
> generates two object files with the same name:
>   obj/crashpad/compat/compat/mman.o
>
> It could be you accidentally have a file listed twice in the
> sources. Or, depending on how your toolchain maps sources to
> object files, two source files with the same name in different
> directories could map to the same object file.
>
> In the latter case, either rename one of the files or move one of
> the sources to a separate source_set to avoid them both being in
> the same target.

The files are renamed to avoid this collision. The associated headers
cannot be renamed because they need to shadow the SDK’s copies. There is
no “gn analyze” conflict reported for headers with the same name.

Change-Id: Ia49ef5ff8375673395597e96555f72f7c69e3564
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285965
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2020-07-08 13:53:20 +00:00
Mark Mentovai
828095ac32 Clear the gn sources_assignment_filter when building in Chromium
Chromium relies on a global gn sources assignment filter, even though
it’s kind of discouraged. Crashpad doesn’t use this, instead selecting
which files to build entirely with the logic in its .gn files. In some
cases, Chromium’s filters prevent _linux files from building on Android,
and _mac files from building on iOS, even though Crashpad’s build has
explicitly requested these inclusions. To overcome this problem,
clear the gn sources_assignment_filter in all of Crashpad’s own .gn
files when building in Chromium.

Change-Id: Iab0af29f4e5aff4be8eec2ee12b2e3f991c0a86d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285959
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
2020-07-08 04:29:24 +00:00
Mark Mentovai
7cf66d83e6 Restore util tests to crashpad_tests used by Chromium
This was indvertently removed in ea4af71c2ac7, which should have enabled
util tests on iOS, the only platform they had been disabled on.

Change-Id: Id0d618c7268d5db21c2fd32a5f49c1770958d6d7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2286509
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 04:13:54 +00:00
Mark Mentovai
b2061004ce Update mini_chromium to 4e8ff0c3a29f
4e8ff0c3a29f ios: Use the “Apple Development” code signing certificate

Change-Id: I900e064f7d289c66fa96ab1e642c1645bd6d702e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285958
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-07-08 03:12:44 +00:00
Rohit Rao
245fee1b63 Removes Chromium-specific args from setup_ios_gn.py.
Bug: None
Change-Id: Ic0f2352be57c0010ea6d951bec2754addba5cac0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2285894
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
2020-07-08 01:25:35 +00:00
Rohit Rao
17b08b5aab Copies the latest setup_ios_gn.py from Chromium.
Also includes the latest convert_gn_xcodeproj.py.

BUG=None

Change-Id: Icd82dd248ebf30b98054336d82f73a70d63f1d71
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2276602
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
2020-07-07 12:41:12 +00:00
Tamir Duberstein
d2c22d6b4b [fuchsia] Always initialize
We occassionally see UB here that looks like context_.architecture isn't
initialized.

Note to reviewers: needs a test. Guidance on where/how to write one
would be most welcome.

Bug: fuchsia:55587
Change-Id: I886972e4d3a5c1e0c53eb17f3f65dada47a84115
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2281881
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-07-06 23:07:38 +00:00
Adam Kallai
e46f30cc54 fix: include missing header file
Include the header from base/ where NOTREACHED is defined.
This fixes a build failure on Windows on Arm.

The patch was originally created by Richard Townsend <richard.townsend@arm.com>.

Bug: 1100363
Change-Id: Ic97f7c217f22e51f1d4c9bd87ae434e263975c6d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2279091
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-07-02 18:38:59 +00:00
Robert Sesek
9f4741d4de Fix Android and CrOS build after 414569987.
Change-Id: Ifdc0dac02eac11f09eb14f4a713bea70f4680d83
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278034
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 22:09:46 +00:00
Robert Sesek
99ecfd3b52 apple: Convert GN libs lists to frameworks.
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.

Roll mini_chromium ae14a14ab..cd26c5101

$ git log ae14a14ab..cd26c5101 --date=short --no-merges --format='%ad %ae %s'
2020-07-01 rsesek@chromium.org apple: Expand {{framework_dirs}} and {{frameworks}} in the toolchain.

Bug: chromium:1052560
Change-Id: Id70bceb57174a52c6f4a7f72378a3ee0ae89f64d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278022
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 19:57:26 +00:00
Robert Sesek
1ae20ec163 Roll buildtools/ 4164a3056..6099f1018 (17 commits)
4164a30562..6099f10184

$ git log 4164a3056..6099f1018 --date=short --no-merges --format='%ad %ae %s'
2020-06-18 sdefresne remove copybara initialization artifacts
2020-06-18 sdefresne Copybara Service Migration Initialization.
2020-06-18 sdefresne Roll GN from db55efd4..7d7e8dee
2020-06-17 sdefresne Roll GN from fbe7aec7..db55efd4
2020-06-15 sdefresne Roll GN from 200492a5..fbe7aec7
2020-06-15 sdefresne Roll GN from 9a0496a7..200492a5
2020-06-11 thakis Roll GN from d0a6f072..9a0496a7
2020-06-03 ambre [libunwind] Build with -funwind-tables
2020-05-20 dpranke Change 'dpranke@chromium.org' -> 'dpranke@google.com' in OWNERS files.
2020-05-20 avi Fix checkdeps
2020-05-20 dpranke Update TEAM in OWNERS for build-related directories.
2020-05-19 rsesek Roll GN from ab32747a..d0a6f072
2020-05-15 hypan libc++: Set output_name of libc++ to libc++_chrome for android
2020-05-14 thakis Roll GN from 5ed3c9cc..ab32747a
2020-04-23 thakis Reland "Roll libunwind 43bb9f8722..d999d54f4b"
2020-03-30 tvanderlippe Update clang-format version to eb85e90350e
2020-03-23 brettw Roll GN from 9499562d..5ed3c9cc

Created with:
  roll-dep buildtools

Bug: chromium:1052560
Change-Id: Ibd5d9e864528d383e06f35a22dea1eaeacc17b90
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2278023
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
2020-07-01 16:34:24 +00:00
Mark Mentovai
09d1df04bf Use OS_WIN, not OS_WINDOWS; provide crashpad_types traits for Fuchsia
The incorrect macro was used in f4b906c79c02 (at my request when I was
reviewing from a phone).

The Windows and Fuchsia builds are broken, so…

TBR: epastor@google.com
Change-Id: I8aebbbc24db261f3c3377210bb1c477132964828
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2270920
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-27 04:56:14 +00:00
Eric Astor
f4b906c79c Avoid use of a Linux-only header in cross-platform code
Change-Id: I358ee1d7e09868e64df1f1dc6c0f49e40099ff16
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259336
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:31:40 +00:00
Eric Astor
d9c3e7cb36 Avoid use of variable-length arrays when not necessary
Change-Id: I45872ed02bbcf49b2709276dbb38cf72fab5cb1c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259335
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:27:44 +00:00
Eric Astor
ca0fd934d9 Add missing virtual/protected destructor definitions on virtual classes
Change-Id: Ic12e131e3e23d153dd5c9733d8f8c5062adbf802
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259334
Commit-Queue: Eric Astor <epastor@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 17:25:08 +00:00
IrinaShkviro
4145699874 win,linux: implement attachments support
Implemented the AddAttachment(), InitializeAttachments(), CleanDatabase() functions
on Windows.

Added attachment=FILE_NAME option to the handler, and
"attachments" argument for Windows and Linux to StartHandler function.
On crash it will create the corresponding attachments in the database
and copy content of the specified files to the database.

Bug: b/157144387

Change-Id: Ia238de39028e07112a7b971b5b7d5e71a5864f53
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2248099
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2020-06-24 16:19:27 +00:00
Eric Astor
7409adbff3 Make kMaxSendRecvMsgFDs constexpr-accessible in external contexts
Change-Id: I474186f30f38fb61e656315ebcbdc72d6b107d4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2259333
Commit-Queue: Eric Astor <epastor@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-24 15:34:47 +00:00
Hans Wennborg
9520afb599 Add missing base/logging.h include
Bug: chromium:1031540
Change-Id: I7030ce615105ff96eefba2aee43361888517a846
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2257915
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
2020-06-22 20:12:12 +00:00
Justin Cohen
b300f76af9 Roll crashpad/third_party/edo/edo/ 243fc89ae..97121c640 (22 commits)
243fc89ae9..97121c6401

$ git log 243fc89ae..97121c640 --date=short --no-merges --format='%ad %ae %s'
2020-06-20 mobile-devx-github-bot Wrap EDOClientService::errorHandler c functions in extern "C"
2020-06-10 albertbow Add warning message to `isKindOfClass:`.
2020-05-02 sskhandp Add -Wunguarded-availability and fix availability warning
2020-04-29 mobile-devx-github-bot Fix up EDO to work with OCMock 3.6
2020-04-21 haowoo Use lightweight generics to retrieve root objects.
2020-04-18 albertbow Internal change
2020-04-16 mobile-devx-github-bot Internal change
2020-04-16 sskhandp Internal change
2020-04-09 mobile-devx-github-bot Fix up .andDo blocks to not call retainArguments that can accidentally cause retain loops in mocks.
2020-02-19 sskhandp Store queue in variable to avoid repetitive calls.
2020-02-13 mobile-devx-github-bot Make sure strongSelf and strongSelf.handlerSyncQueue is not nil.
2020-02-11 albertbow Minor fix on comments.
2020-02-03 tirodkar Fix project name
2020-01-10 albertbow Rollforward EDORemoteException for user-thrown exceptions in remote invocation.
2020-01-07 albertbow Roll forward the fallback of EDORemoteException to be the subclass of NSException.
2020-01-02 mobile-devx-github-bot Internal change
2020-01-02 albertbow Fallback EDORemoteException to be the subclass of NSException.
2019-12-18 albertbow Rollback EDORemoteException.
2019-12-17 albertbow Allow one-way blacklisting types in remote invocation.
2019-12-17 albertbow Use EDORemoteException for user-thrown exceptions in remote invocation.
2019-12-16 albertbow Expose EDORemoteException.
2019-12-12 albertbow Create EDOInvocationException class.

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

Change-Id: Id0bb660e2668c472a8ba1133822221ae100c2541
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2256583
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
2020-06-22 15:22:23 +00:00
Hans Wennborg
161bfed35a Remove/replace unnecessary includes of logging.h
If the file just needs the CHECK/CHECK_OP/NOTREACHED
macros, use the appropriate header for that instead.
Or if logging.h is not needed at all, remove it.

This is both a nice cleanup (logging.h is a big header,
and including it unnecessarily has compile-time costs),
and part of the final step towards making logging.h no
longer include check.h and the others.

Bug: chromium:1031540
Change-Id: Ia46806bd95fe498bcf3cf6d2c13ffa4081678043
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2255361
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
2020-06-22 11:59:03 +00:00
Hans Wennborg
032f1aecc2 Include-what-you-use related to logging.h
Add direct includes for things provided transitively by logging.h
(or by other headers including logging.h).

This is in preparation for cleaning up unnecessary includes of
logging.h in header files (so if something depends on logging.h,
it needs include it explicitly), and for when Chromium's logging.h
no longer includes check.h, check_op.h, and notreached.h.

DEPS is also updated to roll mini_chromium to ae14a14ab4 which
includes these new header files.

Bug: chromium:1031540
Change-Id: I36f646d0a93854989dc602d0dc7139dd7a7b8621
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2250251
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-18 13:51:20 +00:00
John Wittrock
38f6034998 fuchsia: add invtsc to qemu command line
This puts the command line in sync with the fuchsia-internal way of
running emulators, which may help alleviate flakes in Chromium infra.

Bug: chromium:1092054
Change-Id: I0e52107e24f1b5b09d35348a47d2485e227a416c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2240144
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-06-10 21:12:14 +00:00
Joshua Peraza
7a70b0f151 android: correct executable placement in debug rendezvous
On Android P, Bionic mistakenly places the vdso first
in the list where the executable should be.

Also correctly set the section size in the section
headers for test module string tables.

Bug: chromium:1050178
Change-Id: I83581d05c5ed3e25a237d1ce4a27c45755a3ab3c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2231525
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-06-05 02:29:11 +00:00
Joshua Peraza
294d233ca0 elf: adjust small DT_STRTAB addresses by load bias
Change-Id: I7ffbd2be0800aedad8b5c4b6982379e5485f1bc8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2229114
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-06-04 22:42:57 +00:00
Joshua Peraza
86c28287d2 linux: add section header string table to test module
While ELF allows the section header string table to be missing,
it is required by Android API 26+.

Bug: chromium:1050178
Change-Id: I124e4356bda9c628f76944729a6c0c5e7a52561a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2227129
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-06-02 20:19:46 +00:00
Joshua Peraza
686852d9d8 linux: update test expectations
Android 9+ sets the executable's dynamic array
address in the link map.

Improve tests to verify that the dynamic array
address in the link map matches the address in the
executable.

Bug: chromium:1050178
Change-Id: I4c938f804092c8f35578389a7e7d7267144ad80c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1967972
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-06-01 23:25:05 +00:00
Levente Koncz
4b5a5bac26 win: Make CreatePipe compatible with UWP apps
See the documentation of CreateNamedPipeA()

Change-Id: Icc82b2ea7baf2c6d46947053d8d6dec817bced1f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2207325
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-19 13:59:56 +00:00
Piotr Tworek
a8ff626764 Add a bunch of missing string.h includes.
There are a few files in the tree which use various functions defined
in string.h (memcpy, strlen, strnlen, memmove, etc), but never include
the necessary header file. After I've recently updated one of my systems
to a newer glibc version (2.30) this code failed to build. Adding the
missing includes fixes the problem.

The undeclared functions for each file are:
* simple_address_range_bag.h - memcpy
* http_multipart_builder.cc - strlen
* minidump_context_converter.cc - memcpy
* ptrace_client.cc - strlen
* http_transport_socket.cc - strncpy, strlen, memcpy
* process_memory.cc - memchr
* log_output_stream.cc - strlen

Change-Id: I3108c36b8a6927ac11f6839606cb495926fa9e4e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2207139
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-18 13:54:02 +00:00
Mark Mentovai
c7d1d2a1dd Fix googletest and googlemock in non-standalone mode after a45eea40fc81
Change-Id: I24216fd2505a31cf939ad624e355460b31f7a40f
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2189916
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
2020-05-08 17:45:20 +00:00
Joshua Peraza
92530c67e9 cros: Pass correct pid to crash_reporter
Change-Id: I1d7f6a10b64579b71c97bf6369cc98e0d5980181
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2189914
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-05-08 16:55:20 +00:00
Mark Mentovai
cf59ba95ff doc: Update “Developing” documentation
Change-Id: Ifc3596216d12470aaef2d4062383c5aeee795de1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2186353
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-07 14:56:22 +00:00
Mark Mentovai
b065c6c436 android: Allow cross development from non-Linux build hosts (again)
This regressed in e97cf7b29c16.

Change-Id: I8e82478e80ce8c56926b737c00506a4ff9a1bffd
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2186352
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-07 14:56:13 +00:00
Mark Mentovai
a45eea40fc Update gtest to e3f0319d89f4cbf32993de595d984183b1a9fc57
I’m most interested in picking up 1b3eb6ef3462, “Explicitly define copy
constructors used in googletest tests.”

This also reorganizes files and rewrites text to refer to this project
as Google Test and googletest (and Google Mock and googlemock), as it
prefers to be known. Some filenames are left at gtest_* following the
precedent set by gtest itself. For example, #include "gtest/gtest.h" is
still used, so #include "test/gtest_death.h" is retained too.
gtest_all_test OutputFileHelpersTest.GetCurrentExecutableName hard-codes
the expected executable name as gtest_all_test among other options that
do not include googletest_all_test, so test executables retain their
names as well.

fb19f57880f6 Add GTEST_BRIEF option
3549237957a1 Ensure that gtest/gmock pkgconfig requirements specify
             version
189299e957bb Merge branch 'master' into quiet-flag
5504ded3ab5c Fix a typo in .travis.yml
6ed4e7168f54 Replace the last instance of `throw()` with `noexcept`. NFC
879fd9b45299 Remove duplicate codes existed in get-nprocessors.sh
644f3a992c28 gtest-unittest-api_test - fix warning in clang build
0b6d567619fe Remove redundant .c_str()
be3ac45cf673 fix signed/unsigned comparison issue (on OpenBSD)
b51a49e0cb82 Merge pull request #2773 from Quuxplusone:replace-noexcept
c2032090f373 Merge pull request #2772 from Quuxplusone:travis
4fe5ac53337e Merge pull request #2756 from Conan-Kudo:fix-pkgconfig-reqs
373d72b6986f Googletest export
4c8e6a9fe1c8 Merge pull request #2810 from ptahmose:master
71d5df6c6b67 Merge pull request #2802 from e-i-n-s:fix_clang_warning
dcc92d0ab6c4 Merge pull request #2805 from pepsiman:patch-1
4f002f1e236c VariadicMatcher needs a non-defaulted move constructor for
             compile-time performance
9d580ea80592 Enable protobuf printing for open-source proto messages
766ac2e1a413 Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_
11b3cec177b1 Fix a -Wdeprecated warning
01c0ff5e2373 Fix a -Wdeprecated warning
c7d8ec72cc4b Fix a -Wdeprecated warning
1b066f4edfd5 Add -Wdeprecated to the build configuration
4bab55dc54b4 Removed a typo in README.md
a67701056425 Googletest export
fb5d9b66c5b0 Googletest export
1b3eb6ef3462 Googletest export
b0e53e2d64db Merge pull request #2797 from Jyun-Neng:master
d7ca9af0049e Googletest export
955552518b4e Googletest export
ef25d27d4604 Merge pull request #2815 from Quuxplusone:simple
129329787429 Googletest export
b99b421d8d68 Merge pull request #2818 from inazarenko:master
472cd8fd8b1c Merge pull request #2818 from inazarenko:master
3cfb4117f7e5 Googletest export
0eea2e9fc634 Googletest export
a9f6c1ed1401 Googletest export
1a9c3e441407 Merge pull request #2830 from keshavgbpecdelhi:patch-1
e589a3371705 Merge pull request #2751 from calumr:quiet-flag

Change-Id: Id788a27aa884ef68a21bae6c178cd456f5f6f2b0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2186009
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-07 14:56:07 +00:00
Justin Cohen
95b4e62768 ios: CaptureContext arm64.
Change-Id: I2db8ead3103391af4d198f213524ea34ffef022b
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2167211
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-05-03 19:21:45 +00:00
Mark Mentovai
2f217736a3 ios: Deal with ios_enable_relative_sdk_path in Chromium
Change-Id: Ibb03748d8881c4a71662a7d6ad5743107ccd748d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2174267
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-05-02 00:34:22 +00:00
Ian Barkley-Yeung
8bd5e53777 BUILD: Look at current_cpu instead of target_cpu
Fixes build error where fuchsia_arm64 builds were failing because they
picked up linux x86 code.

Bug: None
Change-Id: I48a7bc92490604fd2a59cb4d36421cb76f579224
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2172636
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Ian Barkley-Yeung <iby@chromium.org>
2020-04-29 21:21:57 +00:00
Mark Mentovai
174a92d296 mac, ios: Add ExceptionPorts::SwapExceptionPorts
Change-Id: Ia4044c82440af1d05c24ee502d51eef5185cbeec
Test: crashpad_util_test ExceptionPorts.*_Swap*
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2170546
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-28 16:43:41 +00:00
Mark Mentovai
57e807da6d ios: Build (and test) SymbolicConstantsMach
Bug: crashpad:31
Test: crashpad_util_test SymbolicConstantsMach.*
Change-Id: Ia76a5fb2d5ca2afdd06d99dab9ab1b72cd5a6f0d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2169867
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-28 16:43:32 +00:00
Mark Mentovai
bac601e785 Use underscores instead of hyphens in filenames
Change-Id: I886a5cfc8092eb680163586b5855a86d407a34a8
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165816
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 21:21:20 +00:00
Mark Mentovai
ecc41d0229 doc: Update Doxygen to 1.8.18 and fix Doxygen warnings
% doxygen -u doc/support/crashpad.doxy
[…warnings about removing obsolete TCL_SUBST, PERL_PATH, MSCGEN_PATH…]
Configuration file 'doc/support/crashpad.doxy' updated.
% doxygen -v
1.8.18

Change-Id: I771f654713042b0040873355051b9efaf46bffd1
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165817
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 16:45:20 +00:00
Mark Mentovai
a5a1c3b07f Add .style.yapf and reformat according to yapf, using “google” style
% yapf --in-place $(git ls-files **/*.py)
% yapf --version
yapf 0.30.0

Note that this is not using the “chromium” yapf style because Chromium
is moving to PEP-8.
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/RcJgJdkNIdg
yapf 0.30.0 no longer recognizes “chromium” as a style option.
22ef70f3c4
Since this is a mass reformatting, it might as well move things all the
way into the future all at once.

This uses the “google” style, which is a superset of “pep8”.

Change-Id: Ifa37371079ea1859e4afe8e31d2eef2cfd7af384
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165637
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-27 13:59:09 +00:00
Mark Mentovai
29b1688c11 Replace remaining uses of NULL with nullptr
I did a mass conversion in 5d74f120fc57 (October 2014) but these few
must have shown up after.

This excludes code in third_party.

Change-Id: I61cb0273804c0424904a516ed5ab735548b6b9cb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2166725
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-27 13:58:49 +00:00
Justin Cohen
be57546fea ios: Fix Chromium banned warning about NULL.
Change-Id: I29eefb067b171fb3d8ef9fa93c3bb146a206c9ce
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2166724
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-27 03:23:29 +00:00
Justin Cohen
17a515d33d [ios] Bring up first draft Mach exception server.
Add Mach exception server and fill out exceptions snapshot.

Note that:
 - The 'capture' portion of this CL will be moved out of the snapshot
   interface and into a separate in-process dump to disk location.
 - All of the pointer dereferences need to be wrapped in vm_read.
 - The read-fast-and-dump logic in exception_snapshot will end up in a
   different file completely, but until we pick a
   serialization/deserialization method, keep it as-is.

Bug: crashpad:31
Change-Id: I44203aa44036a341d6b4517fde7ab0cb9d7e94d7
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2160122
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-25 23:38:48 +00:00
Francois Rousseau
6d8b196150 [fuchsia] remove handler
* Fuchsia only uses Crashpad for minidump generation, report database
  and report upload, not for the actual exception handling so it does
  not need a handler class
* the current handler class didn't have tests anyway
* Chromium on Fuchsia relies on the platform exception handling instead
  of rolling its own Crashpad exception handler
* this avoids us having to maintain an exception handler in another repo
* this removes the last FIDL dependency in Crashpad

TESTED=`fx test crashpad_test`

Change-Id: Ie3998f709e7cc4252dd551882a23b337864da85e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165638
Commit-Queue: Francois Rousseau <frousseau@google.com>
Reviewed-by: Scott Graham <scottmg@chromium.org>
2020-04-24 23:20:08 +00:00
Scott Graham
a519f1bec3 fuchsia: Update build to use new "GN" SDK
This reworks the SDK pull to get the new packaging of the SDK.

Includes DEPS update to roll mini_chromium with two changes:
f7bd221 fuchsia: Remove fuchsia_sdk declare_args, add copy() tool
8ca5ea3 fuchsia: Use sdk/$host_os-amd64 for sdk path

Bug: fuchsia:7802
Change-Id: Ifcb0e90b19c7eddc32a37422e6951f214dcdfd36
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165494
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-04-24 22:27:07 +00:00
Scott Graham
069fddf184 fuchsia: Remove unused sysinfo dep
This was previously used, but is no longer required. Delete the one
remaining include at the build rules.

Change-Id: If5083a4fb8a5562d3e40149976bd27fcec0fd302
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165635
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Francois Rousseau <frousseau@google.com>
Commit-Queue: Scott Graham <scottmg@chromium.org>
2020-04-24 20:00:17 +00:00
Joshua Peraza
9fea20040e linux: Update overview design
Bug: crashpad:294
Change-Id: Ie84b56bd429320dab1d232d0b19c6378b7d3755a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2165627
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
2020-04-24 17:54:27 +00:00
Joshua Peraza
ec105797e6 Update the status page
Change-Id: If9075e6cd0785e7a2c64263144db9ecafbeec9b0
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2163916
Commit-Queue: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
2020-04-24 15:29:27 +00:00
Mark Mentovai
adfd94a357 ios: Use compat to provide items missing from the iOS SDK
This updates the way that the .defs files added in 1bfd7d06ed60 are
treated, by putting them in compat/ios, using compat as intended. The
.defs files in compat forward, via #include, to the ones in
third_party/xnu. Additionally, compat/mac is enabled for iOS, as
everything in compat/mac is sensible on iOS, and will have no effect
when rendered unnecessary by the iOS SDK.

This also changes util:mig_output to a static_library instead of a
source_set. I don’t think there was any reason for it to have been a
source_set to begin with. static_library is preferred for nearly
everything.

Bug: crashpad:31
Change-Id: I7c468d6d6785bf2bc825d45831ebb81e1c9ddfbc
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2160310
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-22 16:09:05 +00:00
Mark Mentovai
64b8791f45 ios: Build util/mach/exc_server_variants.cc, support code, and tests
This makes UniversalMachExcServer available on iOS.
UniversalMachExcServer is the foundation for a Mach exc and mach_exc
server.

Some code in UniversalMachExcServer needs to be evaluated to ensure that
portions that run in the same process that has sustained the exception
are safe to do so at that time. For example,
SimplifiedExcServer<ExcTraits>::Interface instantiates and appends to a
std::vector<>, which is generally unsafe in this context. However, that
code responds to exc requests. The mach_exc equivalent,
SimplifiedMachExcServer<MachExcTraits>::Interface, does not use a vector
at all.

This also enables support code in the form of CompositeMachMessageServer
and UniversalExceptionRaise, all of the tests for
CompositeMachMessageServer, and most of the test for
exc_server_variants.cc. The multiprocess-based exc_server_variants tests
remain disabled on iOS.

Bug: crashpad:31
Change-Id: I838ed770a33ca29c37383c32245eb340fb3ad2fb
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159287
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:26:24 +00:00
Mark Mentovai
1bfd7d06ed ios: Run mig with the correct SDK and architecture
mig was being invoked without any -arch argument, causing it to assume
the build system’s native architecture, which would be x86_64. This is
not correct for iOS device builds, which use arm64. The -arch argument
must be plumbed to mig for correct behavior.

When building for iOS, mig was being invoked without any -isysroot
argument, causing it to use the root for the build system, which runs
macOS and not iOS. The macOS SDK doesn’t include the ARM definitions
needed for iOS device builds.

<mach/exc.defs> and <mach/mach_exc.defs> depend on a small number of
other .defs files to provide definitions of standard types. All .defs
files are absent from the iOS SDK. These .defs files are borrowed from
xnu and placed in third_party/xnu. An additional --include argument is
added to allow mig to locate these files.

Bug: crashpad:31
Change-Id: I27154310352939ebe2fb6329bbbfda701c369289
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159291
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:24:44 +00:00
Mark Mentovai
3e748e9c4e ios: Provide a copy of mach_exc.defs and run mig on it
This updates (and corrects) 8dbbaff2e1a5, which added exc.defs, by
adding mach_exc.defs too.

The difference betwen the exc and mach_exc subsystems is that the |code|
parameter is int[] in exc and int64_t[] in mach_exc. Many exceptions
carry the exception address in code[1], and a 32-bit int results in the
exception address being truncated in exc. No information is lost in
mach_exc, where a 64-bit int64_t is used.

In 8dbbaff2e1a5, I misremembered the type of the |code| parameter as a
type derived from uintptr_t, such as vm_address_t, an integer as wide as
a pointer. I was wrong, and mach_exc is necessary. I also noted that
Apple normally forbids mach_-prefixed interfaces in favor of the
prefix-less ones for the reasons I mentioned, and that, all else being
equal, it was desirable to adhere to the spirit of that convention.
Because neither exc nor mach_exc are available in the SDK, it’s moot
from a technical perspective, as we need to provide our own stubs either
way.

Bug: crashpad:31
Change-Id: Ied1be470e653b2bead1a283cb8b9283d210c328d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159286
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:23:24 +00:00
Mark Mentovai
64c65b5757 ios: Build and test the minidump library
Bug: crashpad:31
Change-Id: I7c3974907114430a9674c3baae3ae359d5ed596e
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2156965
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-20 15:46:14 +00:00
Mark Mentovai
4cb79941fc ios: Build four more Mach message and exception utilities
This enables the following code in util/mach on iOS:
 - exception_behaviors.{cc,h}
 - exception_ports.{cc,h}
 - mach_message.{cc,h}
 - mach_message_server.{cc,h}

Only the ExceptionBehaviors and MachMessage tests are built, because the
other two are tested by multiprocess tests that won’t run on iOS.

The AuditPIDFromMachMessageTrailer function from mach_message.h is
excluded on iOS because it relies on <bsm/libbsm.h>, which is broken on
iOS: it depends on <bsm/audit_record.h>, which is missing from the SDK.
Additionally, the BSM function that Crashpad uses, audit_token_to_au32,
is marked as unavailable on iOS. Crashpad uses it on macOS to
authenticate Mach messages sent by other processes, but this is moot on
iOS.

Bug: crashpad:31
Change-Id: I5ebc4b80543989b9cd0b85b82eb4b3ff98c44e6c
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2155086
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-18 03:27:59 +00:00
Mark Mentovai
8dbbaff2e1 ios: Provide a copy of exc.defs and run mig on it to generate exc stubs
The iOS SDK doesn’t include a copy of <mach/exc.defs>. It only provides
<mach/exc.h>, which is just the user-side header. To obtain declarations
and implementations of the server-side stubs, a current copy of
<mach/exc.defs> is added to third_party, and the mig action in util is
updated to use it on iOS.

The three other mig subsystems that Crashpad uses are not brought to
iOS:
 - mach_exc is identical to exc except it always uses 64-bit quantities
   for addresses in place of exc’s use of quantiies sized for native
   pointers. Because all iOS work is limited to a single process, there
   is no need to consider cross-process operation with variable bitness,
   so mach_exc is unnecessary. We’re also only targeting 64-bit for iOS,
   so exc will always suffice. This follows the spirit of other
   mach_-prefixed routines on iOS, where Apple forbids mach_vm_read to
   user applications but permits vm_read.
 - notify is primarily used on macOS in the Crashpad handler process to
   receive a no-senders notification, which is used to trigger handler
   shutdown when it has no more clients. This is not believed to be
   useful to Crashpad on iOS, which is restricted to single-process
   operation.
 - child_port is a Crashpad-specific subsystem used to pass Mach rights
   between processes, but is similarly useless when restricted to
   single-process operation as on iOS.

Bug: crashpad:31
Change-Id: Id4cb3cdd529814438d378c20702c82c1e89dd2be
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154530
Commit-Queue: Mark Mentovai <mark@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
2020-04-17 21:11:57 +00:00
Mark Mentovai
ba24acb86c ios: Split bootstrap out from mach_extensions
mach_extensions is sensible on iOS, but bootstrap is not available
outside of macOS. To allow mach_extensions to be used cleanly on iOS,
the bootstrap code is moved into its own macOS-specific file.

Bug: crashpad:31
Change-Id: I7bf9d5194253b563954a1e55fbf67a16f686e8ff
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154529
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-17 20:54:47 +00:00
Mark Mentovai
122a400d7b ios: Enable (and test!) more of util and test
This builds some code in the util and test libraries on iOS that was
previously excluded. It also enables tests for this code, and other
tests that it was possible to enable either previously or as a result of
this change.

Previously, crashpad_util_test ran 178 tests from 46 test suites, and
crashpad_test_test ran 2 tests from 2 test suites. Now,
crashpad_util_test runs 284 tests from 62 test suites, and
crashpad_test_test runs 6 tests from 4 test suites.

The related .gn files also suffered through a slight cleanup.

Bug: crashpad:31
Change-Id: I84cdda5631f0ea4888ada902a8462776ac46fd2a
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2154526
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-17 20:54:17 +00:00