gecko-dev/ipc/glue
Gabriele Svelto 9f9c7c8211 Bug 1547698 - Refactor the code that writes the .extra file for a content process crash or hang r=froydnj
Upon a content process crash or hang crash annotations were incrementally
written into the .extra file starting with the exception handler callback and
then in a number of different places before the file was ready for submission.
This had a number of downsides: since the annotations were directly added to
the file it was impossible to tell which ones were already written at a
certain point in time, additionally some were written twice or even thrice.
The code doing the writing would also behave differently depending on the
contents of the file, the parameters passed to it and the contents of global
variables.

This change overhauls the whole process by keeping the annotations into a
temporary per-crash annotation table which is filled with all the required
annotations before being written out in a single pass when they are ready.

The annotations are gathered from the main process annotation table, the
per-process one (held by the CrashReporterHost) and exception-time specific
ones.

The resulting annotations are slightly different than before the patch: first
of all there are no more duplicate entries in the .extra file and secondly all
content/plugin process hangs annotations are properly filtered, before
annotations that were main process-only would leak into them.

Differential Revision: https://phabricator.services.mozilla.com/D31069

--HG--
extra : moz-landing-system : lando
2019-05-18 16:19:55 +00:00
..
BackgroundChild.h Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer 2019-01-11 20:56:39 +00:00
BackgroundChildImpl.cpp Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - IPCBlobInputStream actors, r=qdot 2019-04-26 18:04:02 +00:00
BackgroundChildImpl.h Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug 2019-04-26 17:53:07 +00:00
BackgroundImpl.cpp Bug 1522579 - Part 2: Remove consumers of nsIContentParent, r=mccr8 2019-02-25 20:04:47 +00:00
BackgroundParent.h Bug 1513057 - P6: Create Background between content process and socket process r=dragana,mayhemer 2019-01-11 20:56:39 +00:00
BackgroundParentImpl.cpp Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - IPCBlobInputStream actors, r=qdot 2019-04-26 18:04:02 +00:00
BackgroundParentImpl.h Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug 2019-04-26 17:53:07 +00:00
BackgroundUtils.cpp Bug 1320404 - Remove appId from origin attributes - part 1 - OriginAttributes and nsIPrincipal, r=Ehsan,flod 2019-05-03 17:13:17 +00:00
BackgroundUtils.h Bug 1534538 - Principal serialization should not serialize base domain if not needed, r=Ehsan 2019-03-29 19:20:52 +00:00
BrowserProcessSubThread.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
BrowserProcessSubThread.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
ByteBuf.h Bug 1441651 - Part 1 - pass Shmem and ByteBuf by rvalref to ParamTraits; r=nika 2019-03-04 16:07:37 +00:00
CrashReporterClient.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
CrashReporterClient.h Bug 1441651 - Part 2 - pass Shmem and ByteBuf by rvalref to Send* IPC methods; r=nika,jrmuizel 2019-03-04 16:35:30 +00:00
CrashReporterHost.cpp Bug 1547698 - Refactor the code that writes the .extra file for a content process crash or hang r=froydnj 2019-05-18 16:19:55 +00:00
CrashReporterHost.h Bug 1547698 - Refactor the code that writes the .extra file for a content process crash or hang r=froydnj 2019-05-18 16:19:55 +00:00
CrashReporterMetadataShmem.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CrashReporterMetadataShmem.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CrossProcessMutex_posix.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CrossProcessMutex_unimplemented.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CrossProcessMutex_windows.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
CrossProcessMutex.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
CrossProcessSemaphore_posix.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
CrossProcessSemaphore_unimplemented.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
CrossProcessSemaphore_windows.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
CrossProcessSemaphore.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
EnvironmentMap.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
FileDescriptor.cpp Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
FileDescriptor.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
FileDescriptorSetChild.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
FileDescriptorSetChild.h Bug 1522579 - Part 3: Remove consumers of nsIContentChild, r=mccr8 2019-02-25 20:04:49 +00:00
FileDescriptorSetParent.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
FileDescriptorSetParent.h Bug 1522579 - Part 2: Remove consumers of nsIContentParent, r=mccr8 2019-02-25 20:04:47 +00:00
FileDescriptorShuffle.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
FileDescriptorShuffle.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
FileDescriptorUtils.cpp Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
FileDescriptorUtils.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
GeckoChildProcessHost.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-04-12 13:14:25 +00:00
GeckoChildProcessHost.h Bug 1541130: Add XRE_GetChildProcBinPathType to nsXULAppAPI.h; r=froydnj,jld 2019-04-08 20:19:51 +00:00
InProcessChild.cpp Bug 1512961 - Reformat recent changes to the Google coding style r=Ehsan 2018-12-10 19:23:16 +00:00
InProcessChild.h Bug 1512990 - Part 3 - remove declarations of Alloc/Dealloc methods from IPDL protocol base class; r=froydnj 2019-02-06 15:58:07 +00:00
InProcessImpl.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
InProcessParent.cpp Bug 1512961 - Reformat recent changes to the Google coding style r=Ehsan 2018-12-10 19:23:16 +00:00
InProcessParent.h Bug 1512990 - Part 3 - remove declarations of Alloc/Dealloc methods from IPDL protocol base class; r=froydnj 2019-02-06 15:58:07 +00:00
InputStreamParams.ipdlh Bug 1534666 - replace OptionalInputStreamParams with InputStreamParams? in IPDL; r=mccr8 2019-03-12 15:52:26 +00:00
InputStreamUtils.cpp Bug 1545758 - Move dom/file IPC components into mozilla::dom namespace - IPCBlobInputStream actors, r=qdot 2019-04-26 18:04:02 +00:00
InputStreamUtils.h Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-03-13 10:19:06 +01:00
IOThreadChild.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
IPCMessageUtils.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
IPCMessageUtils.h Bug 1494469 - Removed duplicate IPC::MAX_MESSAGE_SIZE constant r=jld 2019-04-12 13:01:41 +00:00
IPCStream.ipdlh Bug 1528493 - Part 2: Move OptionalIPCStream to use new maybe types, r=baku 2019-02-22 18:46:14 +00:00
IPCStreamAlloc.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
IPCStreamChild.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
IPCStreamDestination.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
IPCStreamDestination.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
IPCStreamParent.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
IPCStreamSource.cpp Bug 1484524: Allow creating a StrongWorkerRef for IPC in the Canceling state r=asuth 2019-03-04 23:05:34 +00:00
IPCStreamSource.h Bug 1522579 - Part 3: Remove consumers of nsIContentChild, r=mccr8 2019-02-25 20:04:49 +00:00
IPCStreamUtils.cpp Bug 1522579 - Part 3: Remove consumers of nsIContentChild, r=mccr8 2019-02-25 20:04:49 +00:00
IPCStreamUtils.h Bug 1522579 - Part 3: Remove consumers of nsIContentChild, r=mccr8 2019-02-25 20:04:49 +00:00
IPDLParamTraits.h Bug 1441308 - Support moving Maybe's in IPC serialization r=mccr8 2019-03-22 18:29:00 +00:00
MessageChannel.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
MessageChannel.h Bug 1516240 - Part 1: Expose whether a cross-process channel is in use, r=mccr8 2019-02-13 21:02:51 +00:00
MessageLink.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
MessageLink.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
MessagePump.cpp Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
MessagePump.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
moz.build Bug 1525086 - Part 3a - Move sandbox param logic to GeckoChildProcessHost and MacSandboxInfo to be more reusable r=Alex_Gaynor 2019-03-28 02:25:52 +00:00
Neutering.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsIIPCSerializableInputStream.h Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-03-13 10:19:06 +01:00
PBackground.ipdl Bug 1534712 - Port FileCreatorHelper to PBackground, r=smaug 2019-04-26 17:53:07 +00:00
PBackgroundSharedTypes.ipdlh Bug 1517089 - Part 9: Add baseDomain to ContentPrincipalInfo; r=asuth 2019-02-08 21:01:50 +01:00
PBackgroundTest.ipdl
PChildToParentStream.ipdl Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8 2019-02-25 20:04:45 +00:00
PFileDescriptorSet.ipdl Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8 2019-02-25 20:04:45 +00:00
PInProcess.ipdl Bug 1487249 - Part 3: Add the WindowGlobal actor representing a single window global, r=bzbarsky 2018-12-05 10:18:31 -05:00
PParentToChildStream.ipdl Bug 1522579 - Part 1: Remove PContentBridge, r=mccr8 2019-02-25 20:04:45 +00:00
ProcessChild.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
ProcessChild.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
ProcessUtils_bsd.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ProcessUtils_common.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-04-12 13:14:25 +00:00
ProcessUtils_linux.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ProcessUtils_mac.mm Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ProcessUtils_none.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
ProcessUtils.h Bug 1539029 - pt 3 - de-duplicate building cmdline for shared prefs class. r=kmag 2019-04-09 21:07:47 +00:00
ProtocolTypes.ipdlh
ProtocolUtils.cpp Bug 1547698 - Remove unused IPC methods for taking minidumps r=froydnj 2019-05-14 14:06:19 +00:00
ProtocolUtils.h Bug 1547698 - Remove unused IPC methods for taking minidumps r=froydnj 2019-05-14 14:06:19 +00:00
ScopedXREEmbed.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
ScopedXREEmbed.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
SharedMemory_posix.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
SharedMemory_windows.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
SharedMemory.cpp Bug 1523969 part 12 - Move method definition inline comments to new line in 'ipc/'. r=froydnj 2019-02-25 16:08:36 -06:00
SharedMemory.h Bug 1515551 - Add functionality to SharedMemoryBasic to help map the shared memory at an arbitrary address. r=kmag 2019-03-22 00:11:51 +00:00
SharedMemoryBasic_android.cpp Bug 1515551 - Add functionality to SharedMemoryBasic to help map the shared memory at an arbitrary address. r=kmag 2019-03-22 00:11:51 +00:00
SharedMemoryBasic_android.h Bug 1515551 - Add functionality to SharedMemoryBasic to help map the shared memory at an arbitrary address. r=kmag 2019-03-22 00:11:51 +00:00
SharedMemoryBasic_chromium.h Bug 1515551 - Add functionality to SharedMemoryBasic to help map the shared memory at an arbitrary address. r=kmag 2019-03-22 00:11:51 +00:00
SharedMemoryBasic_mach.h Bug 1515551 - Add functionality to SharedMemoryBasic to help map the shared memory at an arbitrary address. r=kmag 2019-03-22 00:11:51 +00:00
SharedMemoryBasic_mach.mm Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-03-31 15:12:55 +00:00
SharedMemoryBasic.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
Shmem.cpp Bug 1441651 - Part 1 - pass Shmem and ByteBuf by rvalref to ParamTraits; r=nika 2019-03-04 16:07:37 +00:00
Shmem.h Bug 1441651 - Part 1 - pass Shmem and ByteBuf by rvalref to ParamTraits; r=nika 2019-03-04 16:07:37 +00:00
StringUtil.cpp Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
TaskFactory.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
Transport_posix.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
Transport_posix.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
Transport_win.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
Transport_win.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
Transport.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
URIParams.ipdlh Bug 1532727 - replace OptionalURIParams with URIParams? in IPDL; r=froydnj 2019-03-06 14:05:50 +00:00
URIUtils.cpp Bug 1532727 - replace OptionalURIParams with URIParams? in IPDL; r=froydnj 2019-03-06 14:05:50 +00:00
URIUtils.h Bug 1532727 - replace OptionalURIParams with URIParams? in IPDL; r=froydnj 2019-03-06 14:05:50 +00:00
WindowsMessageLoop.cpp Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan 2019-04-05 21:41:42 +00:00
WindowsMessageLoop.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00