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

1926 Коммитов

Автор SHA1 Сообщение Дата
Nathan Froyd bec9f9b93a Bug 1223932 - delete guard object uses from the tree; r=jwalden
We don't need these macros anymore, for two reasons:

1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
   and friends.
2. clang now warns for the "temporary that should have been a declaration" case.

The extra requirements on class construction also show up during debug tests
as performance problems.

This change was automated by using the following sed script:

```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d

# Remove individual macros, carefully.
{
  # We don't have to worry about substrings here because the closing
  # parenthesis "anchors" the match.
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;

  # Remove the longer identifier first.
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}

# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```

and running:

```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```

Differential Revision: https://phabricator.services.mozilla.com/D85168
2020-07-30 14:22:38 +00:00
Byron Campen [:bwc] 40627a94b3 Bug 1652530: Suppress error due to libX11 not being instrumented. r=decoder
Depends on D84391

Differential Revision: https://phabricator.services.mozilla.com/D84404
2020-07-27 22:53:25 +00:00
Byron Campen [:bwc] 2dcd19dfc0 Bug 1651770: Suppress lock-order-inversion warning in CamerasChild. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D84391
2020-07-22 15:35:08 +00:00
Byron Campen [:bwc] e33a4d457a Bug 1653618: Suppression for racy flags field access in libusrsctp timer code. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D84367
2020-07-23 17:46:53 +00:00
Byron Campen [:bwc] 4f8381bd1f Bug 1648606: Suppress flag-checking race in libusrsctp's sctp_close. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D84366
2020-07-22 15:21:41 +00:00
Byron Campen [:bwc] 167e0884f5 Bug 1648604: Suppress benign race in libusrsctp's system_base_info. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D84364
2020-07-22 15:20:39 +00:00
Aaron Klotz 010f090320 Bug 1601792: Remove VMSharingPolicyShared's template parameters and use inline variables instead; r=handyman
Differential Revision: https://phabricator.services.mozilla.com/D83573
2020-07-15 17:43:30 +00:00
Gerald Squelart 36b452b4ba Bug 1654128 - Added missing #includes in baseprofiler/lul - r=canaltinova
The build would fail in non-unified mode and/or when adding/removing other files.

Differential Revision: https://phabricator.services.mozilla.com/D84272
2020-07-21 08:20:20 +00:00
Tyson Smith d478a0fb18 Bug 1651446 - Suppress TSan FFMpeg false positives. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D84048
2020-07-20 22:34:45 +00:00
Gerald Squelart 126afc3ab4 Bug 1653181 - Profiler feature 'audiocallbacktracing' controls Start/StopAudioCallbackTracing(), off by default - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D83749
2020-07-17 11:22:23 +00:00
Byron Campen [:bwc] d1af59c9fe Bug 1652174: Suppress TSan race error in libevent's event_debug_mode_too_late r=dminor
See https://github.com/libevent/libevent/issues/777

Depends on D83794

Differential Revision: https://phabricator.services.mozilla.com/D83825
2020-07-16 18:22:49 +00:00
Byron Campen [:bwc] 9b9dac6d1c Bug 1652499: Suppress TSan race detection in webrtc.org's Loggable. r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D83794
2020-07-16 18:23:09 +00:00
Randell Jesup fa153eb95d Bug 1642772: name processes in the profiler with eTLD+1 r=gerald,dveditz
Differential Revision: https://phabricator.services.mozilla.com/D77926
2020-07-15 18:00:54 +00:00
Sylvestre Ledru 1dbb63db2b Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D83258
2020-07-14 09:34:19 +00:00
Gerald Squelart 8049dc9c3e Bug 1651086 - Allow profiler_register_thread from thread with already-registered id - r=canaltinova
It is possible that some threads fail/forget to unregister themselves, in which case a registered thread id could get recycled by a later thread, which was not allowed before this patch.

Note: The thread name cannot currently be changed. We record a special marker with the new name, so the frontend could process it to split the thread track at that point.

We also record a marker when profiler_unregister_thread is called from an already-unregistered thread, this could help find reg/unreg mismatches or nesting in Firefox threads.

Differential Revision: https://phabricator.services.mozilla.com/D83293
2020-07-13 13:18:29 +00:00
Gerald Squelart 7610ff4326 Bug 1651086 - Handle tgkill failure - r=canaltinova
On Linux (including Android), it was assumed that a registered thread could always be suspended through `tgkill`.
However in some cases a thread may not be correctly unregistered, in which case this would trigger `MOZ_ASSERT` or wait forever in the following loop.

This will especially be needed when `profiler_{,un}register_thread()` are made less strict in the following patch.

Windows and Mac already handle suspension failures.

Differential Revision: https://phabricator.services.mozilla.com/D83292
2020-07-13 13:14:32 +00:00
Dana Keeler 24db0c88fc Bug 1629002 - unblock asepkcs.dll r=tkikuchi
When the osclientcerts module attempts to use client certificates and keys from
certain tokens, the Windows APIs will attempt to load asepkcs.dll. If Firefox
blocks this library, the keys won't be available. Thus, it needs to be
unblocked.

Due to the architecture of osclientcerts (namely, its dedicated single thread),
using asepkcs.dll via the Windows APIs shouldn't cause the crashes that led to
this module being blocked.

Differential Revision: https://phabricator.services.mozilla.com/D82788
2020-07-10 22:39:38 +00:00
Mike Hommey e2151e9228 Bug 1651903 - Stop preprocessing mozglue.def. r=froydnj
The file defines symbol renames to perform when linking. The list of
symbols to rename varies between an empty list and a full list depending
whether MOZ_MEMORY is set. Practically speaking, the variant with an
empty list is equivalent to not using a def-file at all.

This means we don't need to preprocess it any more, and we can just not
use a def-file when MOZ_MEMORY is not set.

As a side effect, this removes a rule from a Makefile.in.

Differential Revision: https://phabricator.services.mozilla.com/D83034
2020-07-10 15:27:10 +00:00
Csoregi Natalia c275f8f4bb Backed out changeset e106c60b7be4 (bug 1607212) for tsan fails on CacheEntry.cpp. CLOSED TREE 2020-07-09 20:43:30 +03:00
Christian Holler 2c66728ad6 Bug 1642906 - Updating TSan suppressions for performance counter fix. r=perry
Differential Revision: https://phabricator.services.mozilla.com/D82898
2020-07-09 15:06:45 +00:00
Christian Holler baf7486d56 Bug 1607212 - Update TSan suppressions for fixed Necko cache race. r=mayhemer
Differential Revision: https://phabricator.services.mozilla.com/D82899
2020-07-09 14:13:27 +00:00
Nick Alexander 1b75555dc7 Bug 1651136 - Part 1: Allow (and mark) certain xpcom/ headers as non-XPCOM. r=froydnj,bytesized
`nscore.h` includes `xpcom-config.h` which need not be generated for
non-XPCOM consumers.  In additon, `nullptr` and `bool` are C++
keywords, so at least some of the comments were dated.

The added include lines address transitive consumers of `nscore.h`.

Differential Revision: https://phabricator.services.mozilla.com/D82640
2020-07-08 22:57:26 +00:00
Mike Hommey 69fef46cab Bug 1651079 - Add necessary LOCAL_INCLUDES for StackWalk.cpp in memory/replace/logalloc/replay. r=rstewart
This requires a workaround for the use of __wrap_dladdr, which can't be
used in logalloc-replay. The workaround involves making __wrap_dladdr
expand to dladdr, but that makes the definition ElfLinker.h conflict
with the one in the Android system headers, so we change it to match,
and adjust ElfLinker.cpp accordingly.

And while here, fix the condition in mozglue/misc to match the condition
around including Linker.h in StackWalk.cpp itself.

Differential Revision: https://phabricator.services.mozilla.com/D82648
2020-07-08 21:37:24 +00:00
Gerald Squelart f9612141f1 Bug 1649776 - Use a separate mutex to access ProfileBufferChunkManagerWithLocalLimit::mUpdateCallback - r=canaltinova
To avoid deadlocks between the buffer main mutex and the externally-provided update callback code, the callback storage is now using a separate mutex, and both mutexes are never held at the same time.

Differential Revision: https://phabricator.services.mozilla.com/D82141
2020-07-06 12:38:06 +00:00
Mike Hommey 6b2fc90663 Bug 689178 - Remove crash-reporter hooks to externally provide library mappings. r=gsvelto
This is a rebase of a 7-year-old patch that was r=ted. The hooks are not
used as of bug 725231.

Differential Revision: https://phabricator.services.mozilla.com/D81026
2020-06-25 08:43:23 +00:00
Mike Hommey 200194bccd Bug 725231 - Stop reporting library mappings to the crash reporter. r=snorp
This is a rebase of a 7-year-old patch that was r=taras. Back then it
was waiting for breakpad changes that never were reviewed. However,
since then, bug 1486524 made the linker always map uncompressed files
directly, making it less necessary to report the library mappings to
the crash reporter, and bug 1291377 disabled the linker altogether on
Android 6.0+, which makes report_mapping unused at all in that case.

Differential Revision: https://phabricator.services.mozilla.com/D81025
2020-07-06 14:38:29 +00:00
Sylvestre Ledru caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Toshihito Kikuchi b80c6d24b1 Bug 1642626 - Part3: Handle a detour pattern of multple jumps. r=handyman
AVG AntiVirus hooks ntdll!NtMapViewOfSection by planting two JMP instructions,
jumping to a trampoline area first, then jumping to aswhook.dll.

```
ntdll!NtMapViewOfSection:
00007ffa`6d77c560 e9d33cfebf      jmp     00007ffa`2d760238

00007ffa`2d760238 ff25f2ffffff    jmp     qword ptr [00007ffa`2d760230] --> 00007ffa`541e2ad0

aswhook+0x2ad0:
00007ffa`541e2ad0 4055            push    rbp
00007ffa`541e2ad2 53              push    rbx
00007ffa`541e2ad3 56              push    rsi
```

With this patch, our detour can detour on top of that pattern.  The first part is
to remove the MEM_IMAGE check from IsPageAccessible.  The second part is to introduce
a loop in ResolveRedirectedAddress to resolve a chain of jumps.

Differential Revision: https://phabricator.services.mozilla.com/D81582
2020-07-02 16:43:14 +00:00
Toshihito Kikuchi fd9eb542c9 Bug 1642626 - Part2: Handle JAE and Opcode83 on x64 without REX Prefix. r=handyman
Depends on D81580

Differential Revision: https://phabricator.services.mozilla.com/D81581
2020-07-02 16:43:01 +00:00
Toshihito Kikuchi 31a3cc0614 Bug 1642626 - Part1: Take out jump detection from ReadOnlyTargetFunction. r=handyman
This patch moves the logics of jump detection from ResolveRedirectedAddress to
ReadOnlyTargetFunction to simplify ReadOnlyTargetFunction.

Differential Revision: https://phabricator.services.mozilla.com/D81580
2020-07-02 16:42:54 +00:00
Gerald Squelart 56736f31c3 Bug 1648507 - Distinguish pausing sampling only from pausing the whole profiler - r=canaltinova,perftest-reviewers,geckoview-reviewers,agi
The profiler can be "paused", which stops sampling, and since bug 1578329 stops markers as well.

Some test suites use pausing between tests (to better differentiate the tests, to keep the profiler ready to run, and to lower the amount of recorded data). But this causes problems with some tracing markers, as their matching ends have not been recorded (e.g., an end marker is missing), which show up as very loooong markers.
To solve this, we need to be able to pause sampling only, but keep recording markers.
But we still need to be able to pause the whole profiler, in particular before capturing, to avoid recording anything around that time.

This big patch is mostly mechanical changes: Wherever there are "Pause" and "Unpause/Resume" profiler functions, we add matching "PauseSampling" and "UnpauseSampling/ResumeSampling" functions that only impact the periodic sampling loop; And existing "Pause/Unpause/Resume" imply pausing sampling as well.
Exceptions and extra work:
- nsIProfiler (the JS API) already had `Pause/ResumeSampling()`, which misleadingly paused everything! Now they do the right thing, and we have `Pause/Resume()` as well.
- All tests using `Pause/ResumeSampling()` now use `Pause/Resume()`, except for Talos tests that only pause sampling between tests; Added some extra `Pause()` calls to pause everything before capturing profiles.
- GeckoJavaSampler doesn't handle pausing/resuming everything, this should be done in a follow-up bug.
- Sampling-only pauses are not streamed into JSON. If needed, we should follow-up, with potential work on the front-end to deal with these.

Differential Revision: https://phabricator.services.mozilla.com/D81492
2020-07-02 01:36:27 +00:00
Nathan Froyd 7c8d2e7c35 Bug 1649261 - stop cargo-culting mfbt headers in MmapFaultHandler.h; r=glandium
This header is using `MOZ_RAII` and `MFBT_ABI` from `Attributes.h` and
`Types.h`, respectively, so it should include those headers.

Differential Revision: https://phabricator.services.mozilla.com/D81600
2020-07-01 13:39:34 +00:00
Simon Giesecke 9364b353d4 Bug 1648010 - Remove NS_NAMED_LITERAL_CSTRING and NS_NAMED_LITERAL_STRING macros. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80631
2020-07-01 08:42:31 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Cameron Kaiser 1c860a4d74 Bug 1649653 - fix compilation on non-profiler platforms. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D81803
2020-07-01 03:03:56 +00:00
Jon Coppeard 15c4eee6dc Bug 1647702 - Broaden the race supression for compacting race between updating ObjectGroups and Shapes r=sfink
This is a data race, but I don't think it is causing problems at the moment.  It will go away when we get rid of ObjectGroups and is not trivial to fix, hence the decision to suppress it.

Differential Revision: https://phabricator.services.mozilla.com/D81327
2020-06-26 16:25:03 +00:00
Mike Hommey 77976c2cc1 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r=gerald
This was previously r=jchen and landed, but was backed out because some
Android tests were running on an unrealistically old Linux kernel. These
tests have been retired, so this can reland.

Differential Revision: https://phabricator.services.mozilla.com/D81278
2020-06-26 03:48:49 +00:00
Mike Hommey 219d10e7ce Bug 1648654 - Remove AutoObjectMapperFaultyLib. r=gerald
Bug 1486524 disabled the features from the custom linker that required
AutoObjectMapperFaultyLib. We can now rely on AutoObjectMapperPOSIX
instead.

Differential Revision: https://phabricator.services.mozilla.com/D81264
2020-06-26 01:26:56 +00:00
Mike Hommey 3a241e8832 Bug 1648340 - Only call GetAndroidSDKVersion() on Android. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81024
2020-06-25 10:59:19 +00:00
Mike Hommey a1386ca439 Bug 1648340 - Set LOCAL_INCLUDES properly for AutoObjectMapper.h. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81023
2020-06-25 10:59:32 +00:00
Simon Giesecke 0378cc49f9 Bug 1648384 - Make use of Result::propagateErr. r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D81031
2020-06-25 16:07:28 +00:00
Gerald Squelart 665b0d71d2 Bug 1630448 - MOZ_PROFILER_STARTUP_NO_BASE=1 prevents Base Profiler from running when MOZ_PROFILER_STARTUP is set - r=canaltinova
The Base Profiler is still recent and barely used, so it may contain some bugs.
With bug 1586939, the Base Profiler is now used more often because it is controlled the same way as the Gecko Profiler.
This has surfaced some intermittent issues, which pollute existing tests.

Until the root cause is found (see bug 1648325), setting `MOZ_PROFILER_STARTUP_NO_BASE=1` prevents the Base Profiler from running. This may be used where problems are visible, to diagnostic them and/or reduce them where needed.

Differential Revision: https://phabricator.services.mozilla.com/D81018
2020-06-25 07:13:43 +00:00
Gerald Squelart 8c64fc6990 Bug 1642726 - maybelocked_profiler_add_marker_for_thread - r=gregtatum
This function can be called whether the profiler mutex is locked or not. If locked, the provided pointer to the profiler mutex is used internally, otherwise the mutex will be locked as needed.

Differential Revision: https://phabricator.services.mozilla.com/D79412
2020-06-22 14:36:18 +00:00
Gerald Squelart b834db3337 Bug 1642726 - locked_profiler_get_backtrace - r=gregtatum
`locked_profiler_get_backtrace` can be used internally from places that already hold the profiler lock.

Differential Revision: https://phabricator.services.mozilla.com/D79411
2020-06-22 14:36:16 +00:00
Gerald Squelart ddbeeb188c Bug 1642726 - PSAutoTryLock - r=gregtatum
PSAutoTryLock attempts to lock the mutex, but gives up immediately if it's already locked.
This can be used in profiler functions that may be called from unknown code, to avoid deadlocks involving the profiler mutex and another mutex that could be indirectly used by the profiler itself.

Differential Revision: https://phabricator.services.mozilla.com/D79410
2020-06-22 21:30:06 +00:00
Ted Campbell 5f98fae13b Bug 1645469 - Add profiler subcategories for SpiderMonkey JITs. r=jandem,gerald
In the JIT frame sampler, we apply the appropriate category in addition to
the "implementation" field. For JS frames (IS_JS_FRAME), we identify as
either BaselineInterpreter or Interpreter. Note that JS_Other still applies
to various places we enter SpiderMonkey outside of RunScript.

Differential Revision: https://phabricator.services.mozilla.com/D79524
2020-06-15 14:56:50 +00:00
Ted Campbell 6aa5132146 Bug 1645464 - Use a shared ProfilingCategoryList.h r=gerald,froydnj
Replace the duplicate lists in mozglue/baseprofiler/public and js/public with
a shared list. Add this list to both moz.build files so it is published twice
which simplifies supporting different standalone configurations.

Differential Revision: https://phabricator.services.mozilla.com/D79520
2020-06-15 13:59:55 +00:00
Paul Adenot bdfef650d8 Bug 1626918 - Add categories for real-time media tracing. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D78509
2020-06-12 13:13:53 +00:00
Toshihito Kikuchi 5002a0f0f7 Bug 1407712 - Block more versions of guard64.dll of Comodo Firewall. r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D79238
2020-06-11 14:36:44 +00:00
Ted Campbell b3e185db5d Bug 1644218 - Add blinterp implementation tracking to profiler r=jandem,gerald
Introduce an IS_BLINTERP_FRAME flag to ProfilingStackFrame to distinguish C++
and Baseline interpreter frames. In the profile data this sets the
"implementation" to "blinterp".

Differential Revision: https://phabricator.services.mozilla.com/D78725
2020-06-09 12:27:15 +00:00
Ted Campbell 393ca29b50 Bug 1644218 - Cleanup ProfilingStackFrame flags r=gerald
Round the number of reserved flag bits up to 16. This leaves 16-bits for the
category (so 64k subcategories). Also make the baseprofiler consistent.

Differential Revision: https://phabricator.services.mozilla.com/D78724
2020-06-08 23:46:16 +00:00
Toshihito Kikuchi b0d58c5da3 Bug 1637984 - Part 2: Block PavLspHook64.dll on Win7 and older. r=gcp
Depends on D78414

Differential Revision: https://phabricator.services.mozilla.com/D78415
2020-06-08 15:43:30 +00:00
Toshihito Kikuchi 686269d213 Bug 1637984 - Part 1: Introduce a new blocklist flag BLOCK_WIN7_AND_OLDER. r=mhowell
This patch introduces a new flag `BLOCK_WIN7_AND_OLDER` with which the blocklist
blocks a module on Win7 or older.

Differential Revision: https://phabricator.services.mozilla.com/D78414
2020-06-05 16:50:51 +00:00
Botond Ballo e49f09d719 Bug 1642884 - Protect all access to Axis::mVelocity with a mutex. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D78556
2020-06-08 16:14:29 +00:00
Toshihito Kikuchi 411136143a Bug 1643200 - Rename BLOCK_WIN8_ONLY into BLOCK_WIN8_AND_OLDER. r=mhowell
`BLOCK_WIN8_ONLY` was introduced by bug 1268470 to block klsihk64.dll only on
Win8.  However, a new blocklist (bug 1445025) does wrong comparison on the OS
version, thus `BLOCK_WIN8_ONLY` has blocked modules on all platforms older than
Win10 including Win7 and Win8.1.

This patch corrects OS comparison and changes the flag to `BLOCK_WIN8_AND_OLDER`
to make it more handy.  We also remove `BLOCK_WIN8PLUS_ONLY` which is never used.

Differential Revision: https://phabricator.services.mozilla.com/D78411
2020-06-05 17:12:57 +00:00
Botond Ballo 117ae10a93 Bug 1642884 - Temporarily suppress data race in Axis::UpdateWithTouchAtDevicePoint. r=fix CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D78176
2020-06-03 23:51:28 +00:00
Kevin Jacobs e11c127de7 Bug 1643087 - Extend TSAN false-positive suppression to BadCertAndPinningServer. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D78116
2020-06-03 18:16:36 +00:00
Christian Holler 32a40ee911 Bug 1642957 - Remove stale entries from the TSan suppression list. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78031
2020-06-03 12:50:28 +00:00
Christian Holler 7185a28216 Bug 1642653 - Suppress TSan mutex false positive in a11y GTK code. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77821
2020-06-02 16:25:04 +00:00
Ricky Stewart 0bbaac721b Bug 1641693 - Replace a bunch of uses of `GENERATED_FILES` with the `GeneratedFile` template r=necko-reviewers,geckoview-reviewers,aklotz,dragana,froydnj
Also update documentation to suggest using the `GeneratedFile` template rather than directly referencing `GENERATED_FILES` where possible.

Differential Revision: https://phabricator.services.mozilla.com/D77496
2020-06-01 16:00:28 +00:00
Gerald Squelart 315b834a0e Bug 1586939 - Remove "_BASE" from most Base Profiler env-vars - r=gregtatum a=reland CLOSED TREE
Now both profilers are controlled by the same environment variables, e.g.
"MOZ_PROFILER_STARTUP" to run both profilers at startup.

The only remaining Base Profiler-specific commands are:
- MOZ_BASE_PROFILER_HELP, because the Base Profiler doesn't have the same
  capabilities as Gecko, so it may display different available features.
- MOZ_BASE_PROFILER_LOGGING, because the Base Profiler doesn't have access to
  MOZ_LOG (both the env-var and the C++ macros).

Differential Revision: https://phabricator.services.mozilla.com/D54449
2020-05-28 03:39:32 +00:00
Gerald Squelart 26045e2d2c Bug 1586939 - Skip LoadLibraryEx if we're likely to hit the crash in nvd3d9wrap{,x}.dll - r=gregtatum a=reland CLOSED TREE
This is a port of bugs 1607574, 1617188, 1635823 to the Base Profiler.

Differential Revision: https://phabricator.services.mozilla.com/D77014
2020-05-28 03:39:07 +00:00
Razvan Maries cfc05656e9 Backed out 2 changesets (bug 1586939) for build bustages on ProtocolFuzzer.h. CLOSED TREE
Backed out changeset 1f66a6a498e5 (bug 1586939)
Backed out changeset 6e1337767992 (bug 1586939)
2020-05-28 07:38:04 +03:00
Gerald Squelart 3f2fbaa757 Bug 1586939 - Remove "_BASE" from most Base Profiler env-vars - r=gregtatum
Now both profilers are controlled by the same environment variables, e.g.
"MOZ_PROFILER_STARTUP" to run both profilers at startup.

The only remaining Base Profiler-specific commands are:
- MOZ_BASE_PROFILER_HELP, because the Base Profiler doesn't have the same
  capabilities as Gecko, so it may display different available features.
- MOZ_BASE_PROFILER_LOGGING, because the Base Profiler doesn't have access to
  MOZ_LOG (both the env-var and the C++ macros).

Differential Revision: https://phabricator.services.mozilla.com/D54449
2020-05-28 03:39:32 +00:00
Gerald Squelart ff560ee2fd Bug 1586939 - Skip LoadLibraryEx if we're likely to hit the crash in nvd3d9wrap{,x}.dll - r=gregtatum
This is a port of bugs 1607574, 1617188, 1635823 to the Base Profiler.

Differential Revision: https://phabricator.services.mozilla.com/D77014
2020-05-28 03:39:07 +00:00
Greg Tatum 3802fc82a4 Bug 1640274 - Remove the unused TrackOptimizations profiler; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D76854
2020-05-27 22:08:49 +00:00
Greg Tatum ca8ec92461 Bug 1571086 - Remove privacy feature from the profiler; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D76853
2020-05-27 22:07:57 +00:00
Toshihito Kikuchi a2f2d585ea Bug 1509748 - Do not touch ntdll's PE header directly if EAF+ is enabled. r=mhowell,mstange
If EAF+ is enabled for firefox.exe, the process does not launch because we parse
the PE headers of ntdll.dll at startup, which is prohibited by EAF+.

With this patch, we skip two operations when EAF+ is enabled.

The first one is to cache ntdll's IAT at startup.  Because EAF+ is expected to
prevent an injected module from parsing PE headers and modifying IAT, we can skip
this caching safely.

The second one is to load ntdll's debug information for the profiler.  With this
patch, the profiler's callstack will not show a raw address instead of a symbol
name.  It's a bad side effect, but much better than startup crash.

Differential Revision: https://phabricator.services.mozilla.com/D76959
2020-05-27 21:48:35 +00:00
Gerald Squelart cf61fd1e10 Bug 1641122 - Fix 32-bit Android profiler buffer size default - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D77016
2020-05-27 19:41:46 +00:00
Andrew McCreight 45fd231644 Bug 1641091, part 3 - Remove some methods that always return null. r=froydnj
GetConstructedEventTarget and GetSpecificMessageEventTarget always return
null. The idea was that subclasses could override them, but nobody does any
more.

Differential Revision: https://phabricator.services.mozilla.com/D76984
2020-05-27 13:58:39 +00:00
Markus Stange d069f4cc74 Bug 1635567 - Remove HAVE_UNSORTED_EXIDX code, which worked around a bug in Android ICS which is no longer supported. r=jld
This code was not being built any more.
GeckoView requires Android OS version 4.3 (API Level 18). I'm not sure what the
corresponding ANDROID_VERSION macro constant for API Level 18 is, but it's
definitely higher than 16.

Differential Revision: https://phabricator.services.mozilla.com/D73940
2020-05-23 00:57:58 +00:00
Gerald Squelart f2401ecda3 Bug 1464506 - Record FileIO markers on all threads - r=canaltinova
In addition to the existing "mainthreadio" feature, we now have:
- "fileio" to also capture file I/O from other profiled threads.
- "fileioall" to also capture file I/O from all threads (even unregistered threads).
- "noiostacks" to prevent capturing stack traces for "io" markers.
These are all off by default, except for `MOZ_PROFILER_STARTUP=1`.

Differential Revision: https://phabricator.services.mozilla.com/D75764
2020-05-25 08:58:47 +00:00
Gerald Squelart 271f2b32ae Bug 1464506 - Statically check profiler feature numbers - r=canaltinova
This is a simple compile-time check that the feature numbers go from 0 to N-1, to prevent some mistakes when updating feature lists.

Differential Revision: https://phabricator.services.mozilla.com/D75763
2020-05-25 08:57:44 +00:00
Gerald Squelart 3147b9d1d6 Bug 1464506 - profiler_add_marker_for_mainthread records markers from any thread into the main thread track - r=canaltinova
Some markers may be more useful when gathered into a single track, and the main thread is ideal because it's almost always present.

Differential Revision: https://phabricator.services.mozilla.com/D75760
2020-05-25 08:57:31 +00:00
Gerald Squelart 2502f01aa8 Bug 1464506 - CorePS records the main thread id - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D75759
2020-05-25 08:57:29 +00:00
Gerald Squelart 7f21bc7ade Bug 1464506 - Improved StaticBaseProfilerStats, added max duration - r=canaltinova
Made StaticBaseProfilerStats a proper class, with more explicit types for measurements and printfs.
Also added the maximum duration in a set, which can be useful to see what the worst case of some code may be.

(Reminder: This code is not built by default, uncomment `#  define PROFILER_RUNTIME_STATS` above to enable it.)

Differential Revision: https://phabricator.services.mozilla.com/D75758
2020-05-25 08:55:55 +00:00
Gabriele Svelto 64e6f96111 Bug 1639537 - Unblock OpenSC 0.20 injected DLL r=tkikuchi
This effectively reverts bug 1621804.

Differential Revision: https://phabricator.services.mozilla.com/D76488
2020-05-22 17:06:44 +00:00
Gerald Squelart a88e6ae204 Bug 1594268 - profiler_add_marker_for_thread takes payload by const& - r=canaltinova
Instead of accepting a `UniquePtr<ProfilerMarkerPayload>`, `profiler_add_marker_for_thread` now takes it by `const ProfilerMarkerPayload&`.
All callers can now create the payload on the stack, or as a temporary object. This saves a memory alloc+free for each call.

Differential Revision: https://phabricator.services.mozilla.com/D75912
2020-05-19 23:07:54 +00:00
Toshihito Kikuchi 0798271b37 Bug 1576728 - Block more versions of oly[64].dll and pdzipmenu[32|64].dll. r=gcp
Since we learned these modules are a shell exntension, blocking in the browser
process should suffice.

Differential Revision: https://phabricator.services.mozilla.com/D75606
2020-05-18 11:53:09 +00:00
alwu fd606724bc Bug 1612557 - part4 : use `Media` category for markers r=bryce,gerald,canaltinova
This patch will do :
- add `Media` markers in related codes
- implement `MediaSampleMarkerPayload` to record the media sample

The advantage of doing so :
- using markers can help us know what happens on the media by a glance without expanding the call stack
- adding sample markers allows us compare the speed of decoding sample in `MediaDecoderStataMachine` and rendering sample in `VideoSink`

Differential Revision: https://phabricator.services.mozilla.com/D74174
2020-05-16 19:58:25 +00:00
alwu 0bccc7a4cf Bug 1612557 - part2 : create a sub-category 'Cubeb'. r=padenot
This patch will do :
- create a sub-category `Cubeb`
- add  `Cubeb` profiling labels in related codes

The advantage of doing so :
- allow us to know the percentage of time respectively we spend on cubeb and non-cubeb codes

More details :
The profiling code would include `<atomic>` which is C++ only, so I can't use the label in `cubeb.c` directly. Instead, I add labels on the `AudioStream` and `AudioCallbackDriver` where we would call cubeb related methods.

Differential Revision: https://phabricator.services.mozilla.com/D74172
2020-05-11 14:08:10 +00:00
alwu 8dda6be6ef Bug 1612557 - part1 : create a profiling category `Media`. r=bryce,gerald
This patch will do :
- create a profiling category `Media`
- add  `Media` profiling labels in related codes

The advantage of doing so :
- allow us to easily see what operations are related to media playback from the profiled report

More details :
According to the description in the `ProfilingCategory.h`, `topmost profiler label frame in the label stack determines the category pair of that stack`. Therefore, most labels I added are the first task would run on the thread, in order to ensure all its following tasks can be marked as the media playback label as well.

Differential Revision: https://phabricator.services.mozilla.com/D74171
2020-05-12 17:35:19 +00:00
Gerald Squelart 7688ca137b Bug 1637895 - Fix TestBaseProfiler build when MOZ_GECKO_PROFILER in not #defined - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D75494
2020-05-15 12:19:00 +00:00
Jason Kratzer 1d45f1d433 Bug 1637707 - Suppress LibEGL_mesa.so required by xvfb. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D75327
2020-05-14 21:37:29 +00:00
Jared Wein 2fe007a4ac Bug 1634538 - Add BLEtokenCredentialProvider.dll to the DLL blocklist for causing crashes while opening the Windows Hello authentication prompt. r=tkikuchi
Differential Revision: https://phabricator.services.mozilla.com/D73342
2020-05-12 19:00:19 +00:00
Gerald Squelart e1d51db19a Bug 1635570 - Cut too-long label dynamic strings and add ellipsis - r=canaltinova
If a label contains a dynamic string that's too long (512 characters or more), instead of just replacing it with "(too long)", we now cut it down to the maximum size, with an ellipsis at the end.

Added test for that in gtest. Also added nearby test for empty strings.

Differential Revision: https://phabricator.services.mozilla.com/D74378
2020-05-12 01:13:17 +00:00
Chris Fronk af8a02cc9d Bug 1512991 - Add JsonWriteFunc::Write to take string length. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72560
2020-05-08 16:24:31 +00:00
Gerald Squelart 668492b4ef Bug 1632750 - Recycle chunks that are destroyed through DestroyChunksAtOrBefore or the local limit - r=canaltinova
Whenever chunks are about to be destroyed, we try to keep one or two alive, to hopefully fulfill the next request, thereby avoiding a deallocation+allocation pair.

Differential Revision: https://phabricator.services.mozilla.com/D72370
2020-05-08 03:35:57 +00:00
Gerald Squelart 3292ac76d9 Bug 1632750 - Make ProfileBufferChunkManagerWithLocalLimit a ProfileBufferControlledChunkManager - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D72363
2020-05-08 03:34:28 +00:00
Gerald Squelart 2cf1bef331 Bug 1632750 - ProfileBufferChunkManagerWithLocalLimit doesn't need to track chunk metadata sizes - r=canaltinova
The chunk metadata size is tiny (less than 100 bytes) compared to the buffer size (1MB by default), so it's fine to ignore it while dealing with cross-Firefox limits.

Differential Revision: https://phabricator.services.mozilla.com/D72558
2020-05-08 03:33:29 +00:00
Gerald Squelart a09a699a12 Bug 1632750 - ProfileBufferControlledChunkManager - r=canaltinova
Interface class for a chunk manager that can be controlled: It will provide updates about chunks, and release chunks on command.

Differential Revision: https://phabricator.services.mozilla.com/D72362
2020-05-08 03:44:34 +00:00
Markus Stange fcfda28406 Bug 1635803 - Make sure <cstdlib> is included before mozalloc.h, to work around bug 1635968. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D74154
2020-05-06 22:57:05 +00:00
Gerald Squelart 9eb780f5ef Bug 1635338 - profiler_is_locked_on_current_thread() now also checks for the buffer lock - r=gregtatum,canaltinova
profiler_is_locked_on_current_thread() is used to help users avoid calling `profiler_...` functions when the profiler may already have a lock in place, which would prevent a 2nd recursive lock (resulting in a crash or a never-ending wait).
So we must return `true` for any of:
- The main profiler mutex, used by most functions, and/or
- The buffer mutex, used directly in some functions without locking the main mutex, e.g., marker-related functions.

Differential Revision: https://phabricator.services.mozilla.com/D73789
2020-05-06 12:45:40 +00:00
Gerald Squelart a58e3ee5a8 Bug 1635338 - ProfileChunkedBuffer::IsThreadSafeAndLockedOnCurrentThread - r=gregtatum,canaltinova
Expose `ProfileChunkedBuffer`'s mutex (if present), so that potential callers can avoid recursive calls that would lock or crash.

Differential Revision: https://phabricator.services.mozilla.com/D73788
2020-05-06 12:44:44 +00:00
Gerald Squelart f504b757de Bug 1635338 - baseprofiler::profiler_is_locked_on_current_thread - r=gregtatum,canaltinova
Mimic Gecko Profiler's `profiler_is_locked_on_current_thread()` in Base Profiler.

Differential Revision: https://phabricator.services.mozilla.com/D73787
2020-05-06 12:44:22 +00:00
Gerald Squelart 368c811625 Bug 1635338 - BaseProfilerMutex::IsLockedOnCurrentThread - r=gregtatum,canaltinova
Make `BaseProfilerMutex::mOwningThreadId` non-optional, and use it in `IsLockedOnCurrentThread()`, which is similar to the one in Gecko Profiler.
Add related `BaseProfilerMaybeMutex::IsActivatedAndLockedOnCurrentThread()`.

Differential Revision: https://phabricator.services.mozilla.com/D73786
2020-05-06 12:42:37 +00:00
Greg V e65e9412b0 Bug 1634205 - Support Gecko Profiler and Base Profiler on FreeBSD r=mstange
- supports amd64 and arm64 (aarch64)
- uses LUL for stack walking

Differential Revision: https://phabricator.services.mozilla.com/D73162
2020-05-06 17:44:19 +00:00
Ricky Stewart 4d4b22b3de Bug 1599658 - Delete previous definition of py_action in Makefiles. Now py_action calls into Python 3 and py3_action doesn't exist. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72487
2020-05-05 20:04:30 +00:00
Markus Stange 16fc9519a1 Bug 1578726 - Stop looking for non-existent EnterJIT frames. r=gerald
At the time this code was written, JavaScript JIT entry trampolines were
emitting EnterJIT label frames that carried a stack address. From this stack
address, register values could be recovered that would allow native stack
unwinding to resume after getting lost in JIT code.

The EnterJIT label frame was removed in bug 1057082.

Differential Revision: https://phabricator.services.mozilla.com/D73939
2020-05-05 22:53:45 +00:00
Markus Stange 7c4a6b32f3 Bug 1634784 - Remove #ifdef MOZ_GECKO_PROFILER wrappers in mozglue/baseprofiler cpp files, and reorder includes. r=gerald
I apologize for mixing multiple types of changes in this patch. The mix is probably harder to review than necessary.

Because of the way these .cpp files are listed in mozglue/baseprofiler/moz.build,
they are only built when MOZ_GECKO_PROFILER is set. So the #ifdef MOZ_GECKO_PROFILER
wrapper is now unnecessary.
Removing this wrapper has many knock-on effects on other lines in these files
due to preprocessor line indentation.

As I was removing the #ifdefs, I was reordering includes as well, to follow the
include order laid out on https://google.github.io/styleguide/cppguide.html#Names_and_Order_of_Includes ;
namely, system headers should go before "your project's" .h files.

I also removed the BaseProfiler.h include from some files but not from all.
In the past, the BaseProfiler.h include served the purpose of picking up the
MOZ_BASE_PROFILER #define, and it's no longer needed for that reason.
There are probably lots of now-unnecessary BaseProfiler.h includes left.

Differential Revision: https://phabricator.services.mozilla.com/D73527
2020-05-05 22:00:49 +00:00
Markus Stange 6725e6df9a Bug 1634784 - Remove MOZ_BASE_PROFILER and replace it with MOZ_GECKO_PROFILER everywhere. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D73526
2020-05-05 21:44:11 +00:00
Gerald Squelart bccea8601e Bug 1571171 - Clamp profiler capacity to allowed values - r=canaltinova
The profiler can be given any power of two, but there were no safety checks to ensure that the buffer had a minimum workable capacity (to hold at least 4 chunks, each capable of holding at least one stack sample), and also to prevent large buffers that could break the currently-supported 2GiB limit.

This fixes the issue with test_merged_stacks.js, which was requesting a too-small buffer. (This started when we switched to the chunk-based buffer, because the profiler was blindly using the provided number as maximum, and dividing that size by 4 for each chunk, which was not enough to hold a full sample in some builds.)

Differential Revision: https://phabricator.services.mozilla.com/D73212
2020-05-04 12:49:30 +00:00
Toshihito Kikuchi 62788db1e7 Bug 1620118 - Part 1: Add ProcessedModuleLoadEvent::mIsDependent. r=aklotz
This patch adds a boolean field `mIsDependent` indicating whether a module was
loaded via the executable's Import Directory Table or not.

This patch also partially reverts Bug 1587539, moving a logic to detect Import
Directory tampering to `PEHeaders`'s ctor.  With this, we can skip generating
a map of the executable's dependent modules if no tampering is detected.

Differential Revision: https://phabricator.services.mozilla.com/D66274
2020-05-04 17:20:51 +00:00
Markus Stange 19bb155e7d Bug 1634782 - Enable MOZ_BASE_PROFILER on MingW. r=gerald
Now the base profiler is enabled on all platforms that also have MOZ_GECKO_PROFILER.

Differential Revision: https://phabricator.services.mozilla.com/D73513
2020-05-01 23:11:27 +00:00
Bogdan Tara f137fa0613 Backed out 6 changesets (bug 1632916, bug 1599658, bug 1633037, bug 1633039, bug 1633016, bug 1632920) for SA bustages CLOSED TREE
Backed out changeset 332ce0963b4e (bug 1633039)
Backed out changeset a9904cbc40d9 (bug 1633037)
Backed out changeset d06b0ec349f8 (bug 1599658)
Backed out changeset 8fd300cad80f (bug 1633016)
Backed out changeset f8820941c703 (bug 1632916)
Backed out changeset ac9c2c8746ed (bug 1632920)
2020-05-02 01:49:29 +03:00
Ricky Stewart 0daacc12c3 Bug 1599658 - Delete previous definition of py_action in Makefiles. Now py_action calls into Python 3 and py3_action doesn't exist. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D72487
2020-04-30 15:27:13 +00:00
Toshihito Kikuchi e83bcb5130 Bug 1630281 - Cache the executable's IAT for ntdll.dll before COM initialization. r=mhowell
When the browser process starts a sandbox process, we copy the executable's IAT
for ntdll.dll into the new process to prevent DLL injection via IAT tampering as
the launcher process does.  However, if IAT has been modified by a module injected
via `SetWindowHookEx`, the browser process cannot copy IAT because a modified IAT
is invalid in a different process, failing to start any sandbox processes.

The proposed fix is to cache IAT before COM initialization which may load
modules via `SetWindowHookEx` for the first time in the process.

Differential Revision: https://phabricator.services.mozilla.com/D73303
2020-04-30 18:26:18 +00:00
Gabriele Svelto c1b4ec0073 Bug 1581092 - Prevent the Hancom Office shell extension from crashing Firefox r=tkikuchi
Differential Revision: https://phabricator.services.mozilla.com/D72481
2020-04-28 14:35:57 +00:00
Arash Fotouhi d9cb60b972 Bug 1629428 - Remove empty string in static_assert - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D71876
2020-04-22 18:08:58 +00:00
Christian Holler 92688ae811 Bug 1615569 - Add TSan suppression for global race in freebl. r=jcj
Differential Revision: https://phabricator.services.mozilla.com/D72628
2020-04-27 16:52:25 +00:00
Jon Coppeard 2997ecc2fc Bug 1619162 - Suppress TSAN race involving off-thread parsing r=decoder
This race involves off-thread parsing and will go away when Stencil lands.

Differential Revision: https://phabricator.services.mozilla.com/D72590
2020-04-27 14:36:33 +00:00
Emilio Cobos Álvarez 5420284414 Bug 1632972 - Fix logic to detect the main executable. r=mstange
This is how my mapfile looks like:

  5587df936000-5587df96b000 r--p 00000000 fd:02 21584889                   /home/emilio/src/moz/gecko/obj-debug/dist/bin/firefox
  5587df96b000-5587df9ec000 r-xp 00035000 fd:02 21584889                   /home/emilio/src/moz/gecko/obj-debug/dist/bin/firefox
  5587df9ec000-5587df9ed000 r--p 000b6000 fd:02 21584889                   /home/emilio/src/moz/gecko/obj-debug/dist/bin/firefox
  5587df9ed000-5587df9ee000 rw-p 000b7000 fd:02 21584889                   /home/emilio/src/moz/gecko/obj-debug/dist/bin/firefox

Note how the executable bit, which is the only one we look at, and which
is where we get exeExeAddr from (0x5587df96b000 in this case) is in the
middle of the executable, but the library will span all four ranges.

Check for whether the library _contains_ the start address of the
executable region instead of whether it starts with it.

Differential Revision: https://phabricator.services.mozilla.com/D72504
2020-04-25 10:11:28 +00:00
Gerald Squelart d6c1b933f1 Bug 1630872 - Quick-moving InChunkPointer with `ProfileBufferBlockIndex` - r=canaltinova
As opposed to `ProfileBufferIndex` (no "Block"), `ProfileBufferBlockIndex` is only supposed to point at a valid block start.
If we trust this assumption, it allows for quick access to the given block index inside the buffer, as we don't need to read blocks one by one until we reach the given position.

There are still safety checks (MOZ_ASSERTs in DEBUG builds) to verify that block indices are correctly used.

Differential Revision: https://phabricator.services.mozilla.com/D71502
2020-04-24 06:21:46 +00:00
Gerald Squelart a11580da0f Bug 1630872 - Replace uses of BlocksRingBuffer with ProfileChunkedBuffer in Base Profiler - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D71883
2020-04-24 06:24:44 +00:00
Gerald Squelart c00a525a32 Bug 1630872 - Removed 'BlocksRingBuffer' from some Base Profiler platform variables - r=canaltinova
Renamed some variables to be more generic. Their type is going to change in the next patch, and that type doesn't need to be in the names; also it will make the next patch easier to review.

Differential Revision: https://phabricator.services.mozilla.com/D71882
2020-04-24 06:21:10 +00:00
Gerald Squelart 3a06f23a20 Bug 1630872 - Replace InChunkBuffer::operator bool() and operator!() with IsNull() - r=canaltinova
`explicit operator bool()` and `operator!()` were cute ways to make `InChunkBuffer` quack like a pointer when testing if it's effectively null.
But after some experience, and since `InChunkPointer` will not be used in generic code where pointers would be accepted, I now think that it's better to be clearer about it and use an explicit `IsNull()`.

Differential Revision: https://phabricator.services.mozilla.com/D71499
2020-04-24 06:19:39 +00:00
Gerald Squelart 6814c95c04 Bug 1630872 - ProfileChunkedBuffer Put* functions provide a Maybe<ProfileBufferEntryWriter> - r=canaltinova
Same as with `BlocksRingBuffer`: Instead of a potentially-null pointer to a
`ProfileBufferEntryWriter`, we are now providing a
`Maybe<ProfileBufferEntryWriter>`, which is safer.

Differential Revision: https://phabricator.services.mozilla.com/D71287
2020-04-24 06:19:27 +00:00
Gerald Squelart 525010089c Bug 1630872 - BlockRingBuffer Put* functions provide a Maybe<ProfileBufferEntryWriter> - r=canaltinova
Instead of a potentially-null pointer to a `ProfileBufferEntryWriter`, we are now providing a `Maybe<ProfileBufferEntryWriter>`, which is safer.

Differential Revision: https://phabricator.services.mozilla.com/D71286
2020-04-24 06:19:09 +00:00
Nazım Can Altınova e8ef58fd4d Bug 1623770 - Return early if failed to allocate a memory in CopyDataIntoLazilyAllocatedBuffer. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D72131
2020-04-23 11:42:45 +00:00
Markus Stange ddece4ba4f Bug 1630895 - Infer categories for Java frames. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D71383
2020-04-17 23:30:10 +00:00
Gerald Squelart 97cb0a90bd Bug 1626837 - ProfileChunkedBuffer (de)serialization - r=canaltinova
This is needed to embed a small buffer (e.g., containing one backtrace attached
to a marker) into a bigger buffer (e.g., the main profiler buffer).

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:26:06 +00:00
Gerald Squelart 1feb663e29 Bug 1626837 - ProfileChunkedBuffer read functions - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D69498

--HG--
extra : moz-landing-system : lando
2020-04-15 03:25:48 +00:00
Gerald Squelart 8e1dfc3db0 Bug 1626837 - ProfileChunkedBuffer detail::InChunkPointer - r=canaltinova
`InChunkPointer` is an internal accessor pointing at a position inside a chunk.
It can handle up to two groups of chunks (typically the extant chunks stored in
the chunk manager, and the current chunk.

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:25:40 +00:00
Gerald Squelart 23b9adb050 Bug 1626837 - ProfileChunkedBuffer write functions - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D69496

--HG--
extra : moz-landing-system : lando
2020-04-15 03:25:33 +00:00
Gerald Squelart b001bcf853 Bug 1626837 - ProfileChunkedBuffer chunk request mechanism - r=canaltinova
To ensure that a spare chunk is ready to handle data that will eventually
overflow the current chunk, `ProfileChunkedBuffer` uses
`ProfileBufferChunk::RequestChunk()` to queue a request for a new chunk.

This request should be handled off-thread by the buffer user -- but a response
is not guaranteed, so the buffer does not rely on it and can get a new chunk
on the spot if really needed.

Because the request is asynchronous, and because either the buffer or the user
could be destroyed while a request is in flight, a shared
`RequestedChunkRefCountedHolder` object is used:
- When the request is handled, the new chunk (or nullptr) is given to the
  holder.
- When the buffer needs a new chunk, it can retrieve the new chunk if the
  request was successfully fulfilled.
If the requestee is destroyed first, the request won't be fulfilled and the
buffer will carry on without relying on requests.
If the requester is destroyed first, the holder (with a potential requested
chunk) will just get destroyed after the request is fulfilled or the requestee
is destroyed as well.

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:21:45 +00:00
Gerald Squelart 61054fffee Bug 1626837 - ProfileChunkedBuffer ChunkManager handling - r=canaltinova
`ProfileChunkedBuffer` can handle zero or one `ProfileBufferChunkManager` at a
time, and can optionally take ownership of the manager.

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:21:27 +00:00
Gerald Squelart dcbdec35d9 Bug 1626837 - ProfileChunkedBuffer basic data and functions - r=canaltinova
ProfileChunkedBuffer simulates a near-infinite buffer over ProfileBufferChunks.
It uses a ProfileBufferChunkManager to get chunks and later release them.
Its use is similar to BlocksRingBuffer:
- It reserves blocks in chunks, adds some structure (just the size of the entry
  that follows), and lets a user-provided writer write the entry.
- It allows reading past entries.
- It can be in an "out-of-session" state where APIs are still available but do
  nothing.

It is intended to eventually replace BlocksRingBuffer.

This patch starts with the basic structure, following patches will add all
planned features.

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:21:09 +00:00
Gerald Squelart 989ad20d1d Bug 1626837 - Add BlocksRingBuffer::IsInSession() - r=canaltinova
`ProfileBuffer` used to check if a `BlocksRingBuffer` was in session by looking
at its buffer size.
Now `IsInSession()` should be used, it is clearer in intent, and will make the
transition to `ProfileChunkedBuffer` slightly easier.

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

--HG--
extra : moz-landing-system : lando
2020-04-15 03:20:51 +00:00
Chris Peterson 7ebea17a8e Bug 1629317 - Replace MOZ_MUST_USE with [[nodiscard]] in mozglue/misc/NativeNt.h. r=mhowell
Also move MOZ_MUST_USE before function declarations' specifiers and return type. While clang and gcc's __attribute__((warn_unused_result)) can appear before, between, or after function specifiers and return types, the [[nodiscard]] attribute must precede the function specifiers.

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

--HG--
extra : moz-landing-system : lando
2020-04-13 15:15:32 +00:00
Nicholas Nethercote 8139b4051e Bug 1619840 - Remove `fix_{linux,macosx}_stack.py` and `fix_stack_using_bpsyms.py`. r=erahm
This commit removes `test_fix_stack_using_bpsyms.py`. That test can't easily be
modified to work with `fix_stacks.py` because it relies on internal
implementation details of `fix_stack_using_bpsym.py`. The unit testing done in
the `fix-stacks` repo provides test coverage that is as good or better.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:54 +00:00
Toshihito Kikuchi 24bd4dbc0c Bug 1628628 - RedirectToNoOpEntryPoint is expected to block a module with ASAN. r=mhowell
With ASAN, GTest uses the old blocklist implemented in mozglue, where
the new blocklist type `RedirectToNoOpEntryPoint` behaves the same as
`DllBlocklistEntry`.  The test needs to expect `LoadLibrary` to fail.

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

--HG--
extra : moz-landing-system : lando
2020-04-10 23:44:17 +00:00
Doug Thayer c5939cab4c Bug 1595596 - Use MMAP_FAULT_HANDLER in StartupCache r=aklotz
Please double check that I am using this correctly. I believe we are
seeing the crash in the linked bug because we are not handling hardware
faults when reading from the memory mapped file. This patch just wraps
all accesses in the MMAP_FAULT_HANDLER_ macros.

Depends on D53042

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

--HG--
rename : modules/libjar/MmapFaultHandler.cpp => mozglue/misc/MmapFaultHandler.cpp
rename : modules/libjar/MmapFaultHandler.h => mozglue/misc/MmapFaultHandler.h
extra : moz-landing-system : lando
2020-04-10 21:16:15 +00:00
Toshihito Kikuchi e7b458ff19 Bug 1603974 - Part 8: Use RedirectToNoOpEntryPoint for dgapi[64].dll. r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D68349

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:03 +00:00
Toshihito Kikuchi ae5caf8f80 Bug 1603974 - Part 7: Introduce a new blocklist type RedirectToNoOpEntryPoint. r=mhowell
This patch introduces a new DLL blocklist type `RedirectToNoOpEntryPoint`
which hooks a DLL's entrypoint into a no-op function.  With this technique,
we give the injected DLL no chance to run its code though we allow it to be
loaded into the process.

This new blocklist type is intended to block a DLL which is injected by IAT
patching which was planted by a kernel callback routine for LoadImage.  It's
because blocking such a DLL makes a new process fail to launch.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:03 +00:00
Toshihito Kikuchi a77f260120 Bug 1603974 - Part 6: Introduce Kernel32ExportsSolver. r=mhowell
This patch introduces `Kernel32ExportsSolver` which calculates RVAs of
kernel32's functions and transfers them to a target process, where the
transferred RVAs are resolved into function addresses.

Depends on D68346

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:02 +00:00
Toshihito Kikuchi c0c91e1726 Bug 1603974 - Part 5: Introduce WindowsDllEntryPointInterceptor. r=mhowell
This patch introduces a new DLL interceptor `WindowsDllEntryPointInterceptor`
which applies a hook to a target function without backing up the original
function code.

Depends on D68345

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:02 +00:00
Toshihito Kikuchi b01c4ba875 Bug 1603974 - Part 4: Introduce MMPolicyInProcessEarlyStage. r=mhowell
This patch introduces a new policy `MMPolicyInProcessEarlyStage` which does
not consume any functions imported from kernel32.dll so that we can use it
in a process's early stage i.e. before IAT is resolved.

Depends on D68344

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:02 +00:00
Toshihito Kikuchi 2337ab0265 Bug 1603974 - Part 3: Extract a patching operation from CreateTrampoline. r=mhowell
`WindowsDllDetourPatcher::CreateTrampoline` does not only create a trampoline
region but also applies a patch on an original function.  This patch extracts
the patching part as separate functions.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:02 +00:00
Toshihito Kikuchi f7cddafed0 Bug 1603974 - Part 2: Move PEHeaders from CheckBlockInfo to IsDllAllowed. r=mhowell
This patch moves the instantiation of `PEHeaders` from `CheckBlockInfo` to
`IsDllAllowed` so that `IsDllAllowed` can use an instance of `PEHeaders`.

Depends on D68342

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:01 +00:00
Toshihito Kikuchi 8bb38652d4 Bug 1603974 - Part 1: Implement nt::VirtualQuery consuming only ntdll.dll. r=mhowell
This patch introduces `nt::VirtualQuery` which consumes only ntdll's functions
to reduce dependency in `MMPolicy` on kernel32.dll.  With this, `MMPolicy` still
depends on kernel32.dll, that will be solved by a coming patch.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:01 +00:00
Andreas Farre 36eaf82163 Bug 1620594 - Part 2: Use SchedulerGroup::Dispatch instead of SystemGroup::Dispatch. r=nika
Depends on D67631

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

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:33 +00:00
Daniel Varga 2617f15d0c Backed out 8 changesets (bug 1603974) for causing build bustage
CLOSED TREE

Backed out changeset ee3fb8271709 (bug 1603974)
Backed out changeset 28ef741f8f65 (bug 1603974)
Backed out changeset 631725404fb8 (bug 1603974)
Backed out changeset 484a45d16149 (bug 1603974)
Backed out changeset 5d4cd3237ec0 (bug 1603974)
Backed out changeset c2601b5bdd3e (bug 1603974)
Backed out changeset fe96d48d5b14 (bug 1603974)
Backed out changeset 9467dffe8d04 (bug 1603974)
2020-04-07 18:35:04 +03:00
Toshihito Kikuchi bf6e25daaa Bug 1603974 - Part 8: Use RedirectToNoOpEntryPoint for dgapi[64].dll. r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D68349

--HG--
extra : moz-landing-system : lando
2020-04-07 14:39:47 +00:00
Toshihito Kikuchi c92df182f4 Bug 1603974 - Part 7: Introduce a new blocklist type RedirectToNoOpEntryPoint. r=mhowell
This patch introduces a new DLL blocklist type `RedirectToNoOpEntryPoint`
which hooks a DLL's entrypoint into a no-op function.  With this technique,
we give the injected DLL no chance to run its code though we allow it to be
loaded into the process.

This new blocklist type is intended to block a DLL which is injected by IAT
patching which was planted by a kernel callback routine for LoadImage.  It's
because blocking such a DLL makes a new process fail to launch.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:39:49 +00:00
Toshihito Kikuchi f30b012bd4 Bug 1603974 - Part 6: Introduce Kernel32ExportsSolver. r=mhowell
This patch introduces `Kernel32ExportsSolver` which calculates RVAs of
kernel32's functions and transfers them to a target process, where the
transferred RVAs are resolved into function addresses.

Depends on D68346

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:39:51 +00:00
Toshihito Kikuchi 9fe11cf59a Bug 1603974 - Part 5: Introduce WindowsDllEntryPointInterceptor. r=mhowell
This patch introduces a new DLL interceptor `WindowsDllEntryPointInterceptor`
which applies a hook to a target function without backing up the original
function code.

Depends on D68345

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:39:54 +00:00
Toshihito Kikuchi 8219a28c40 Bug 1603974 - Part 4: Introduce MMPolicyInProcessEarlyStage. r=mhowell
This patch introduces a new policy `MMPolicyInProcessEarlyStage` which does
not consume any functions imported from kernel32.dll so that we can use it
in a process's early stage i.e. before IAT is resolved.

Depends on D68344

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:39:56 +00:00
Toshihito Kikuchi 55af68b7d2 Bug 1603974 - Part 3: Extract a patching operation from CreateTrampoline. r=mhowell
`WindowsDllDetourPatcher::CreateTrampoline` does not only create a trampoline
region but also applies a patch on an original function.  This patch extracts
the patching part as separate functions.

Depends on D68343

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:40:04 +00:00
Toshihito Kikuchi b5969e8a0f Bug 1603974 - Part 2: Move PEHeaders from CheckBlockInfo to IsDllAllowed. r=mhowell
This patch moves the instantiation of `PEHeaders` from `CheckBlockInfo` to
`IsDllAllowed` so that `IsDllAllowed` can use an instance of `PEHeaders`.

Depends on D68342

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:40:07 +00:00
Toshihito Kikuchi 18f97f01b8 Bug 1603974 - Part 1: Implement nt::VirtualQuery consuming only ntdll.dll. r=mhowell
This patch introduces `nt::VirtualQuery` which consumes only ntdll's functions
to reduce dependency in `MMPolicy` on kernel32.dll.  With this, `MMPolicy` still
depends on kernel32.dll, that will be solved by a coming patch.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:40:14 +00:00
Jon Coppeard f105b2ae13 Bug 1627683 - Update TSAN suppression list following changes to give GC cells headers r=decoder
Similarly to changeset cfa64a6b5a87, a scope's enclosing scope is no longer updated by MovingTracer::onScopeEdge following the changes in bug 1625212. Update the suppression list accordingly.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 12:22:07 +00:00
Simon Giesecke e3d1db10d9 Bug 1626884 - Make RC non-copyable and declare operator= only in debug builds. r=froydnj
RC should be non-copyable. It already is non-copyable in the atomic variant,
but not in the non-atomic variant. This ensures that RefCounted is also
non-copyable, which prevents that classes deriving from RefCounted get
accidentally copied.

Also, RC's operator= should be defined only in debug builds. As already
described in a code comment, it's only used in debug builds (to assign the
dead value), and otherwise no modifications other than incrementing &
decrementing should be possible.

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

--HG--
extra : moz-landing-system : lando
2020-04-06 09:17:34 +00:00
Andrea Marchesini 9bea58365a Bug 1624146 - Cookie code refactoring - part 10 - CookieService under mozilla::net, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D67759

--HG--
rename : netwerk/cookie/nsCookieService.cpp => netwerk/cookie/CookieService.cpp
rename : netwerk/cookie/nsCookieService.h => netwerk/cookie/CookieService.h
extra : moz-landing-system : lando
2020-04-06 12:26:14 +00:00
Gerald Squelart ca9fa3fe8f Bug 1627563 - Replace MOZ_MUST_USE with [[nodiscard]] in mozglue/baseprofiler. r=canaltinova
Also move MOZ_MUST_USE before function declarations' specifiers and return type. While clang and gcc's attribute((warn_unused_result)) can appear before, between, or after function specifiers and return types, the [[nodiscard]] attribute must precede the function specifiers.

And removed a few unneded `#include "mozilla/Attributes.h"`.

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

--HG--
extra : moz-landing-system : lando
2020-04-06 10:04:38 +00:00
Jon Coppeard 2fa68eed9c Bug 1625212 - Update TSAN supression list now a Shape's base shape is not marked directly r=sfink
Previously this ended up with MovingTracer doing the update itself, but now the pointer is stored in a CellHeader it's done through an overload of TraceEdge.

The TSAN stack doesn't appear to have the class for the unsafeSetPtr method that actually does the update so rather than make this apply to all uses of this method I added a supression for the next function up in the stack.

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

--HG--
extra : moz-landing-system : lando
2020-04-06 10:43:34 +00:00
Sylvestre Ledru 0aa6f03cf3 Bug 1519636 - Reformat recent changes to the Google coding style r=jgilbert
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2020-04-05 13:34:58 +00:00
Toshihito Kikuchi b7dfd23416 Bug 1625452 - No need to pass an offset to CountPrefixBytes. r=handyman
When our detour processes instructions, we pass `ReadOnlyTargetFunction` to
`CountPrefixBytes` to determine whether a lock prefix exists or not.
In that case, we don't need to pass both `ReadOnlyTargetFunction` and an offset
as a parameter because `ReadOnlyTargetFunction` has an offset as a member.

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

--HG--
extra : moz-landing-system : lando
2020-04-04 10:31:32 +00:00
Eric Rahm 12ca859e67 Bug 1626456 - Remove stray nsAutoPtr.h includes. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D69127

--HG--
extra : moz-landing-system : lando
2020-04-03 21:05:46 +00:00
Gabriele Svelto 5c3d7d4ed9 Bug 1624336 - Block old versions of COMODO Firewall to prevent them from crashing Firefox r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D68188

--HG--
extra : moz-landing-system : lando
2020-04-02 20:47:30 +00:00
Gerald Squelart d4709d16f3 Bug 1625856 - ProfileBufferChunkManagerWithLocalLimit - r=canaltinova
`ProfileBufferChunkManagerWithLocalLimit` is a chunk manager that enforces a
memory limit in each process.

It is meant to mimic the main way `BlocksRingBuffer` works, so that we can more
easily switch to the new buffer storage without introducing the extra complexity
of inter-process memory coordination yet.

`ProfileBufferChunkManagerWithLocalLimit` will still offer a benefit over
`BlocksRingBuffer`, in that it won't allocate the maximum buffer size
immediately -- speeding the initialization, and hopefully even reducing the
total Firefox memory consumption in short-lived processes.

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

--HG--
extra : moz-landing-system : lando
2020-04-02 03:09:36 +00:00
Dorel Luca 8d8dda7ae9 Backed out 2 changesets (bug 1595596) for build bustage in build/src/mozglue/misc/MmapFaultHandler.cpp. CLOSED TREE
Backed out changeset 34c018c96749 (bug 1595596)
Backed out changeset 1e21eefd5fce (bug 1595596)

--HG--
rename : mozglue/misc/MmapFaultHandler.cpp => modules/libjar/MmapFaultHandler.cpp
rename : mozglue/misc/MmapFaultHandler.h => modules/libjar/MmapFaultHandler.h
2020-03-31 02:07:33 +03:00
Doug Thayer 13ecdfb5c8 Bug 1595596 - Use MMAP_FAULT_HANDLER in StartupCache r=aklotz
Please double check that I am using this correctly. I believe we are
seeing the crash in the linked bug because we are not handling hardware
faults when reading from the memory mapped file. This patch just wraps
all accesses in the MMAP_FAULT_HANDLER_ macros.

Depends on D53042

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

--HG--
rename : modules/libjar/MmapFaultHandler.cpp => mozglue/misc/MmapFaultHandler.cpp
rename : modules/libjar/MmapFaultHandler.h => mozglue/misc/MmapFaultHandler.h
extra : moz-landing-system : lando
2020-03-27 21:00:47 +00:00
Gerald Squelart de1f096fd6 Bug 1624257 - ProfileBufferChunkManagerSingle - r=canaltinova
Chunk manager dealing with only one chunk at a time.

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

--HG--
extra : moz-landing-system : lando
2020-03-29 23:49:32 +00:00
Gerald Squelart 2e503c9a92 Bug 1624257 - ProfileBufferChunkManager - r=canaltinova
Base class for chunk managers.

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

--HG--
extra : moz-landing-system : lando
2020-03-29 23:25:35 +00:00
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

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

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
André Bargull 13bfe75b97 Bug 1625138 - Part 40: Replace remaining mozilla::IsSame with std::is_same. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68560

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:21 +00:00
André Bargull cf0b1e89e9 Bug 1625138 - Part 30: Replace mozilla::RemoveCV with std::remove_cv. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68547

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull a08be4177e Bug 1625138 - Part 17: Replace mozilla::Decay with std::decay. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68372

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull ebec34a898 Bug 1625138 - Part 16: Replace mozilla::IsIntegral with std::is_integral. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68371

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 13e9ad3137 Bug 1625138 - Part 14: Replace mozilla::IsSigned with std::is_signed. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68369

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 1e4d8b891e Bug 1625138 - Part 4: Replace mozilla::MakeUnsigned with std::make_unsigned. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68358

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:12 +00:00
Christian Holler c248943491 Bug 1620326 - Add a separate TSan suppression list for the updater. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D67125

--HG--
extra : moz-landing-system : lando
2020-03-26 21:19:24 +00:00
James Willcox 2ef4e466f8 Bug 1291377 - Don't use custom linker on Android 6.0+ r=glandium
We still need it for Android < 6.0 (API 23) because otherwise we don't
have a way to hook up mozalloc.

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

--HG--
extra : moz-landing-system : lando
2020-03-20 15:35:48 +00:00
Gerald Squelart c80fa7258c Bug 1623228 - ProfileBufferChunk - r=canaltinova
A `ProfileBufferChunk` represents a single chunk of memory, with an optional
link to the next chunk.

In the new Fission-compatible profiler storage, chunks will be allocated by a
chunk manager, filled with data by the profiler, and then released back to the
chunk manager.
The chunk manager may decide to destroy or recycle old chunks based on memory
limits (per process, or for the entire Firefox app).

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

--HG--
extra : moz-landing-system : lando
2020-03-24 01:04:33 +00:00
Razvan Maries f86965f8af Backed out changeset 1a28a2477439 (bug 1623228) for build bustages on ProfileBufferChunk.h. CLOSED TREE 2020-03-23 23:29:12 +02:00
Gerald Squelart df0599ee6d Bug 1623228 - ProfileBufferChunk - r=canaltinova
A `ProfileBufferChunk` represents a single chunk of memory, with an optional
link to the next chunk.

In the new Fission-compatible profiler storage, chunks will be allocated by a
chunk manager, filled with data by the profiler, and then released back to the
chunk manager.
The chunk manager may decide to destroy or recycle old chunks based on memory
limits (per process, or for the entire Firefox app).

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

--HG--
extra : moz-landing-system : lando
2020-03-23 18:16:08 +00:00
Sylvestre Ledru 734f79b541 Bug 1624237 - Run misc-unused-using-decls - Remove useless declarations r=andi
$ ./mach static-analysis check --checks="-*, misc-unused-using-decls" --fix <path>

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

--HG--
extra : moz-landing-system : lando
2020-03-23 13:15:33 +00:00
Christian Holler b503a043c8 Bug 1600895 - Add additional suppression for race variant. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D67732

--HG--
extra : moz-landing-system : lando
2020-03-23 10:30:03 +00:00
Bogdan Tara 05377fcd08 Backed out changeset fe0c22951e7c (bug 1291377) for mozglue related Android bustages CLOSED TREE 2020-03-20 16:39:42 +02:00
James Willcox e2c25ee165 Bug 1291377 - Don't use custom linker on Android 6.0+ r=glandium
We still need it for Android < 6.0 (API 23) because otherwise we don't
have a way to hook up mozalloc.

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

--HG--
extra : moz-landing-system : lando
2020-03-20 14:20:48 +00:00
Gabriele Svelto 4d14cf5024 Bug 1621804 - Block the latest release of OpenSC which crashes Firefox nightly r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D67529

--HG--
extra : moz-landing-system : lando
2020-03-19 22:36:51 +00:00
Gerald Squelart 7dd306dcd9 Bug 1623195 - Optimize ProfileBufferEntryWriter::Serializer<Variant> - r=canaltinova
The old code was using `std::index_sequence_for` to call templated functions for
*every* possible Variant alternative.
Instead, using `Variant::match()` with a generic lambda (that also takes the
current Variant index, thanks to bug 1621865) means we're only calling the
function corresponding to the current alternative.

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

--HG--
extra : moz-landing-system : lando
2020-03-18 10:23:10 +00:00
Chris Fronk d5b004443b Bug 1143478 - Rename mozilla::Pair to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64511

--HG--
rename : mfbt/Pair.h => mfbt/CompactPair.h
extra : moz-landing-system : lando
2020-03-17 12:42:12 +00:00
Christian Holler 4a52e23cc9 Bug 1608068 - Add temporary TSan suppression for GC issue. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D66641

--HG--
extra : moz-landing-system : lando
2020-03-13 14:31:36 +00:00
Markus Stange 292f87c1ef Bug 1557570 - Call baseprofiler::profiler_init() from the first mozglue function that runs. r=gerald
As far as I can tell there is no single entry-point into C++ code on Android.
Instead, GeckoThread and GeckoLibLoader call various functions to load libraries one-by-one.
We want to capture all that library loading in the profiler, so we need to kick off the base profiler at the beginning of whichever function is called first.

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

--HG--
extra : moz-landing-system : lando
2020-03-17 04:15:04 +00:00
Markus Stange 3349423265 Bug 1557570 - Build the base profiler on Android. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D64998

--HG--
extra : moz-landing-system : lando
2020-03-17 03:27:35 +00:00
Markus Stange de0a0463d6 Bug 1557570 - Make baseprofiler/core/shared-libraries-linux.cc compile on Android. r=glandium
Stop including "Linker.h" and always include <link.h> instead, which also comes with ElfW() and other things that this code needs.
Also fix up "!/" path detection code.

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

--HG--
extra : moz-landing-system : lando
2020-03-17 03:26:57 +00:00
Markus Stange 6d980e05bb Bug 1618979 - Use PrintToConsole for things that should always be printed. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D64996

--HG--
extra : moz-landing-system : lando
2020-03-17 03:26:19 +00:00
Markus Stange e3cd7fc71c Bug 1618979 - Tweak base profiler logging. r=gerald
This fixes the declaration of (BaseProfiler)LogTest. It also makes it so that the logs show up on Android.
In xpcom we have printf_stderr which does something similar and also handles Windows.

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

--HG--
extra : moz-landing-system : lando
2020-03-17 03:25:40 +00:00
Markus Stange e54247708a Bug 1619362 - Sync up the two profiler feature lists again. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D65012

--HG--
extra : moz-landing-system : lando
2020-03-17 03:25:02 +00:00
Markus Stange f38f79b818 Bug 1619362 - Remove two unused variables. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D64990

--HG--
extra : moz-landing-system : lando
2020-03-17 03:24:23 +00:00
Markus Stange 345b2ee888 Bug 1619362 - Parse MOZ_BASE_PROFILER_STARTUP_DURATION and _INTERVAL. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64988

--HG--
extra : moz-landing-system : lando
2020-03-17 04:11:20 +00:00
Gerald Squelart bc32add109 Bug 1622179 - Replace direct dependencies on BlocksRingBuffer with ProfileBufferEntryWriter's where possible - r=canaltinova
This removes most dependencies on BlocksRingBuffer, to ease the transition to
the upcoming Fission-friendly profile buffer, including:
- Length type,
- SumBytes(),
- Gecko extensions of serialization.

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

--HG--
rename : tools/profiler/public/BlocksRingBufferGeckoExtensions.h => tools/profiler/public/ProfileBufferEntrySerializationGeckoExtensions.h
extra : moz-landing-system : lando
2020-03-16 20:32:35 +00:00
Toshihito Kikuchi 9a2add9bb3 Bug 1560052 - Block Athena's PKCS11 module to avoid the crash. r=jmathies
Differential Revision: https://phabricator.services.mozilla.com/D65010

--HG--
extra : moz-landing-system : lando
2020-03-16 19:51:01 +00:00
James Willcox e09b890d7b Bug 1616613 - Remove unused SQLiteBridge r=glandium
This abomination was only used in Fennec.

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

--HG--
extra : moz-landing-system : lando
2020-03-16 18:44:10 +00:00
James Willcox d2d9cdb5ac Bug 1611270 - Delete unused NSSBridge r=glandium,geckoview-reviewers,twisniewski
Differential Revision: https://phabricator.services.mozilla.com/D64810

--HG--
extra : moz-landing-system : lando
2020-03-16 18:44:10 +00:00
Gerald Squelart 3aec963bb6 Bug 1621866 - Use C++17 fold expressions in ProfileBufferEntrySerialization.h - r=canaltinova
Fold expressions are more expressive and probably produce better code than the
older template-recursion and initializer_list patterns.

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

--HG--
extra : moz-landing-system : lando
2020-03-12 21:05:31 +00:00
Bob Owen 22f20a8d00 Bug 1557282 Part 2: Fix profiler issues when using SetLockdownDefaultDacl. r=dmajor
When we are running from a network drive the new feature in part 1 doesn't work.
So this uses DuplicateHandle instead of OpenThread to get the thread handle used
by the profiler.
It also removes a DuplicateHandle THREAD_ALL_ACCESS call that also fails and a
DuplicateHandle to get a real process handle, which only seems to have been to
fix something on Windows XP.
The handle passed in is always the profiler one, so already has the necessary
permissions. If no thread handle is passed then the pseudo handle is used.

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

--HG--
extra : moz-landing-system : lando
2020-03-12 20:40:50 +00:00
Narcis Beleuzu feebca4edf Backed out 4 changesets (bug 1557282) as requested by tjr . CLOSED TREE
Backed out changeset deabd1e1018b (bug 1557282)
Backed out changeset 25e5b5ba8ac3 (bug 1557282)
Backed out changeset 30afcaf2782a (bug 1557282)
Backed out changeset f83095f739e0 (bug 1557282)

--HG--
extra : rebase_source : 1730b805fbd8d0b786f7dcec71aa9c02a8f7a93a
2020-03-12 19:39:27 +02:00
Bob Owen f25e4ba8c6 Bug 1557282 Part 2: Fix profiler issues when using SetLockdownDefaultDacl.
When we are running from a network drive the new feature in part 1 doesn't work.
So this uses DuplicateHandle instead of OpenThread to get the thread handle used
by the profiler.
It also removes a DuplicateHandle THREAD_ALL_ACCESS call that also fails and a
DuplicateHandle to get a real process handle, which only seems to have been to
fix something on Windows XP.
The handle passed in is always the profiler one, so already has the necessary
permissions. If no thread handle is passed then the pseudo handle is used.

Depends on D66610

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

--HG--
extra : moz-landing-system : lando
2020-03-12 16:57:45 +00:00
Gerald Squelart 9e0576b94c Bug 1620515 - Replace BlocksRingBuffer::EntryReader/Writer with ProfileBufferEntryReader/Writer - r=canaltinova
The new ProfileBufferEntryReader/Writer are now used everywhere, including in
the profilers and tests.
The old EntryReader/Writer have been removed.

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

--HG--
extra : moz-landing-system : lando
2020-03-11 21:59:19 +00:00
Gerald Squelart 7803bc357b Bug 1620515 - ProfileBufferEntryReader and ProfileBufferEntryWriter - r=canaltinova
Actual implementation of the entry reader and writer.
They expose a very similar API as the original BlocksRingBuffer entry reader&
writer.

(No tests here; In the next patch they will get used instead of the old reader&
writer, and will hence inherit all relevant tests.)

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

--HG--
extra : moz-landing-system : lando
2020-03-11 21:57:31 +00:00
Gerald Squelart 119ca02f31 Bug 1620515 - ProfileBufferEntrySerialization.h with (de)serializers - r=canaltinova
ProfileBufferEntrySerialization.h will contain the entry reader and writer.

This patch creates the file with renamed copies of the (de)serializers from
BlocksRingBuffer; there shouldn't be significant code changes, this `hg cp` will
help keep their history. See next patch for how they will actually be used.

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

--HG--
rename : mozglue/baseprofiler/public/BlocksRingBuffer.h => mozglue/baseprofiler/public/ProfileBufferEntrySerialization.h
extra : moz-landing-system : lando
2020-03-11 21:56:50 +00:00
Gerald Squelart d156810f51 Bug 1620515 - Revert order of BlocksRingBuffer (de)serializer declarations - r=canaltinova
Only reordering declarations, to make the next patch easier to read.

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

--HG--
extra : moz-landing-system : lando
2020-03-11 21:56:17 +00:00
shindli b02b3a6e1a Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE
--HG--
rename : mfbt/CompactPair.h => mfbt/Pair.h
2020-03-11 14:30:54 +02:00
Chris Fronk a27e438c2d Bug 1143478 - Rename mozilla::Pair to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64511

--HG--
rename : mfbt/Pair.h => mfbt/CompactPair.h
extra : moz-landing-system : lando
2020-03-11 12:18:13 +00:00
Mike Shal 1874441242 Bug 1620744 - Convert gen_dll_blocklist_defs.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65852

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:29 +00:00
Mike Shal 4017368b2f Bug 1620744 - Use py3_action for cases that already support it; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65846

--HG--
extra : moz-landing-system : lando
2020-03-10 20:19:13 +00:00
Daniel Varga 09acd57d19 Backed out 13 changesets (bug 1620744) for causing diffoscope failures firefox/browser/chrome/browser/content/browser/built_in_addons.json
CLOSED TREE

Backed out changeset 6beda54bcb9b (bug 1620744)
Backed out changeset a1e97f0b91ef (bug 1620744)
Backed out changeset b8faa0184d4f (bug 1620744)
Backed out changeset 3bc8fda68107 (bug 1620744)
Backed out changeset 8e95b21b2ae3 (bug 1620744)
Backed out changeset 1de09de1a802 (bug 1620744)
Backed out changeset 622a2f7414fa (bug 1620744)
Backed out changeset 3372c9ab721c (bug 1620744)
Backed out changeset 0997313a9f99 (bug 1620744)
Backed out changeset 2fa34749bbfa (bug 1620744)
Backed out changeset 6d597d2eb792 (bug 1620744)
Backed out changeset 78e78f7c7b26 (bug 1620744)
Backed out changeset 6e4d85b19f88 (bug 1620744)
2020-03-10 21:13:18 +02:00
Mike Shal 3207c9ef3b Bug 1620744 - Convert gen_dll_blocklist_defs.py to py3; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65852

--HG--
extra : moz-landing-system : lando
2020-03-09 22:02:36 +00:00
Mike Shal a1ea58eb94 Bug 1620744 - Use py3_action for cases that already support it; r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D65846

--HG--
extra : moz-landing-system : lando
2020-03-09 22:02:22 +00:00
Christian Holler bea7d7549f Bug 1621323 - Disable an OOMing test for TSan and fix TSan OOM options. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D66252

--HG--
extra : moz-landing-system : lando
2020-03-10 16:22:25 +00:00
Simon Giesecke a763c5c535 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in mozglue. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D65495

--HG--
extra : moz-landing-system : lando
2020-03-10 08:47:24 +00:00
Toshihito Kikuchi 17bf9c99ee Bug 1619466 - Make the blocklist variable BROWSER_PROCESS work. r=aklotz
The blocklist variable `BROWSER_PROCESS` did not work as expected.  Entries
defined there were blocked not only in the browser process but also in the
child process.

This patch makes sure entries in `BROWSER_PROCESS` are blocked only in the
browser process.

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

--HG--
extra : moz-landing-system : lando
2020-03-08 19:47:17 +00:00
Gabriele Svelto 11fbcdd4e7 Bug 1608048 - Block all old versions of COMODO Internet Security Essentials DLLs r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D62895

--HG--
extra : moz-landing-system : lando
2020-03-06 23:11:56 +00:00
James Willcox 0ef38c0b9c Bug 1598068 - Add ashmem abstraction to mozglue and use it everywhere r=glandium,jld
Apps targeting SDK 29 are not allowed to open /dev/ashmem directly, and
instead must use NDK functions. Those functions are only available in
SDK 26 and higher, so we need this shim to use the functions if they
are available, else fallback to opening /dev/ashmem directly.

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

--HG--
extra : moz-landing-system : lando
2020-03-06 19:04:49 +00:00
Christian Holler 0a2e8a7c6e Bug 1606635 - Remove suppression for fixed bug. r=janv
Differential Revision: https://phabricator.services.mozilla.com/D65487

--HG--
extra : moz-landing-system : lando
2020-03-05 09:45:58 +00:00
Mike Hommey 1a58a0ff4f Bug 1619865 - Support pdb paths with forward slashes. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D65286

--HG--
extra : moz-landing-system : lando
2020-03-04 08:02:42 +00:00
Sylvestre Ledru cafbe9915b Bug 1617369 - Reformat mozglue/ using rustfmt r=glandium
Depends on D64873

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

--HG--
extra : moz-landing-system : lando
2020-03-04 06:12:38 +00:00
Cameron Kaiser ca26f712dd Bug 1619495 - fix compilation error with ModuloBuffer.h. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D65225

--HG--
extra : moz-landing-system : lando
2020-03-04 01:49:18 +00:00
Mike Shal 810b3916fb Bug 1619768 - Remove extraneous MOZ_PROFILE_GENERATE defines r=dmajor
MOZ_PROFILE_GENERATE is already defined in mozilla-config.h and doesn't
need to be re-defined by the moz.build files.

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

--HG--
extra : moz-landing-system : lando
2020-03-03 21:06:36 +00:00
David Parks d7f1ab7118 Bug 1615752: Require 10-byte detour for Win 8.0 x64 CreateFileA and DuplicateHandle r=aklotz
In the current Win 8.0, these functions both start with a RIP-relative JMP (6 bytes) followed by 6 nops (6-bytes), which does not give us the 13-bytes we need for a trampoline so we require the trampoline to fit into 10 bytes.

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

--HG--
extra : moz-landing-system : lando
2020-03-03 19:23:53 +00:00
Toshihito Kikuchi cc5d112b9f Bug 1615308 - Validate each entry of IAT for ntdll.dll before copying it into a new process. r=aklotz
We copy IAT for ntdll.dll into a new process so that our hook code can use
ntdll's functions even in the early stage.  However, IAT can be modified and
some entries may point to an address which is not valid in the child process.
In such a case, we should not copy IAT.  One example is Windows compat mode
which redirects some ntdll functions into AcLayers.dll via IAT.

With this patch, we verify each IAT entry and if any of them is outside ntdll,
we give up using the launcher process and start the browser process.

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

--HG--
extra : moz-landing-system : lando
2020-03-03 00:19:41 +00:00
Gerald Squelart 6a8de0643e Bug 1618406 - Replace BlocksRingBuffer::BlockIndex with ProfileBufferBlockIndex - r=gregtatum,canaltinova
To facilitate the upcoming transition to a new Fission-friendly storage, all
uses of `BlocksRingBuffer::{,Block}Index` are replaced with
`ProfileBuffer{,Block}Index`.

`BlocksRingBuffer::{,Block}Index` are not needed anymore.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 05:34:26 +00:00
Gerald Squelart 6ee54a61e0 Bug 1618406 - Add ProfileBuffer{,Block}Index - r=canaltinova
ProfileBufferIndex.h contains:
- `ProfileBufferIndex`, a generic index into a Profiler buffer.
- `ProfileBufferBlockIndex`, an almost-opaque index that should only point at
  valid (or expired) blocks.

These will soon be used instead of `BlocksRingBuffer::{,Block}Index`, to make
the transition away from `BlocksRingBuffer` easier.

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

--HG--
extra : moz-landing-system : lando
2020-03-02 05:33:25 +00:00
Botond Ballo ca19967656 Bug 1615275 - Remove the temporary suppression added previously. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D64485

--HG--
extra : moz-landing-system : lando
2020-02-28 15:47:10 +00:00
Toshihito Kikuchi cd995fd09d Bug 1617935 - Support opcode83 [r+disp8],imm8 in x86 detour. r=handyman
In x86, our detour handles opcode 83 only when the Mod bits is 3.
When working on another project, I hit the instruction `cmp [ebp+0Ch],1`
where the Mod bits is 1, and it can be easily handled by a small fix.
It turned out my project does not need it, but it'd be good to have this.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 21:11:55 +00:00
Andrew McCreight 4babb2b5ab Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 17:39:15 +00:00
Christian Holler 77294951e7 Bug 1614605 - Add permanent deadlock suppressions for single thread. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D63757

--HG--
extra : moz-landing-system : lando
2020-02-24 17:36:00 +00:00
Ciure Andrei 00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Andrew McCreight b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Christian Holler 859b506961 Bug 1598342 - Import TSan fix D74828 from Clang upstream. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63378

--HG--
extra : moz-landing-system : lando
2020-02-26 21:19:47 +00:00
Gerald Squelart 2e862dd93e Bug 1616298 - ULEB128Reader - r=canaltinova
Unsigned LEB128 parser class that can be fed bytes one by one.

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

--HG--
extra : moz-landing-system : lando
2020-02-26 01:40:33 +00:00
Gerald Squelart 29ff6c0fbd Bug 1616298 - Run BaseProfiler-independent tests even when BaseProfiler is not built - r=gregtatum,canaltinova
Some of the BaseProfile headers are always available, even when BaseProfiler
itself is not built, so we should test these in all cases.

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

--HG--
extra : moz-landing-system : lando
2020-02-26 01:39:58 +00:00
Arthur Iakab a973454927 Backed out 2 changesets (bug 1616298)for causing build bustages on TestBaseProfiler.cpp
CLOSED TREE

Backed out changeset 781be7f64b1a (bug 1616298)
Backed out changeset a3920eccb1ac (bug 1616298)
2020-02-25 20:55:44 +02:00
Gerald Squelart bd615e6031 Bug 1616298 - ULEB128Reader - r=canaltinova
Unsigned LEB128 parser class that can be fed bytes one by one.

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

--HG--
extra : moz-landing-system : lando
2020-02-25 06:05:29 +00:00
Gerald Squelart 8f7a1f5c14 Bug 1616298 - Run BaseProfiler-independent tests even when BaseProfiler is disabled - r=gregtatum,canaltinova
Some of the BaseProfile headers are always available, even when BaseProfiler
itself is disabled, so we should test these in all cases.

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

--HG--
extra : moz-landing-system : lando
2020-02-25 17:01:37 +00:00
Christian Holler 583260130a Bug 1615265 - Suppress data race in OffThreadDecodeCallback. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D63448

--HG--
extra : moz-landing-system : lando
2020-02-20 10:00:12 +00:00
Michal Novotny 427ad8bf1f Bug 1614637 - Remove suppression for data race in CacheStorageService::OnMemoryConsumptionChange() r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D63259

--HG--
extra : moz-landing-system : lando
2020-02-19 09:52:12 +00:00
Christian Holler 35f070d805 Bug 1616342 - Add Unity-related library to TSan suppression list. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63309

--HG--
extra : moz-landing-system : lando
2020-02-19 10:39:03 +00:00
Mike Shal d8e4653d19 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-14 13:22:46 +00:00
Doug Thayer 7847f77986 Bug 1615045 - Remove StartupCache tsan race suppression r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62849

--HG--
extra : moz-landing-system : lando
2020-02-14 20:29:26 +00:00
Christian Holler 1847c7f638 Bug 1615275 - Add temporary suppression for GetVelocity data race. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D62887

--HG--
extra : moz-landing-system : lando
2020-02-14 21:37:13 +00:00
Cosmin Sabou 302a8d76a6 Backed out 2 changesets (bug 1615045) for tsan failures on StartupCache.cpp.
CLOSED TREE

Backed out changeset c0414b3adbe8 (bug 1615045)
Backed out changeset 56ef1d43a305 (bug 1615045)
2020-02-14 19:32:41 +02:00
Doug Thayer 7e6ec0f8b0 Bug 1615045 - Remove StartupCache tsan race suppression r=froydnj
Depends on D62848

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

--HG--
extra : moz-landing-system : lando
2020-02-14 13:40:53 +00:00
Cosmin Sabou ff39f9206d Backed out 2 changesets (bug 1613263, bug 1611326) for presummably causing l10n langpack bustages. a=backout
Backed out changeset 77e54e76848a (bug 1611326)
Backed out changeset 36ba18ac3a68 (bug 1613263)
2020-02-14 15:02:21 +02:00
Mike Shal ad0c283ab2 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 23:07:04 +00:00
Coroiu Cristina fc53596ca3 Backed out 2 changesets (bug 1598068) for build bustage at ShowSSEConfig on a CLOSED TREE
Backed out changeset 5fb8d24977eb (bug 1598068)
Backed out changeset eba60d849030 (bug 1598068)
2020-02-14 00:48:07 +02:00
James Willcox 5a405a1191 Bug 1598068 - Add ashmem abstraction to mozglue and use it everywhere r=glandium,jld
Apps targeting SDK 29 are not allowed to open /dev/ashmem directly, and
instead must use NDK functions. Those functions are only available in
SDK 26 and higher, so we need this shim to use the functions if they
are available, else fallback to opening /dev/ashmem directly.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 22:17:05 +00:00
Brindusan Cristian e2fb6b8344 Backed out changeset 7fefed11f117 (bug 1611326) for build bustages at update-1.xpi.stub. CLOSED TREE 2020-02-13 23:33:34 +02:00