8 Commits

Author SHA1 Message Date
Mark Mentovai
e428b3ad13 doc: Update to Doxygen 1.13.2, fix Doxygen warnings, modernize somewhat
doc/support/crashpad.doxy is updated with:

```
% doxygen -u doc/support/crashpad.doxy
[…]
% doxygen -v
1.13.2
```

Additional updates to doc/support/crashpad.doxy are made:
 - The settings for `DISABLE_INDEX` and `GENERATE_TREEVIEW` are updated,
   as Doxygen’s defaults have changed. This switches from the
   top-of-page index to the side-of-page tree view.
 - The TODO and Deprecated sections have become more prominent under the
   side-of-page tree view than they were with the top-of-page index, and
   they’re not very useful in Crashpad documentation, so they’re
   disabled by setting `GENERATE_TODOLIST` and `GENERATE_DEPRECATEDLIST`
   appropriately. The similar (but unused in Crashpad)
   `GENERATE_TESTLIST` and `GENERATE_BUGLIST` are also disabled.
 - `USE_DOT` is now set, to use `dot` from GraphViz to generate SVG
   diagrams. These look better than the PNGs that Doxygen generated
   without `dot`. `DOT_COMMON_ATTR` and `DOT_EDGE_ATTR` are set to make
   the fonts used in GraphViz-generated SVGs match those used in
   Doxygen-generated HTML/CSS.
 - `EXCLUDE` has been updated to drop directories that no longer exist
   (compat/non_cxx11_lib) and add ones that now do (compat/android,
   compat/ios, and compat/linux).
 - Some values that were otherwise unused in doc/support/crashpad.doxy
   are set back to their default values. The differences from the
   default configuration are shown with `doxygen -x
   doc/support/crashpad.doxy`, and a configuration template with default
   values can be generated for inspection with `doxygen -g
   /tmp/template.doxy`. The tags affected are:
    - `MATHJAX_RELPATH`, unused since `USE_MATHJAX` is `NO`.
    - `LATEX_CMD_NAME` and `LATEX_BIB_STYLE`, unused since `USE_LATEX`
      is `NO`).
    - `EXCLUDE_PATTERNS`, unused since `EXCLUDE_PATH` is empty.

doc/support/doxygen_crashpad.css is updated to change the non-monospaced
font from Open Sans to Noto Sans. It is also updated to use the CSS
properties Doxygen defines for the purpose, rather than monkeying around
with custom selectors. The properties can be discovered by running
`doxygen -w html header.html footer.html customdoxygen.css
doc/support/crashpad.doxy` and reviewing customdoxygen.css.

doc/support/generate.sh is updated to further execute
doc/support/generate_doxygen.py by invoking directly and relying on its
`#!/usr/bin/env python3` line rather than invoking via `python`, which
is no longer available on many systems. doc/support/generate_doxygen.py
has already been Python 3-compatible since f88a116c0e2e
(https://chromium-review.googlesource.com/c/3542572, 2022-03-23).

Finally, there are a number of changes to fix Doxygen warnings produced
by the new Doxygen version or because of new code that has not yet been
run through Doxygen during a test run.

Change-Id: I436688b16530cb0a07dbf89d32601fff689ac2f2
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6180234
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2025-01-23 10:45:59 -08:00
Eran Rom
788b72f922 Remove Mac OS X Server support
Mac OS X Server has been discontinued as a separate operating system
flavor since 10.6. Current minimal requirements for both Crashpad and
Chromium are above that.

Change-Id: Ia9063be2e55a48e45d9f9974ac2e51bac004f37d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4584570
Reviewed-by: Mark Mentovai <mark@chromium.org>
2023-06-02 19:12:29 +00:00
Mark Mentovai
6278690abe Update copyright boilerplate, 2022 edition (Crashpad)
sed -i '' -E -e 's/Copyright (.+) The Crashpad Authors\. All rights reserved\.$/Copyright \1 The Crashpad Authors/' $(git grep -El 'Copyright (.+) The Crashpad Authors\. All rights reserved\.$')

Bug: chromium:1098010
Change-Id: I8d6138469ddbe3d281a5d83f64cf918ec2491611
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3878262
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2022-09-06 23:54:07 +00:00
Mark Mentovai
9a5a789123 mac: Fix MacOSVersionNumber for 10.12.0 < version < 10.13.4
In 5412beb63386, I asserted (via my code) that the kern.osproductversion
sysctl was introduced in 10.12.0, but this was utterly wrong. It’s not
available until 10.13.4. Compare 10.13.3
xnu-4570.41.2/bsd/kern/kern_sysctl.c to 10.13.4
xnu-4570.51.1/bsd/kern/kern_sysctl.c, look for osproductversion.

https://pbs.twimg.com/media/EU0GDTVU4AY73KC.jpg

Failures appeared starting at
https://ci.chromium.org/p/chromium/builders/ci/Mac10.12%20Tests/37499
(https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8869605548532164608/+/steps/crashpad_tests_on_Intel_GPU_on_Mac_on_Mac-10.12.6/0/stdout).

This fixes expectations to not require kern.osproductversion to exist
until 10.13.4.

VM-tested on 10.12.6, 10.13.3, 10.13.4, and 10.14.0.

Bug: crashpad:347
Test: crashpad_util_test MacUtil.MacOSVersionNumber
Change-Id: Ic58d8ca8f04394d41c691dd2d946c59497ee71d5
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2402248
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-09-10 13:53:29 +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
Mark Mentovai
952f787f4a doc: Standardize on “macOS” in comments
Use “macOS” as the generic unversioned name of the operating system in
comments. For version-specific references, use Mac OS X through 10.6, OS
X from 10.7 through 10.11, and macOS for 10.12.

Change-Id: I1ebee64fbf79200bc799d4a351725dd73257b54d
Reviewed-on: https://chromium-review.googlesource.com/408269
Reviewed-by: Robert Sesek <rsesek@chromium.org>
2016-11-08 19:21:44 +00:00
Mark Mentovai
5d74f120fc Convert NULL to nullptr.
This change was generated mechanically by running:

  find . \( -name \*.cc -or -name \*.mm -or -name \*.h \) \
      -and -not -path ./third_party/\* -and -not -path ./out/\* \
      -exec sed -i '' -E -e 's/(^|[^_])NULL/\1nullptr/g' {} +

Further manual fix-ups were applied to remove casts of nullptr to other
pointer types where possible, to preserve the intentional use of NULL
(as a short form of MACH_PORT_NULL) in exception_port_tool, and to fix
80-column violations.

https://groups.google.com/a/chromium.org/d/topic/chromium-dev/4mijeJHzxLg/discussion

TEST=*_test
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/656703002
2014-10-14 11:10:45 -04:00
Mark Mentovai
8fe32b7b9c Add mac_util, including MacOSXMinorVersion(), MacOSXVersion(), and
MacModelAndBoard(), along with their tests.

TEST=util_test MacUtil.*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/473023002
2014-08-15 22:33:14 -07:00