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

2237 Коммитов

Автор SHA1 Сообщение Дата
Mihai Alexandru Michis 02e7dbde25 Bug 1690167 - Fix windows bustages. a=bustage-fix
CLOSED TREE
2021-02-12 23:00:44 +02:00
Mike Hommey 47675f5460 Bug 1690167 - Change VsprintfLiteral/SprintfLiteral to rely on PrintfTarget. r=nika,Gankra,firefox-build-system-reviewers,mhentges
Instead of snprintf.

Because some standalone code uses those functions directly or indirectly,
and PrintfTarget lives in mozglue, they now need to depend on mozglue
instead of mfbt. Except logalloc/replay, which cherry-picks what it
uses.

Differential Revision: https://phabricator.services.mozilla.com/D103730
2021-02-12 20:21:50 +00:00
Mike Hommey 8207cffcad Bug 1690167 - Add support for the hh length modifier in Printf.cpp. r=nika,Gankra
Test cases from TestIntegerPrintfMacros will cover this in the next commit.

Differential Revision: https://phabricator.services.mozilla.com/D103729
2021-02-12 20:21:49 +00:00
Mike Hommey 6c2fd9938a Bug 1690167 - Move Sprintf.h and IntegerPrintfMacros.h next to Printf.h. r=jwalden
Which means they move from MFBT to mozglue.

Differential Revision: https://phabricator.services.mozilla.com/D103728
2021-02-12 20:21:49 +00:00
Markus Stange 8bee4d97d7 Bug 1691121 - Use a more modern way to obtain the thread ID on macOS. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D104261
2021-02-09 22:39:19 +00:00
Gerald Squelart f3afaa1ce8 Bug 1691504 - ProfileBufferCollector now provides the main profiler buffer's range start - r=canaltinova
ProfileBufferCollector::SamplePositionInBuffer() and BufferRangeStart() need to provide indices in the same main buffer, because they will be used to discard old data (at some previous `SamplePositionInBuffer`) once the `BufferRangeStart` indicates that it is not referenced by the profiler anymore.

Because the periodic sampler uses a local buffer (to avoid allocations and locks), we need to record the special location from the main profiler buffer in ProfileBufferCollector.

Differential Revision: https://phabricator.services.mozilla.com/D104497
2021-02-09 12:21:32 +00:00
Gerald Squelart 3cfdbccd99 Bug 1691353 - Fixed non-MOZ_GECKO_PROFILER build around StackCaptureOptions - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D104500
2021-02-09 12:00:58 +00:00
Alexis Beingessner b4afded0ed Bug 1683439 - Remove suppression for fixed issue. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D104051
2021-02-05 17:22:06 +00:00
Doug Thayer 38b58e62b2 Bug 1690925 - Don't animate the skeleton UI if we're in a fast startup r=mconley,emalysz
This avoids paying a cost for animating the skeleton UI for faster startups.
Slow startups don't seem to be affected, given the data available. This is
likely due to slow startups being dominated by IO.

Differential Revision: https://phabricator.services.mozilla.com/D104118
2021-02-05 16:43:02 +00:00
Mike Hommey 34b72664d0 Bug 1598533 - Add support for %t modifier in PrintfTarget. r=nika,Gankra
Differential Revision: https://phabricator.services.mozilla.com/D103731
2021-02-02 20:16:55 +00:00
Florian Quèze d520574f5c Bug 1690375 - Record markers with partial stacks for flushing pending notifications and marking a style flush as needed, r=gerald.
Differential Revision: https://phabricator.services.mozilla.com/D103844
2021-02-04 15:13:21 +00:00
Yaron Tausky e50c13a6ff Bug 1682928 - Remove TSan suppression r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D103048
2021-02-04 14:34:56 +00:00
smolnar 5618a307a4 Backed out 5 changesets (bug 1682928) for causing failures in test_eventsourceservice_worker. CLOSED TREE
Backed out changeset d07913a1ae00 (bug 1682928)
Backed out changeset 693d9056779c (bug 1682928)
Backed out changeset 44de49551bc9 (bug 1682928)
Backed out changeset 2fae6d457441 (bug 1682928)
Backed out changeset 5c41e69bed76 (bug 1682928)
2021-02-03 16:59:53 +02:00
Yaron Tausky c316e37e66 Bug 1682928 - Remove TSan suppression r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D103048
2021-02-02 16:02:50 +00:00
Alexis Beingessner 744cc705b3 Bug 1674835 - remove supression for fixed issue. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D103046
2021-02-02 16:03:14 +00:00
Mike Hommey afe55d2f87 Bug 1689279 - Fix clang-tidy warnings in Printf.cpp. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D103264
2021-02-02 21:18:06 +00:00
Mike Hommey 88b97ce29a Bug 1686831 - Use double-conversion for mozilla::PrintfTarget::cvt_f. r=nika
This makes mozilla::PrintfTarget consistent across all locales (not
printing e.g. "," instead of "." for the decimal point in floats in some
locales)

This implementation passes all the glibc tests in stdio-common/tfformat.c
except two tests because of the difference in how values like e.g 0.25 are
rounded. Printf in glibc and on MacOS, as well as Rust std::fmt, round to
nearest, ties to even. Double-conversion, as well as printf on Windows
and conversion functions in ECMAScript round to nearest, ties away from
zero.

The standard for printf says rounding is implementation-defined so
either way is technically correct.

Differential Revision: https://phabricator.services.mozilla.com/D102699
2021-01-29 04:25:54 +00:00
Mike Hommey 2b96dd066d Bug 1686831 - Allow double-conversion's ToFixed to handle ±DBL_MAX. r=nika
While at this point PrintfTarget doesn't use double-conversion, add a
test that it can (and thus will) handle the largest double output possible
with the default %f precision.

Differential Revision: https://phabricator.services.mozilla.com/D103431
2021-01-29 16:54:03 +00:00
Mike Hommey 38fa1ea7bd Bug 1686831 - Add some more double formatting tests. r=nika
Patch sent upstream. https://sourceware.org/bugzilla/show_bug.cgi?id=27245

Differential Revision: https://phabricator.services.mozilla.com/D103135
2021-01-28 09:48:40 +00:00
Mike Hommey 63d408918e Bug 1686831 - Hook glibc printf tests in TestPrintf.cpp. r=nika,mhoye
It is worth noting that some of these tests fail on Windows for rounding
difference reasons (see later commit from this bug for more details),
and on both Windows and mac for differences in formatting for INFINITY
and NAN. All the tests pass on Linux (since the underlying printf is
currently glibc's).

Differential Revision: https://phabricator.services.mozilla.com/D103133
2021-01-29 06:05:45 +00:00
Mike Hommey c90777d4bf Bug 1686831 - Still apply fillers when no numbers are printed. r=Gankra
The standard for printf says that for integers, the result of converting
zero with an explicit precision of zero shall be no characters. But
flags and width still need to apply.

Differential Revision: https://phabricator.services.mozilla.com/D102696
2021-01-28 09:48:50 +00:00
Mike Hommey 89da5c6b52 Bug 1686831 - Add support for %F and %G, and properly support %n$E. r=nika,Gankra
%F and %G are the same as %f and %g, but using caps for the exponent
indicator, and for "inf"/"nan" for infinity and NaN.

%n$E is the same as %E, but taking the nth argument.

Differential Revision: https://phabricator.services.mozilla.com/D102695
2021-01-28 09:48:43 +00:00
Mike Hommey 8cbd8f2b09 Bug 1686831 - Print out the expected and actual results when failing in TestPrintf. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D103132
2021-01-29 06:03:27 +00:00
Mike Hommey 6779b992a5 Bug 1686831 - Import glibc printf test cases verbatim. r=mhoye
Differential Revision: https://phabricator.services.mozilla.com/D103131
2021-01-28 09:48:53 +00:00
Csoregi Natalia 8db3ebb5da Backed out 9 changesets (bug 1686831) for sanitizer failures on nsTSubstring.cpp. CLOSED TREE
Backed out changeset 0e03d508c8d4 (bug 1686831)
Backed out changeset cf6dd6eab427 (bug 1686831)
Backed out changeset 308000f1e14b (bug 1686831)
Backed out changeset c4d470be0184 (bug 1686831)
Backed out changeset 9751918b1ccb (bug 1686831)
Backed out changeset dd9b7e71dcfb (bug 1686831)
Backed out changeset 486a184530a7 (bug 1686831)
Backed out changeset b64d3e89bf68 (bug 1686831)
Backed out changeset dcc6396e455a (bug 1686831)
2021-01-28 09:55:28 +02:00
Mike Hommey 210911c78c Bug 1686831 - Use double-conversion for mozilla::PrintfTarget::cvt_f. r=nika
This makes mozilla::PrintfTarget consistent across all locales (not
printing e.g. "," instead of "." for the decimal point in floats in some
locales)

This implementation passes all the glibc tests in stdio-common/tfformat.c
except two tests because of the difference in how values like e.g 0.25 are
rounded. Printf in glibc and on MacOS, as well as Rust std::fmt, round to
nearest, ties to even. Double-conversion, as well as printf on Windows
and conversion functions in ECMAScript round to nearest, ties away from
zero.

The standard for printf says rounding is implementation-defined so
either way is technically correct.

Differential Revision: https://phabricator.services.mozilla.com/D102699
2021-01-28 04:56:57 +00:00
Mike Hommey f6c043db8f Bug 1686831 - Add some more double formatting tests. r=nika
Patch sent upstream. https://sourceware.org/bugzilla/show_bug.cgi?id=27245

Differential Revision: https://phabricator.services.mozilla.com/D103135
2021-01-27 22:53:21 +00:00
Mike Hommey ba38386d81 Bug 1686831 - Hook glibc printf tests in TestPrintf.cpp. r=nika,mhoye
It is worth noting that some of these tests fail on Windows for rounding
difference reasons (see later commit from this bug for more details),
and on both Windows and mac for differences in formatting for INFINITY
and NAN. All the tests pass on Linux (since the underlying printf is
currently glibc's).

Differential Revision: https://phabricator.services.mozilla.com/D103133
2021-01-27 23:10:02 +00:00
Mike Hommey c776e2a4de Bug 1686831 - Still apply fillers when no numbers are printed. r=Gankra
The standard for printf says that for integers, the result of converting
zero with an explicit precision of zero shall be no characters. But
flags and width still need to apply.

Differential Revision: https://phabricator.services.mozilla.com/D102696
2021-01-27 01:06:44 +00:00
Mike Hommey 4c520112c0 Bug 1686831 - Add support for %F and %G, and properly support %n$E. r=nika,Gankra
%F and %G are the same as %f and %g, but using caps for the exponent
indicator, and for "inf"/"nan" for infinity and NaN.

%n$E is the same as %E, but taking the nth argument.

Differential Revision: https://phabricator.services.mozilla.com/D102695
2021-01-27 01:06:22 +00:00
Mike Hommey ae6a8b5554 Bug 1686831 - Print out the expected and actual results when failing in TestPrintf. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D103132
2021-01-27 22:43:43 +00:00
Mike Hommey 7208a7a56d Bug 1686831 - Import glibc printf test cases verbatim. r=mhoye
Differential Revision: https://phabricator.services.mozilla.com/D103131
2021-01-27 23:10:02 +00:00
Toshihito Kikuchi 30e3174d58 Bug 1634090 - Block McAfee DLP's module v11.6 or older. r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D103087
2021-01-26 21:09:53 +00:00
Doug Thayer c22b2b6c3f Bug 1687561 - Disable the skeleton UI permanently-ish if we crash during it r=mconley,emalysz
This will disable the skeleton UI if we crash while setting it up, and further
the error will propagate up and get reported via telemetry on the next run.
This is important because we don't have anything like the crash reporter set up
by the time we want to start showing the skeleton UI.

Differential Revision: https://phabricator.services.mozilla.com/D102355
2021-01-26 16:10:28 +00:00
Doug Thayer bfdaa1612c Bug 1686301 - Report errors in skeleton UI via telemetry r=mconley,emalysz
This is, for the most part, just a large refactor of the skeleton UI stuff to
support coarse-grained error reporting via telemetry. There are a few slight
changes in how we handle some errors. For example, if CreateWindow fails, we
will now bail out and report the failure. The flow for the happy path, however,
should remain unchanged.

Differential Revision: https://phabricator.services.mozilla.com/D102098
2021-01-26 16:10:20 +00:00
Kris Wright bbefc50271 Bug 1671572 - Remove suppression for fixed issue. r=decoder
It looks like this may have been fixed around 2 months ago in Bug 1664831: https://searchfox.org/mozilla-central/rev/1ebc9745be02eebf7a694f5c527a44a045b8c97a/gfx/layers/ipc/ShadowLayers.cpp#149

Differential Revision: https://phabricator.services.mozilla.com/D102617
2021-01-22 14:36:42 +00:00
Alexis Beingessner bf73a5ae13 Bug 1685857 - fix signatures for crossbeam_deque supressions. r=decoder
they weren't matching due to the lack of ::deque::, so make the * cover more

Differential Revision: https://phabricator.services.mozilla.com/D101626
2021-01-25 17:35:07 +00:00
Toshihito Kikuchi d48622e17a Bug 1686229 - Part3. Display a module's loading status on about:support. r=Gijs,fluent-reviewers
This patch displays the new telemetry field "loadStatus", which was introduced
by the earlier patch, on about:support.  With this information, a user can see
each of injected modules was really loaded or blocked by our DLL blocklist.

Differential Revision: https://phabricator.services.mozilla.com/D102409
2021-01-22 21:40:46 +00:00
Toshihito Kikuchi 3aef28a656 Bug 1686229 - Part1. Add a member to ModuleLoadInfo to indicate the status of DLL load. r=mhowell
We used to record a DLL loading event only when a module was loaded.
With this patch, we record an event for a module blocked by our DLL
blocklist as well as a loaded module.  It is achieved by calling
to `ModuleLoadFrame::NotifySectionMap` in `patched_NtMapViewOfSection`
regardless of the block action.

This patch introduces a new member `ModuleLoadInfo::mStatus` and
`ProcessedModuleLoadEvent::mLoadStatus` to keep the DLL loading status,
which will be added to the third-party-modules ping by a following patch.

Differential Revision: https://phabricator.services.mozilla.com/D102407
2021-01-23 00:12:49 +00:00
Emma Malysz 471404aa23 Bug 1686374, adjust margins if bookmarks toolbar is shown r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D101647
2021-01-22 20:59:21 +00:00
Butkovits Atila a2c76f128f Backed out 3 changesets (bug 1686229) for causing failure on test_ThirdPartyModulesPing.js.
Backed out changeset f8a9c1efddec (bug 1686229)
Backed out changeset a839d56cb678 (bug 1686229)
Backed out changeset 1878295822f4 (bug 1686229)
2021-01-22 22:56:05 +02:00
Toshihito Kikuchi 9eb85d8f26 Bug 1686229 - Part3. Display a module's loading status on about:support. r=Gijs,fluent-reviewers
This patch displays the new telemetry field "loadStatus", which was introduced
by the earlier patch, on about:support.  With this information, a user can see
each of injected modules was really loaded or blocked by our DLL blocklist.

Differential Revision: https://phabricator.services.mozilla.com/D102409
2021-01-22 14:41:47 +00:00
Toshihito Kikuchi 17dbb35c1b Bug 1686229 - Part1. Add a member to ModuleLoadInfo to indicate the status of DLL load. r=mhowell
We used to record a DLL loading event only when a module was loaded.
With this patch, we record an event for a module blocked by our DLL
blocklist as well as a loaded module.  It is achieved by calling
to `ModuleLoadFrame::NotifySectionMap` in `patched_NtMapViewOfSection`
regardless of the block action.

This patch introduces a new member `ModuleLoadInfo::mStatus` and
`ProcessedModuleLoadEvent::mLoadStatus` to keep the DLL loading status,
which will be added to the third-party-modules ping by a following patch.

Differential Revision: https://phabricator.services.mozilla.com/D102407
2021-01-22 14:41:14 +00:00
Alexis Beingessner 5d1c059485 Bug 1683357 - supress issue found while bringing up wpt. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D102319
2021-01-22 14:20:32 +00:00
Alexis Beingessner 933609837a Bug 1682928 - supress issue found while bringing up wpt. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D102318
2021-01-22 14:20:22 +00:00
Alexis Beingessner 8c088adfd1 Bug 1682861 - Add supression for likely false-positive. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D102317
2021-01-22 14:20:14 +00:00
Kris Wright 6e005283fa Bug 1645696 - Remove suppressions for issue. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D101370
2021-01-21 10:57:05 +00:00
Kris Wright 207c544f93 Bug 1607138 - Remove suppression for gXPCOMThreadsShutdown r=decoder
This is no longer going to be detected by tsan. I figure with full shutdown enabled we should be able to see if there were other issues around this one.

Differential Revision: https://phabricator.services.mozilla.com/D102487
2021-01-21 11:06:22 +00:00
Florian Quèze a350b3e6d3 Bug 1687709 - enable the CPU utilization feature by default for startup profiling, r=gerald.
Differential Revision: https://phabricator.services.mozilla.com/D102451
2021-01-21 11:05:25 +00:00
Greg Tatum 15991a04d2 Bug 1680517 - Tweak the TextMarker display schema; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D98610
2020-12-03 21:44:28 +00:00
Geoff Lankow 610cbaea58 Bug 1667294 - Skip parts of SandboxBroker::LaunchApp when launching a Thunderbird process. r=tkikuchi
Thunderbird does not yet have the same blocklist initialization as Firefox, so we skip calling InitDllBlocklistOOP to avoid a MOZ_RELEASE_ASSERT.

Differential Revision: https://phabricator.services.mozilla.com/D99173
2021-01-19 22:33:02 +00:00
Emma Malysz c03e8de87c Bug 1686558, adjust tabbar and factor in the top border r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D101649
2021-01-19 06:12:11 +00:00
Alexis Beingessner 6cf6d9fd33 Bug 1682948 - properly hold the CacheEntry's lock when accessing mPinned. r=necko-reviewers,dragana,decoder
Differential Revision: https://phabricator.services.mozilla.com/D100248
2021-01-18 13:55:30 +00:00
Molly Howell d625812205 Bug 1687038 - Disable the skeleton UI when the headless mode environment variable is set. r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D102040
2021-01-15 21:51:19 +00:00
Emma Malysz ba5a035505 Bug 1686373, adjust chrome content divider color for light theme and urlbar border color for Skeleton UI r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D101520
2021-01-15 17:04:17 +00:00
Toshihito Kikuchi 7545ed9378 Bug 1684532 - Detect injected dependent modules in NtMapViewOfSection. r=mhowell
This patch is to improve the way to detect an injected dependent module for
automatic DLL blocking (bug 1659438).

In the previous version, we created a list of dependent modules in the launcher
process and shared it with other processes via the shared section.  However, it
was not compatible with third-party applications who tamper the Import Table and
revert it in the injected module's DllMain (bug 1682834) because we parsed the
Import Table in the launcher process after it was reverted.

With this patch, we check the Import Table in `patched_NtMapViewOfSection`,
so we can see tampering before it's reverted.  More specifically, we create
a list of dependent modules in the browser process as below.

1. The launcher process creates a section object and initializes
   the kernel32.dll's functions in it.

2. The launcher process transfers a writable handle of the shared
   section to the browser process.

3. In the browser process, if an injected dependent module is being
   mapped by `NtMapViewOfSection`, we add its NT path to the shared
   section and block it with `REDIRECT_TO_NOOP_ENTRYPOINT`.

4. The `main` function of the browser process converts the writable
   handle of the shared section into a readonly handle.

5. The browser process transfers a readonly handle of the shared
   section to a sandbox process.

Since automatic DLL blocking may still cause a compat issue like bug 1682304,
we activate it only in Nightly for now.

Differential Revision: https://phabricator.services.mozilla.com/D101460
2021-01-13 15:13:18 +00:00
Razvan Maries f3b6c8915f Merge autoland to mozilla-central a=merge 2021-01-13 12:01:12 +02:00
Brindusan Cristian 07342ce091 Backed out changeset a4bf5887fc2a (bug 1680402) for being the most likely cause of bug 1686387. a=backout 2021-01-13 06:30:08 +02:00
Gerald Squelart 46d0db1b2c Bug 1677130 - Allow out-of-order ReleaseChunk - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D100860
2021-01-12 23:30:27 +00:00
Paul Adenot b8fa268285 Bug 1205985 - Implement something to get the process uptime with and without the time the device was suspended. r=haik,dmajor,jld
Differential Revision: https://phabricator.services.mozilla.com/D99138
2021-01-12 12:34:59 +00:00
Jeff Muizelaar b19b4aa8ba Bug 1680402. Use stderr in printf_stderr instead of reopening fd 2. r=glandium
Currently, printf_stderr doesn't show up when running with ./mach run.
This is because we run with -attach-console and that redirects stderr
to a different file descriptor using freopen in UseParentConsole.

The change from just using stderr directly happened in bug 340443 and was done
to avoid some linking issues. That problem doesn't seem to apply anymore so you'd
expect we'd be able to go back to the straightforward implemention that works even
if stderr has been redirected. Unforunately, Windows takes not buffering
stderr very seriously and fprintf will write out the results character
by character. This can cause log output lines to be intermixed which
breaks log parsing in CI. We keep using fdopen to create a new FILE*
that's buffered but instead of hard coding fd 2, we get the actual fd
that corresponds to stderr using fileno.

The mozglue implementation was cargo culted from xpcom, so we update it
as well.

Differential Revision: https://phabricator.services.mozilla.com/D98550
2021-01-12 14:54:48 +00:00
Mihai Alexandru Michis f12a97c159 Backed out 3 changesets (bug 1205985) for causing xpcshell failures in test_TelemetrySession.js
CLOSED TREE

Backed out changeset f82f5070bee5 (bug 1205985)
Backed out changeset 89b03879ce7d (bug 1205985)
Backed out changeset 9ba60febbcf8 (bug 1205985)
2021-01-11 13:44:23 +02:00
Paul Adenot 57e6014622 Bug 1205985 - Implement something to get the process uptime with and without the time the device was suspended. r=haik,dmajor,jld
Differential Revision: https://phabricator.services.mozilla.com/D99138
2021-01-11 10:05:29 +00:00
Gerald Squelart 4ad68eb4c1 Bug 1651863 - ProfileBufferChunkManager::ReleaseChunk (no 's' anymore) only accepts zero or one chunk - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D100859
2021-01-08 12:11:18 +00:00
Alexis Beingessner 9f7253d99b Bug 1682948 - supress issue found while enabling full shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D101198
2021-01-08 20:08:11 +00:00
Alexis Beingessner 825f7cecb0 Bug 1623541 - suppress issue found while enabling full tsan shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100948
2021-01-08 20:08:02 +00:00
Alexis Beingessner 8ad1efbd2e Bug 1682951 - supress issue found while enabling full tsan shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100359
2021-01-08 20:07:53 +00:00
Alexis Beingessner 2f349670d9 Bug 1645696 - suppress issue that gets worse with full shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100358
2021-01-08 20:07:43 +00:00
Alexis Beingessner cd8995fefc Bug 1683404 - supress issue found while enabling full tsan shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100268
2021-01-08 20:07:36 +00:00
Alexis Beingessner 13a9bf68af Bug 1683417 - supress issue found while enabling full tsan shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100267
2021-01-08 20:07:34 +00:00
Alexis Beingessner fc79d42a7f Bug 1683439 - supress issue found while enabling full tsan shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100266
2021-01-08 20:07:24 +00:00
Alexis Beingessner dd490980a5 Bug 1607588 - add back supression for code that gets stressed more in a full shutdown. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100265
2021-01-08 20:07:11 +00:00
Alexis Beingessner 9a491a3519 Bug 1683730 - Enable full shutdown under tsan. r=decoder
This eliminates all of the thread leaks we had on record, while also increasing
our coverage on the code that's used for testing firefox.

Differential Revision: https://phabricator.services.mozilla.com/D100264
2021-01-08 20:07:04 +00:00
Kris Wright f3958b2bdc Bug 1683732 - Add a bug number for ImageBridgeChild to TsanOptions.cpp r=decoder
`ImageBridgeChild` was turned into a one-off thread due to a deadlock, but when bug 1672255 is finished we can revert the changes back to a background task queue without any issues and get rid of these suppressions.

Differential Revision: https://phabricator.services.mozilla.com/D100257
2020-12-23 09:36:52 +00:00
Gerald Squelart ecaf794c38 Bug 1329600 - Scaffolding to output CPU measurements in samples - r=canaltinova
The `RunningTimes` class stores CPU measurements. It may seem overkill for only one value, but in the future more measurements will be added.

During sampling, CPU measurements are collected by platform-specific code. This patch doesn't produce anything yet, see later patches.
These are stored with the samples.
Note that for duplicated samples (when a thread is known to be "asleep"), we still need to collect new measurements, because there could potentially be some activity happening, e.g. in system calls.
Finally the measurements are output as extra "samples" values.

Units for these values may platform-specific, so they are stored in the top-level JSON "meta" object.

We don't collect running times in the Base Profiler (yet), but we still need to add the appropriate field names in the samples' "schema", as expected by profiler.firefox.com.

Differential Revision: https://phabricator.services.mozilla.com/D99413
2021-01-04 07:19:16 +00:00
Gerald Squelart 484485975e Bug 1679930 - Add ActivePS experimental feature "CPU Utilization" - r=canaltinova
This patch adds "CPU Utilization" ("cpu" for short) as a new feature that will control the upcoming still-experimental CPU measurements.

Differential Revision: https://phabricator.services.mozilla.com/D99054
2021-01-04 07:17:38 +00:00
Gerald Squelart 581ab50327 Bug 1679930 - When the sampler thread function starts, it can store all ActivePS features - r=canaltinova
Instead of only capturing one feature (NoStackSampling), the sampler thread now stores all features so that any feature can be quickly looked at during sampling.

Currently this is still limited to NoStackSampling, a later patch will start using another feature.

Differential Revision: https://phabricator.services.mozilla.com/D99053
2021-01-04 07:16:59 +00:00
Narcis Beleuzu 77844a7997 Backed out 2 changesets (bug 1681445) for causing Bug 1684265
Backed out changeset 3246c882a0da (bug 1681445)
Backed out changeset 38d0eb18ea7a (bug 1681445)
2020-12-28 18:41:59 +02:00
Masatoshi Kimura e70bf4efaa Bug 1684110 - Stop using some 'A'-functions in TestDllInterceptor. r=tkikuchi
Differential Revision: https://phabricator.services.mozilla.com/D100419
2020-12-27 08:40:36 +00:00
Masatoshi Kimura 05b71dcf6e Bug 1684110 - Stop using some 'A'-functions in mozglue/. r=mhowell
Depends on D100465

Differential Revision: https://phabricator.services.mozilla.com/D100466
2020-12-26 00:46:34 +00:00
Masatoshi Kimura f416e99ce3 Bug 1684110 - Stop using some 'A'-functions in mozglue/baseprofiler/. r=gerald
Since modulePath and moduleName are passed to JSONWriter, they must be encoded
in UTF-8. The current code is wrong.

Differential Revision: https://phabricator.services.mozilla.com/D100418
2020-12-24 03:45:28 +00:00
Mike Hommey 4f4d6697ad Bug 1681445 - Add support for macOS in TimeStamp_posix.cpp. r=spohl
Now is already supported when CLOCK_MONOTONIC is supported, but
ComputeProcessUptime is not.  This shares the code with other BSDs, and
makes it look like the implementation in Timestamp_darwin.cpp.

Eventually, we'll remove the one from Timestamp_darwin.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D100069
2020-12-18 15:48:55 +00:00
Emma Malysz 3fa05e5db6 Bug 1671603: display skeleton ui elements in correct position when RTL is enabled r=dthayer
Stores the value of intl.uidirection in the registry

Differential Revision: https://phabricator.services.mozilla.com/D99559
2020-12-22 17:22:07 +00:00
Gerald Squelart 8d7e1cf68d Bug 1678651 - Increase expected max stack record size to 128KB - r=canaltinova
Some sites do have stacks that require more than 64KB to store in the profiler buffer.
Note that this only affects one semi-permanent buffer per process during profiling, and short-lived buffers when capturing stacks in markers.

Differential Revision: https://phabricator.services.mozilla.com/D99981
2020-12-22 10:51:12 +00:00
Gerald Squelart f1f98f5879 Bug 1678651 - Centralize scExpectedMaximumStackSize in ProfileBufferChunkManager - r=canaltinova
The "expected maximum stack size" (currently 64KiB) value was present in multiple places.
Now it's accessible from everywhere as ProfileBufferChunkManager::scExpectedMaximumStackSize, so it's easier to modify as needed.

Differential Revision: https://phabricator.services.mozilla.com/D100222
2020-12-22 10:50:54 +00:00
Gerald Squelart 2c7a8524ac Bug 1678651 - ProfilerChunkedBuffer: Always mark current chunk full when entry doesn't fit - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D99980
2020-12-22 10:50:16 +00:00
Gerald Squelart 72310c2c2a Bug 1678651 - Better ProfileChunkedBuffer::Clear(), recycles released chunks - r=canaltinova
Instead of discarding released chunks, we keep them as "next" chunks, and we make sure there's a valid "current" chunk when possible.

Recycling released chunks means that when using the `ProfileBufferChunkManagerSingle`, the one chunk, in whichever state it may be, will be kept alive and reused.

Differential Revision: https://phabricator.services.mozilla.com/D99979
2020-12-22 10:49:53 +00:00
Gerald Squelart a611efcb7f Bug 1678651 - ProfileChunkedBuffer now keeps track of failed puts - r=canaltinova
When a "Put" operation fails (most probably because no chunk was available to store the data), we remember the number of bytes that couldn't be stored.
This can be useful to give an indication of how much more memory would have been needed for successful puts.

Differential Revision: https://phabricator.services.mozilla.com/D99977
2020-12-22 10:49:12 +00:00
Gerald Squelart 058a0fdb7e Bug 1678651 - Rewrote TestChunkedBufferSingle() to better test buffer-filling scenarios - r=canaltinova
This bug has revealed some issues when the single chunk gets filled, and there are different paths depending on whether the chunk is filled right to the end, or past it.
Later patches will fix these issues and update these tests accordingly.

Differential Revision: https://phabricator.services.mozilla.com/D99976
2020-12-22 10:48:49 +00:00
Gerald Squelart f11383c57a Bug 1678651 - Added ProfileChunkedBuffer state tests - r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D99975
2020-12-22 10:48:26 +00:00
Gerald Squelart c0e87f0baa Bug 1678651 - Better debugging assertions in ProfileBufferChunk - r=canaltinova
In DEBUG builds, instead of only testing for the expected chunk state(s), there are now separate assertions for each *un*expected state, which makes it much easier to track the source of failures.

Differential Revision: https://phabricator.services.mozilla.com/D99974
2020-12-22 10:48:08 +00:00
Razvan Maries 6d1746e38b Backed out changeset ef0570dd669b (bug 1664535) for High frequency failures. CLOSED TREE 2020-12-18 22:32:54 +02:00
Alexis Beingessner e2c438e4c8 Bug 1682143 - Add a few more variants of the crossbeam supression. r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100021
2020-12-18 17:00:35 +00:00
Jon Coppeard e6a7c3288b Bug 1664535 - Remove TSAN suppression now write barriers are not triggered on background threads r=decoder
Differential Revision: https://phabricator.services.mozilla.com/D100139
2020-12-18 16:59:51 +00:00
Doug Thayer 42a30153d4 Bug 1678488 - Only show skeleton UI if autoselecting profile r=mossop
So this is an ugly solution, but it was the best I could come up with. We do
not want to show the skeleton UI if we're going to show the profile manager,
and we *will* show the profile manager if StartWithLastProfile=0 is under
[General] in profiles.ini. Accordingly the only ways to do the correct thing
here are to try to mirror edits that firefox makes to the profiles.ini file
to the registry, or to simply read the profiles.ini file ourselves. There are
many ways that profiles.ini could get out of sync with the registry if we
tried to mirror its state there, so going straight to the source of truth
seemed the best option.

There is one case which is still not covered here: if there is no profile for
our install marked as Default=1, then we will show the profile manager. This
should only be possible if the user manually edits their profiles.ini file,
however, and then it should resolve itself after one run, so I don't consider
it a significant enough problem to jump through all the hoops we would need
to jump through to solve it.

Depends on D98525

Differential Revision: https://phabricator.services.mozilla.com/D98936
2020-12-17 16:44:01 +00:00
smolnar 8fca43061d Backed out changeset 5d120a154a6b (bug 1674776) as requested. CLOSED TREE DONTBUILD 2020-12-17 03:22:33 +02:00
Hiroyuki Ikezoe f78a1ad627 Bug 1674776 - Update DocumentTimeline::mLastRefreshDriverTime outside parallel styling. r=boris,decoder
Note that we can probably use mLastRefreshDriverTime directly in
DocumentTimeline::GetCurrentTimeStamp(), i.e. we don't need to use the refresh
driver there, but I'd preserve the current behavior.

Differential Revision: https://phabricator.services.mozilla.com/D97823
2020-12-17 00:51:18 +00:00
Andreea Pavel 9159ca1ff4 Backed out changeset 847bca011f0f (bug 1674776) for causing bug 1682472 on a CLOSED TREE 2020-12-16 12:59:13 +02:00
Steve Fink a1215827bb Bug 1673756 - Add GCCC subcategories for several phases of CC r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D99737
2020-12-15 16:48:23 +00:00
Hiroyuki Ikezoe bc1eb2e0f6 Bug 1674776 - Update DocumentTimeline::mLastRefreshDriverTime outside parallel styling. r=boris,decoder
Note that we can probably use mLastRefreshDriverTime directly in
DocumentTimeline::GetCurrentTimeStamp(), i.e. we don't need to use the refresh
driver there, but I'd preserve the current behavior.

Differential Revision: https://phabricator.services.mozilla.com/D97823
2020-12-14 23:55:06 +00:00