Граф коммитов

682 Коммитов

Автор SHA1 Сообщение Дата
Markus Stange b75080bb8b Bug 1876415 - Make timestamp formats consistent between Jitdump and the marker file. r=glandium
On Linux and Android, both jitdump and the marker file will keep using
`CLOCK_MONOTONIC` nanoseconds, as before.

On macOS, both jitdump and the marker file will now be using
`TimeStamp::RawMachAbsoluteTimeNanoseconds()` , i.e. "nanoseconds since
mach_absolute_time origin".
This value has the advantage that it is also relatively easy to obtain
in other browser engines, because their internal timestamp value is stored
in milliseconds or nanoseconds rather than in `mach_absolute_time` ticks.
In the past, on macOS, Firefox was using `CLOCK_MONOTONIC` nanoseconds for
jitdump and `TimeStamp::RawMachAbsoluteTimeValue()` for the marker file.
This inconsistency is now fixed.
I will update samply to change how it treats jitdump timestamps on macOS.
There are no other consumers of jitdump files on macOS that I know of.

On Windows, we will keep using raw QPC values for the marker file - this
matches what's in the ETW events. Jitdump on Windows is mostly unused but
I'm updating it to match.

Furthermore, this fixes the order in mozglue/misc/moz.build to make sure
we always use the TimeStamp_darwin implementation on Darwin (and not just
due to a broken configure check, see bug 1681445), and it fixes the #ifdef
in TimeStamp.h to match the Darwin check.

Differential Revision: https://phabricator.services.mozilla.com/D199592
2024-01-26 03:38:54 +00:00
Botond Ballo 3d749c7613 Bug 1855079 - On 32-bit ARM, ignore the least significant bit of the address in the comparison in ShouldSkipPC. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D197745
2024-01-21 00:56:50 +00:00
Steve Fink ba7d3327fc Bug 1790873 - Move printf_stderr() to mozglue so it can be used within js/src r=glandium,nika
Differential Revision: https://phabricator.services.mozilla.com/D157354
2024-01-11 02:09:30 +00:00
Stanca Serban 94288d3f1e Backed out 5 changesets (bug 1794063, bug 1790873) for causing Linux spidermonkey builds bustages in Printer.h. CLOSED TREE
Backed out changeset c729aa80e73e (bug 1794063)
Backed out changeset 442a0de27b61 (bug 1790873)
Backed out changeset 6934f2978802 (bug 1790873)
Backed out changeset 296f6da7b6ed (bug 1790873)
Backed out changeset 01ddb562d770 (bug 1790873)
2024-01-10 01:18:55 +02:00
Steve Fink fab3527be1 Bug 1790873 - Move printf_stderr() to mozglue so it can be used within js/src r=glandium,nika
Differential Revision: https://phabricator.services.mozilla.com/D157354
2024-01-09 22:46:00 +00:00
Bas Schouten f9d9059cf6 Bug 1869835 - Part 1: Add code to emit ETW markers on Windows when a trace logger is enabled. r=canaltinova,profiler-reviewers
This adds code to emit ETW markers on windows. It supports all current
markers through a generic marker emitting schema. It also supports
additional payload and filtering for any markers that are updated to a
new compile-time marker schema system. Because of our abstraction layer
and cross-platform nature we have to manually create the TraceLogging
structs used and can't rely on their macro's, but this should give us a
very flexible and performant marker implementation on ETW.

Differential Revision: https://phabricator.services.mozilla.com/D196331
2023-12-21 18:17:40 +00:00
Yannis Juglaret 097cd7313d Bug 1869997 - Protect DbgHelp initialization helpers against reentrancy. r=glandium
EnsureDbgHelpInitialized() and EnsureSymInitialized() can currently
cause deadlocks through reentrancy in DEBUG and FUZZING builds, through
MOZ_ASSERT and MOZ_CRASH failures. This patch merges these functions
into a single InitializeDbgHelp() reentrancy-safe function.

Differential Revision: https://phabricator.services.mozilla.com/D196421
2023-12-21 10:42:07 +00:00
serge-sans-paille 9779ed6e69 Bug 1868949 - Add support for AVX VNNI in cpu detection and IntegerGemm r=marco
This make it possible to use the recently added changes in gemmology.

Differential Revision: https://phabricator.services.mozilla.com/D196425
2023-12-19 13:04:19 +00:00
serge-sans-paille 870a5f2055 Bug 1869497 - Introduce MOZ_NAKED to centralize all attributes we expect from naked r=glandium,win-reviewers,mhowell
In the fx codebase, we tend to use __attribute__((naked)) for plain
assembly functions with a C interface. Instrumenting these functions can
mess up this assembly, so we conservatively also want to prevent
instrumentation.

Differential Revision: https://phabricator.services.mozilla.com/D196154
2023-12-15 09:26:48 +00:00
Mike Hommey 619672a8e4 Bug 1867459 - Replace CPU_ARCH with TARGET_CPU. r=firefox-build-system-reviewers,sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D195157
2023-12-08 10:43:59 +00:00
serge-sans-paille 1c230a2cc3 Bug 1867863 - Make __chkstk wrapper as no - profile r=yjuglaret,glandium
Otherwise injected code, under temporal profiling, messes up the inline
assembly used by the wrapper. Ideally, we would use extended asm to
correctly state the constraint, but it is incompatible with naked
functions.

See discussion in https://github.com/llvm/llvm-project/issues/74573 for
the interaction between ``naked`` and profiling.

Differential Revision: https://phabricator.services.mozilla.com/D195315
2023-12-07 14:49:35 +00:00
Cristian Tuns 1a63fee6c2 Backed out 2 changesets (bug 1865795) for causing spidermonkeys bustages with WinHeaderOnlyUtils.h CLOSED TREE
Backed out changeset d7e12200a4a0 (bug 1865795)
Backed out changeset 9efc72d1ff06 (bug 1865795)
2023-12-06 13:16:53 -05:00
Yannis Juglaret 089b516210 Bug 1865795 - Collect single-step data upon utility process LoadLibraryOrCrash failure. r=rkraesig
In order to investigate LoadLibraryW failures in bug 1851889, we make
LoadLibraryOrCrash collect ntdll.dll single step data in utility
processes. The data will be available in the stack of the crashing
thread in nightly and early beta builds.

Single-step data collection only occurs after a first failure to load
the library, when we would be about to crash anyway. This ensures that
the patch cannot introduce extra unstability to LoadLibraryOrCrash.

Single-stepping through all ntdll instructions would record too many
steps, so we add the capability to record only call and ret
instructions. We apply this new capability for the single-step recording
of LoadLibraryW. Thanks to the detection of error state changes, this
should help us identify what path leads to a 0x241 last error in
bug 1851889.

Depends on D194203

Differential Revision: https://phabricator.services.mozilla.com/D194204
2023-12-06 16:53:40 +00:00
Yannis Juglaret 1e61d6e619 Bug 1865795 - Abstract away single-step data collection for reusability. r=rkraesig,win-reviewers
This patch makes the single-step data collection code that we
implemented for bug 1571516 reusable, while preserving its behavior.

We define a generic CollectSingleStepData function that embeds the
magic for starting to trigger single step exceptions and for acting upon
them.

We define a more specialized CollectModuleSingleStepData function which
can be reused if the purpose of single step data collection is to
monitor what paths are taken within a specific module. It stores the
collected data in stack, so that it can be accessed from crash reports.

This code is considered unstable and thus only available in Nightly and
early Beta and only used on paths that are known to crash already.

Differential Revision: https://phabricator.services.mozilla.com/D194203
2023-12-06 16:53:40 +00:00
Sylvestre Ledru ef35fa7374 Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,media-playback-reviewers,padenot
clang-format version 17.0.6 (taskcluster-QueHFUviQeyM8Y7r_d7MQQ)

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D195397
2023-12-04 10:09:36 +00:00
Matthew Newall 532e66cdf1 Bug 1862511 - Removed extra semicolons. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D194872
2023-11-29 06:53:59 +00:00
Paul Bone cbd484acb9 Bug 1859964 - --enable-phc doesn't always imply --enable-frame-pointers r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D191404
2023-10-24 00:52:34 +00:00
Sylvestre Ledru 1e776756dd Bug 1856795 - ride along: use = default; on some recently modified files r=emilio
More on:
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html

Command:
L=$(hg export -r tip|grep +++|cut -d/ -f2-)
./mach static-analysis check --checks="-*, modernize-use-equals-default" --fix $L

Differential Revision: https://phabricator.services.mozilla.com/D191016
2023-10-15 15:29:03 +00:00
Sylvestre Ledru d0f6c7fc66 Bug 1856795 - Remove redundant member init r=emilio
Done with:
./mach static-analysis check --checks="-*, readability-redundant-member-init" --fix .

https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-member-init.html

Differential Revision: https://phabricator.services.mozilla.com/D190002
2023-10-15 15:29:02 +00:00
Cristina Horotan 6a90f5eded Backed out 2 changesets (bug 1856795) for causing build bustage at BasicEvents.h CLOSED TREE
Backed out changeset 1d98b028923a (bug 1856795)
Backed out changeset eae2ac93e17c (bug 1856795)
2023-10-14 21:42:14 +03:00
Sylvestre Ledru c164bd9937 Bug 1856795 - ride along: use = default; on some recently modified files r=emilio
More on:
https://clang.llvm.org/extra/clang-tidy/checks/modernize/use-equals-default.html

Command:
L=$(hg export -r tip|grep +++|cut -d/ -f2-)
./mach static-analysis check --checks="-*, modernize-use-equals-default" --fix $L

Differential Revision: https://phabricator.services.mozilla.com/D191016
2023-10-14 17:34:27 +00:00
Sylvestre Ledru cc8a0ee742 Bug 1856795 - Remove redundant member init r=emilio
Done with:
./mach static-analysis check --checks="-*, readability-redundant-member-init" --fix .

https://clang.llvm.org/extra/clang-tidy/checks/readability/redundant-member-init.html

Differential Revision: https://phabricator.services.mozilla.com/D190002
2023-10-14 17:34:26 +00:00
Narcis Beleuzu 77c9e8cc2d Backed out changeset 161d82672606 (bug 1699328) for SM bustages on StackWalk.cpp . CLOSED TREE 2023-09-29 18:04:35 +03:00
Yannis Juglaret 03ae3c0acb Bug 1699328 - Avoid collisions with DbgHelp symbol sessions from other components when walking the stack on Windows. r=bobowen
SymInitialize can fail with ERROR_INVALID_PARAMETER if some other piece
of code has already called it with the handle value that we are
providing. Therefore it is not recommended to pass GetCurrentProcess()
to this function. Instead, this patch duplicates the handle for the
current process, so that we can pass a unique handle to the current
process and thus avoid collision with handle values that other
components might pass to SymInitialize.

Differential Revision: https://phabricator.services.mozilla.com/D189360
2023-09-29 13:28:50 +00:00
Jan Varga c458754592 Bug 1855134 - Move existing MOZ_TRY macros to a dedicated header file; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D189226
2023-09-28 20:46:07 +00:00
Yannis Juglaret 99b3d85e62 Bug 1843354 - Rewrite DbgHelp intialization in StackWalk.cpp. r=glandium
Stack walking can currently produce crashes when we fail to delay-load
DbgHelp.dll. This patch ensures that the library is already loaded in
the process before we try to call any delay-imported function from it.
The patch also improves thread-safety for our DbgHelp initialization
code.

Differential Revision: https://phabricator.services.mozilla.com/D188956
2023-09-27 07:15:23 +00:00
Masatoshi Kimura 01db6af0de Bug 1852806 - Remove macros for older Windows SDK from mozglue/. r=glandium
Depends on D188026

Differential Revision: https://phabricator.services.mozilla.com/D188027
2023-09-15 03:19:27 +00:00
Cosmin Sabou f8c16a8f94 Backed out 15 changesets (bug 1852806) for causing mda failures on test_video_low_power_telemetry.html. CLOSED TREE
Backed out changeset faea1f4cb9a9 (bug 1852806)
Backed out changeset 4db93c374f9b (bug 1852806)
Backed out changeset 7e40e0e04921 (bug 1852806)
Backed out changeset b0a66c4269ce (bug 1852806)
Backed out changeset 4ff3545936f9 (bug 1852806)
Backed out changeset 02c0a8eb3fd6 (bug 1852806)
Backed out changeset ae2c7b33acfb (bug 1852806)
Backed out changeset 2b89ba254a1a (bug 1852806)
Backed out changeset dfa4f73fc548 (bug 1852806)
Backed out changeset daffcc4c1877 (bug 1852806)
Backed out changeset 33855bcdf15e (bug 1852806)
Backed out changeset 694f29707f3e (bug 1852806)
Backed out changeset 1891eda22a59 (bug 1852806)
Backed out changeset 1b854941389c (bug 1852806)
Backed out changeset 2f7cfe04be59 (bug 1852806)
2023-09-15 09:48:27 +03:00
Masatoshi Kimura a69ee30021 Bug 1852806 - Remove macros for older Windows SDK from mozglue/. r=glandium
Depends on D188026

Differential Revision: https://phabricator.services.mozilla.com/D188027
2023-09-15 03:19:27 +00:00
Yannis Juglaret 9361f6d10e Bug 1836225 - Prevent stack walking deadlock with MOZ_PROFILER_STARTUP=1. r=handyman
We currently fail to guarantee that OnEndDllLoad is called on the same
gLoaderObserver as OnBeginDllLoad. We must implement additional
synchronization to prevent a race condition where a call to
LoaderPrivateAPIImp::SetObserver would come in between the two and
change gLoaderObserver.

This has led to issues when using MOZ_PROFILER_STARTUP=1 where we would
have sStackWalkSuppressions reach (size_t)-1 instead of 0, later
resulting in deadlock or missing stacks. See bug 1687510 comment 10 for
extra details.

Depends on D181436

Differential Revision: https://phabricator.services.mozilla.com/D181437
2023-09-13 14:32:51 +00:00
Yannis Juglaret 33453c44ab Bug 1836225 - Prevent stack walking deadlock on Windows aarch64. r=handyman,florian
On Windows aarch64 and x64 builds, stack walking relies on
RtlLookupFunctionEntry. This can lead to deadlock, which we avoid in x64
builds by adding stack walking suppressions. We must do the same in
aarch64 builds to avoid the same deadlock situation, but we are
missing some stack walk suppression paths. Let's fix that.

Differential Revision: https://phabricator.services.mozilla.com/D181435
2023-09-13 14:32:50 +00:00
Yannis Juglaret 8c54dbd6c0 Bug 1840164 - Pre-commit stack pages on background hang monitor thread. r=mhowell
When a first hang is detected, the BHMgr Monitor thread needs to commit
5 more pages of stack to run profiler_suspend_and_sample_thread, which
contains big stack variables. If that occurs while we are low on memory,
failure to commit stack pages can crash the process.

In bug 1716727, we have added delays on failed allocations to try
to avoid crashing the main process under low memory condition. These
delays could trigger the background hang monitor, which could in
turn crash the process, as they occur in a low memory condition where we
will likely fail to commit.

We can pre-commit the 5 pages of stack at thread initialization to
ensure that they will already be commited when we later need them. Or at
least, we can try to see if that works.

We do that with a wrapper for the __chkstk function. We add a new test
in the NativeNt cppunit test, to ensure that our wrapper function
behaves as expected.

Differential Revision: https://phabricator.services.mozilla.com/D182582
2023-09-12 12:27:46 +00:00
Yannis Juglaret 51e2ded885 Bug 1803334 - Skip execution of MovPushRet and PushRet in TestDllInterceptor if Intel CET is active. r=handyman
Bug 1596930 added support for detouring a pattern of code used by eScan
Internet Security Suite. The patch also added tests to make sure
that we correctly detour this pattern.

The pattern involves a PUSH instruction followed by a RET instruction.
This pattern is forbidden by Intel CET, which enforces at RET time that
we always return to an address that was pushed on the stack by a
prior CALL instruction. Executing the pattern thus crashes if Intel CET
is active.

If CET is active, we must thus skip the execution part of the test, or
the test crashes. We will still check that our detouring code
recognized the pattern and detoured it, but we will not run the detoured
pattern anymore under active Intel CET.

Differential Revision: https://phabricator.services.mozilla.com/D163468
2023-09-12 08:27:19 +00:00
Valentin Gosu ae314c254c Bug 1849518 - Add null after call to FileLocation::GetBaseFile r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D187537
2023-09-11 07:57:04 +00:00
serge-sans-paille 87f3a025e7 Bug 1850569 - Make it easier for the compiler to analyze mozilla::PrintfTarget::fill_n r=emilio
By coupling the state of `signwidth` and `sign`, we provide enough
information to the compiler for it to get rid of an extra mov as a
result of `-ftrivial-auto-var-init`.

Differential Revision: https://phabricator.services.mozilla.com/D187047
2023-08-29 19:33:46 +00:00
serge-sans-paille 4d45ebfda3 Bug 1845441 - get rid of global constructors in dom/html/HTMLInputElement.cpp r=mstange,dom-core,mccr8
This requires to make existing Decimal constructor constexpr, which is
incompatible with the weak linkage implied by MFBT_API.

As an alternative, provide a constexpr user-defined-literal that creates
a temporary DecimalLiteral that can be used by a new Decimal constexpr
constructor.

Differential Revision: https://phabricator.services.mozilla.com/D184552
2023-08-23 07:51:44 +00:00
Mike Hommey 0b2cb8d923 Bug 1849068 - Change how the missing pieces are setup for mingw. r=bobowen
Mingw trunk recently gained the missing pieces we were #define'ing.
Unfortunately, the way we were doing that is not compatible with them
being there now, so we change it so that it works with both the current
version of mingw we use, and trunk by:
- using a typedef for HREPORT instead of a #define, which is the same
  declaration as in trunk
- because PWER_SUBMIT_RESULT is a typedef with the underlying
  WER_SUBMIT_RESULT type defined inline, we can't typedef it.
  Fortunately, there's only one thing using PWER_SUBMIT_RESULT in the
  old version of werapi.h in mingw (WerReportSubmit), so we #define
  it to change its definition instead.
- WER_MAX_PREFERRED_MODULES_BUFFER is a #define without parens in
  the new header, which would conflict, but #define'ing to the same
  value as in the new header, without the parens makes it work.

Differential Revision: https://phabricator.services.mozilla.com/D186412
2023-08-17 19:26:07 +00:00
Jamie Nicol 8ca940e6ae Bug 1847928 - Add missing semicolon. r=fix CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D185807
2023-08-09 12:36:14 +00:00
Jamie Nicol 5b33bdd436 Bug 1843534 - Implement TimeStamp::NowLoRes() when CLOCK_MONOTONIC_COARSE is supported. r=glandium
We have discovered that clock_gettime(CLOCK_MONOTONIC) can be slow on
certain arm64 devices due to Linux kernel workarounds for CPU errata
avoiding the VDSO fast-path. Using CLOCK_MONOTONIC_COARSE is
unnaffected by these issues. This patch adds an implementation of
TimeStamp::NowLoRes() using the coarse clock, meaning that when lower
precision timestamps are adequate we do not pay the penalty of hitting
the slow path.

CLOCK_MONOTINIC_COARSE is Linux-specific, therefore its usage is
guarded by ifdefs as well as at runtime.

Differential Revision: https://phabricator.services.mozilla.com/D185004
2023-08-09 10:28:35 +00:00
Brad Werth 5c1d5c00b9 Bug 1845144 Part 2: Remove macOS available and builtin_available directives for always-supported versions of macOS. r=mac-reviewers,mstange,keeler,padenot
This also does minimal refactoring of cases where the directives were
protecting a simple expression that could be refactored back to the
callers.

Differential Revision: https://phabricator.services.mozilla.com/D184399
2023-08-02 02:26:14 +00:00
Iulian Moraru f8b5b0e9dc Backed out 3 changesets (bug 1845144) for causing py3 failures on test_toolchain_configure.py. CLOSED TREE
Backed out changeset 5168c7b1cf04 (bug 1845144)
Backed out changeset 6afda17fe413 (bug 1845144)
Backed out changeset d233c63f8121 (bug 1845144)
2023-08-01 06:06:53 +03:00
Brad Werth 4280325241 Bug 1845144 Part 2: Remove macOS available and builtin_available directives for always-supported versions of macOS. r=mac-reviewers,mstange,keeler
This also does minimal refactoring of cases where the directives were
protecting a simple expression that could be refactored back to the
callers.

Differential Revision: https://phabricator.services.mozilla.com/D184399
2023-07-31 22:18:09 +00:00
Noemi Erli 6e554b6268 Backed out changeset 3eba249fac11 (bug 1845441) for causing build bustages in Decimal.h 2023-07-27 18:08:11 +03:00
serge-sans-paille f65ac86b62 Bug 1845441 - get rid of global constructors in dom/html/HTMLInputElement.cpp r=mstange,dom-core,mccr8
This requires to make Decimal constructor constexpr.

Differential Revision: https://phabricator.services.mozilla.com/D184552
2023-07-27 11:40:18 +00:00
Masatoshi Kimura ccc00ef839 Bug 1844908 - Remove pre-Win10-specific codepath from mozglue/. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D184297
2023-07-26 08:52:52 +00:00
Natalia Csoregi 72a7b95555 Backed out 19 changesets (bug 1844908) for causing win bustage on AvailableMemoryTracker.cpp. CLOSED TREE
Backed out changeset 44c66f2233cf (bug 1844908)
Backed out changeset a8010ff534bf (bug 1844908)
Backed out changeset 225dc3aeb220 (bug 1844908)
Backed out changeset a1414db64e33 (bug 1844908)
Backed out changeset 7f1e0a527839 (bug 1844908)
Backed out changeset 6dc7646d1ffa (bug 1844908)
Backed out changeset 8d715131510f (bug 1844908)
Backed out changeset 4b6fe8a4e7db (bug 1844908)
Backed out changeset 2b419fabf1e8 (bug 1844908)
Backed out changeset af84e701d616 (bug 1844908)
Backed out changeset 2fa203969ec5 (bug 1844908)
Backed out changeset 2b3d2df94db3 (bug 1844908)
Backed out changeset 7eca452f5fd7 (bug 1844908)
Backed out changeset 3d961cf25afe (bug 1844908)
Backed out changeset 3c59143f8dd7 (bug 1844908)
Backed out changeset ab50c6c5425a (bug 1844908)
Backed out changeset b2c5636df673 (bug 1844908)
Backed out changeset e9a0f1c6760c (bug 1844908)
Backed out changeset 945ccbedde0b (bug 1844908)
2023-07-25 19:55:35 +03:00
Masatoshi Kimura 12a9d6878f Bug 1844908 - Remove pre-Win10-specific codepath from mozglue/. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D184297
2023-07-25 14:41:02 +00:00
Justin Link 003f31a5b7 Bug 1841352: Added (compile-time) unit tests for TimeStamp and TimeStampValue r=florian
Differential Revision: https://phabricator.services.mozilla.com/D182676
2023-07-12 14:56:20 +00:00
Justin Link bf9d3528f4 Bug 1841352: Make TimeStamp comparisons actually just be comparisons r=florian
In their previous versions, TimeStamp comparisons were unexpectedly
expensive on Windows. With this change, for example,
TimeoutManager::Timeouts::Insert() cost goes down by at least 12% in my
stress test.

Differential Revision: https://phabricator.services.mozilla.com/D182675
2023-07-12 14:56:20 +00:00
Yannis Juglaret 7046c056aa Bug 1841751 - Block instances of a malicious injected DLL causing startup crashes. r=gstoll
With bug 1832467 we have updated our Windows SDK version to 10.0.19041.
As a result, we now have a .retplne section in xul.dll, starting with
Firefox 115. This is a section with PAGE_NOACCESS protection, so
accessing it crashes the process.

Some injected DLLs read the whole memory space dedicated to the xul.dll
image to search for patterns in it. When they hit the .retplne section,
we will crash. This happened for a legit product in bug 1837242, but
also for a malicious DLL in bug 1841751. This is a startup crash.

This changeset blocks the variants of this malicious DLL we know, to
eliminate the associated startup crash spike. Because the DLL does not
use a fixed name, we block by matching on the combination of version
number + timestamp + image size, based on the values found in crash
reports. We additionnally check for a checksum of 0 and the absence of
debug information, both of which are uncommon for legit production-ready
DLLs; this thus helps further reduce the chances of collision.

Differential Revision: https://phabricator.services.mozilla.com/D183096
2023-07-10 13:59:16 +00:00