gecko-dev/ipc
Gabriele Svelto aa43fa218e Bug 1831092 - Use the new pull-based API for all crash annotations and remove the global annotations table r=jgilbert,necko-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,padenot,handyman,afranchuk,valentin,alwu,sotaro
This changes comes with several different refactorings all rolled into one,
unfotunately I couldn't find a way to pull them apart:
- First of all annotations now can either recorded (that is, we copy the value
  and have the crash reporting code own the copy) or registered. Several
  annotations are changed to use this functionality so that we don't need to
  update them as their value change.
- The code in the exception handler is modified to read the annotations from
  the mozannotation_client crate. This has the unfortunate side-effect that
  we need three different bits of code to serialize them: one for annotations
  read from a child process, one for reading annotations from the main process
  outside of the exception handler and one for reading annotations from the
  main process within the exception handler. As we move to fully
  out-of-process crash reporting the last two methods will go away.
- The mozannotation_client crate now doesn't record annotation types anymore.
  I realized as I was working on this that storing types at runtime has two
  issues: the first one is that buggy code might change the type of an
  annotation (that is record it under two different types at two different
  moments), the second issue is that types might become corrupt during a
  crash, so better enforce them at annotation-writing time. The end result is
  that the mozannotation_* crates now only store byte buffers, track the
  format the data is stored in (null-terminated string, fixed size buffer,
  etc...) but not the type of data each annotation is supposed to contain.
- Which brings us to the next change: concrete types for annotations are now
  enforced when they're written out. If an annotation doesn't match the
  expected type it's skipped. Storing an annotation with the wrong type will
  also trigger an assertion in debug builds.

Differential Revision: https://phabricator.services.mozilla.com/D195248
2024-03-04 10:24:43 +00:00
..
app Bug 1850647 - add an optional argument to py_action to record the target file name for most actions, r=glandium. 2023-10-12 08:41:34 +00:00
chromium Bug 1880590 - Fix benign data race during fork server shutdown. r=nika 2024-03-02 01:44:38 +00:00
contentproc
docs Bug 1880849 - Expose Utility process with actor names in about:support r=flod,fluent-reviewers 2024-02-20 11:44:15 +00:00
glue Bug 1831092 - Use the new pull-based API for all crash annotations and remove the global annotations table r=jgilbert,necko-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,padenot,handyman,afranchuk,valentin,alwu,sotaro 2024-03-04 10:24:43 +00:00
gtest Bug 1850865: Improve MOZ_IPC_MESSAGE_LOG. r=ipc-reviewers,nika 2023-09-05 18:09:30 +00:00
ipdl Bug 1878958 - Add IPCMessageTypeIsSync and use it in IPCFuzzController. r=nika 2024-02-19 21:45:33 +00:00
mscom Bug 1869053 - [5/5] templatize and further simplify AgileReference r=handyman,win-reviewers 2023-12-21 19:46:55 +00:00
testshell Bug 1874739 - Part 10: Make PTestShell refcounted, r=ipc-reviewers,mccr8 2024-01-19 20:23:21 +00:00
moz.build Backed out 2 changesets (bug 1834172, bug 1827747) for breaking local artifacts . a=backout 2023-05-22 12:42:00 +03:00
pull-chromium.py Bug 1786490 - reformat the tree using black 23.3.0 r=sylvestre,webdriver-reviewers,taskgraph-reviewers,whimboo,jmaher,ahal,perftest-reviewers,geckoview-reviewers,afinder,m_kato 2023-09-06 16:14:30 +00:00