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

2066 Коммитов

Автор SHA1 Сообщение Дата
Razvan Maries cb87085ec4 Backed out 3 changesets (bug 1572337) ford perma fails. CLOSED TREE
Backed out changeset 00da7156d3fa (bug 1572337)
Backed out changeset 4eda65e054d8 (bug 1572337)
Backed out changeset ea6d5b4b038b (bug 1572337)
2019-11-07 17:29:46 +02:00
Ciure Andrei b7c3599997 Backed out 3 changesets (bug 1572337, bug 1594015) for causing linting failures and build bustages CLOSED TREE
Backed out changeset 25f074eb5074 (bug 1594015)
Backed out changeset fc8a37c2c22c (bug 1572337)
Backed out changeset 913d6bd82284 (bug 1572337)
2019-11-07 16:37:00 +02:00
Ciure Andrei 355aa03f2d Backed out changeset b3510afc9f79 (bug 1572337) for causing a linting failure in platform.cpp CLOSED TREE 2019-11-07 16:23:15 +02:00
Randell Jesup d378e8fe32 Bug 1572337: Test that we get non-0 responsiveness values in the profiler r=gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D41637

--HG--
extra : moz-landing-system : lando
2019-11-07 12:53:37 +00:00
Randell Jesup 95be6cffe0 Bug 1572337: Remove old responsiveness profiler measurement r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D44060

--HG--
extra : moz-landing-system : lando
2019-11-07 12:53:35 +00:00
Randell Jesup 1cca5fd890 Bug 1572337: replace Responsiveness measurement with Event delay measurements r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D41280

--HG--
extra : moz-landing-system : lando
2019-11-07 13:18:18 +00:00
Randell Jesup 0be1d80429 Bug 1572337: ensure MainThread is registered with the profiler properly r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D41619

--HG--
extra : moz-landing-system : lando
2019-11-07 12:53:26 +00:00
Gerald Squelart 98288106ad Bug 1593112 - Store responsiveness between TimeBeforeCompactStack and CompactStack - r=gregtatum
The responsiveness was stored with periodic stack samples.
Since bug 1581049, periodic stack samples are now contained within a single
"modern" `CompactStack` entry.
When a thread is sleeping, `CompactStack`s are simply copied verbatim, including
the responsiveness, which doesn't make sense because since we're sleeping so the
responsiveness should still increase.

To avoid duplicating the responsiveness, it is now stored as a separate buffer
entry `UnresponsiveDurationMs` before the `CompactStack`; this replaces the
legacy entry `Responsiveness` that was stored at the end of the stack.

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

--HG--
extra : moz-landing-system : lando
2019-11-06 04:05:33 +00:00
Gerald Squelart f054be87a1 Bug 1593112 - Updated buffer grammar to match samples storage - r=gregtatum
Differential Revision: https://phabricator.services.mozilla.com/D51553

--HG--
extra : moz-landing-system : lando
2019-11-05 03:34:36 +00:00
Jim Porter faac13944b Bug 1592818 - Add unit tests for IPCMarkerPayload; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D51198

--HG--
extra : moz-landing-system : lando
2019-11-05 03:56:38 +00:00
Nazım Can Altınova 907062f683 Bug 1586105 - Requesting the complete log to be able to debug intermittent timeout. r=julienw
Differential Revision: https://phabricator.services.mozilla.com/D51605

--HG--
extra : moz-landing-system : lando
2019-11-04 13:46:59 +00:00
Gerald Squelart 59ae42cf8b Bug 1592887 - Gecko Profiler range starts at 1, discard Base Profile when >1 - r=florian
The buffer range starts at 1 (the first valid entry, 0 is reserved as
null marker). So if it now starts *after* 1, it means we have started to
overwrite our oldest data, and we should get rid of Base profiles if any.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 13:49:53 +00:00
Gerald Squelart 1824e6f651 Bug 1584190 - In JSON profile, counters' sample_groups should be an array of objects - r=canaltinova
profile.counters[n].sample_groups was mistakenly streamed as an object, which
prevents having more than one, and goes against the published format
documentation.

The front-end was implemented to process the incorrect format, so it will need
to be updated as well; hence the version change to 18.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 22:20:06 +00:00
Gerald Squelart 9afa65594d Bug 1579333 - Replace doAtLeastOnePeriodicSample() with nsIProfiler.waitOnePeriodicSampling() - r=gregtatum
Instead of requesting profiles until it "seems" to have collected something,
use `nsIProfiler.waitOnePeriodicSampling()` to really wait for a sample to be
taken.

Note that this means some test could theoretically fail if they were in fact
waiting for stack samples to appear in the first registered thread. If that
happens, these tests should be udpated to do that extra wait-for-data.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 21:50:20 +00:00
Gerald Squelart 9bcbe1a229 Bug 1579333 - nsIProfiler.waitOnePeriodicSampling() - r=gregtatum,froydnj
`nsIProfiler.waitOnePeriodicSampling()` returns a promise that gets resolved
after the next full periodic sampling. The promise is rejected if the sampler is
not running.

Implementation detail: `Promise` uses single-threaded ref-counting, so special
care is needed not to touch it in the sampler thread. Safe ref-counting is
handled by `nsMainThreadPtrHolder` and `nsMainThreadPtrHandle`. And the promise
is only resolved/rejected on the main thread.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 21:50:11 +00:00
Gerald Squelart 403ddd8cdf Bug 1579333 - profiler_callback_after_sampling() - r=gregtatum
Register a callback to be invoked the next time the Sampler thread ends its
periodic loop.
Registration may fail (e.g., if the profiler is not active), in which case the
callback is never called.
After successful registration the callback is guaranteed to be invoked after the
sampler runs, or stops running.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 21:50:07 +00:00
Gerald Squelart 735dc941aa Bug 1540340 - Prevent ProfilerIOInterposeObserver recursive locking - r=gregtatum
The source of deadlock is due to profiler->lock->IO->interposer->profiler->lock
loops, where the second profiler call tries to lock the profiler mutex again.

Thanks to `profiler_is_locked_on_current_thread` the interposer can now check
whether the mutex is already locked, in which case it just won't call profiler
functions anymore, breaking the loop.

And now the profiler doesn't need to manually pause/resume/unregister the
(potential) interposer when doing I/Os.

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

--HG--
extra : moz-landing-system : lando
2019-10-25 21:28:55 +00:00
Gerald Squelart f41e95f095 Bug 1540340 - PSMutex can more accurately determine if the current thread owns the lock - r=njn,gregtatum
PSMutex can store the id of the thread owning the lock, and it's safe to check
whether the current thread owns that lock (either it does and no-one else can
change it, or it's another id).

Comments related to memory hooks have been moved to memory_hooks.cpp, because
`profiler_is_locked_on_current_thread()` could be used for other things.

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

--HG--
extra : moz-landing-system : lando
2019-10-25 03:13:50 +00:00
Julian Seward 15bcf2d929 Bug 1584976 - LUL on x86_64-{android, linux}: accept .eh_frame with type as either SHT_PROGBITS or SHT_X86_64_UNWIND. r=mstange.
The LUL unwinder on x86_64-android and x86_64-linux tries to read Dwarf unwind
information from the ELF section named ".eh_frame", and expects the section to
have type SHT_PROGBITS.  It appears that that section might instead have the
type SHT_X86_64_UNWIND, possibly as a result of recent toolchain (linker?)
changes.  This patch tracks that change.

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

--HG--
extra : moz-landing-system : lando
2019-10-24 16:26:09 +00:00
Mihai Alexandru Michis 9fe7c34350 Backed out 2 changesets (bug 1540340) for causing bustages in shared-libraries-linux.cc and profiler/core/platform.cpp CLOSED TREE
Backed out changeset 4ee4cde55851 (bug 1540340)
Backed out changeset be6a82fd75e9 (bug 1540340)
2019-10-24 09:24:15 +03:00
Gerald Squelart 638c8cdc32 Bug 1540340 - Prevent logging when mainthredio is enabled - r=gregtatum
Logging could be intercepted by the I/O interposer, which takes the lock, this
could deadlock if the mutex had already been taken in the same thread (e.g., by
a "locked" profiler function that wants to log something).

Now, functions that hold the lock must use `LOG_LOCKED(lock, ...)`, which will
skip logging when the I/O interposer is running.
In DEBUG builds, `LOG()` checks that the lock is not owned, to find possible
misuses.

`LOG()`s outside of platform.cpp were changed to `NS_WARNING`s, because they
could not access `gPSMutex` that's defined in platform.cpp; and they're really
warnings anyway.

Some interposer pauses/resumes have been relocated to more appropriate spots:
- Not needed around `locked_profiler_stream_json_for_this_process` anymore,
  thanks to `LOG_LOCKED` inside.
- Definitely needed around `std::ofstream` operations in
  `locked_profiler_save_profile_to_file`.

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

--HG--
extra : moz-landing-system : lando
2019-10-24 05:55:02 +00:00
Gerald Squelart 574e6bc487 Bug 1540340 - PSMutex can more accurately determine if the current thread owns the lock - r=njn,gregtatum
PSMutex can store the id of the thread owning the lock, and it's safe to check
whether the current thread owns that lock (either it does and no-one else can
change it, or it's another id).

Comments related to memory hooks have been moved to memory_hooks.cpp, because
`profiler_is_locked_on_current_thread()` could be used for other things.

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

--HG--
extra : moz-landing-system : lando
2019-10-24 05:54:49 +00:00
Nazım Can Altınova 809db7ead1 Bug 1587907 - Move test content inside the BrowserTestUtils.withNewTab function callback r=gregtatum
In Bug 1587907 we got some contentPid not found errors. It seemed like we were
failing intermittently at getting content pid. After moving test content inside
the BrowserTestUtils.withNewTab callback, we won't get the same error anymore.
Also from my testing, it looks like it makes the test execution faster. We were
getting some intermittents before because of the timeouts, these will be fixed
if my testing is correct.

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

--HG--
extra : moz-landing-system : lando
2019-10-21 16:43:31 +00:00
Gerald Squelart 0e19d51a0a Bug 1583431 - Test "No Stack Sampling" feature - r=julienw
Differential Revision: https://phabricator.services.mozilla.com/D49234

--HG--
extra : moz-landing-system : lando
2019-10-22 05:37:14 +00:00
Gerald Squelart edd497462f Bug 1583431 - Don't wait for samples in marker-only tests - r=gregtatum,julienw
Since markers are stored directly into the buffer:
- We don't need to wait for a sampling run to collect them,
- No markers are left uncollected between the last sampling and the time we stop
  the profiler.

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

--HG--
extra : moz-landing-system : lando
2019-10-22 05:37:07 +00:00
Gerald Squelart d57761d32e Bug 1583431 - stopProfilerNowAndGetThreads doesn't wait for samples - r=julienw
`stopProfilerAndGetThreads()` waits until at least one sample appears in the
main thread, before capturing a profile and stopping the profiler.

`stopProfilerNowAndGetThreads()` does not wait; this should be useful in tests
that may not generate any samples (e.g., using the nostacksampling feature).

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

--HG--
extra : moz-landing-system : lando
2019-10-22 05:37:00 +00:00
Jim Porter 9354dfda4a Bug 1557447 - Profiler support for IPC information; r=nika,smaug
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-21 20:51:07 +00:00
Daniel Varga 8fdca46bc7 Backed out changeset 2923afce519a (bug 1557447) for browser chrome failure at tools/profiler/tests/browser/browser_test_feature_preferencereads.js. On a CLOSED TREE 2019-10-18 07:54:09 +03:00
Jim Porter 80bfcd6e57 Bug 1557447 - Profiler support for IPC information; r=nika
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-18 02:56:02 +00:00
Dorel Luca efd52379da Backed out changeset cd4dc0ae3364 (bug 1557447) for Browser-chrome failures in build/src/obj-firefox/dist/include/mozilla/BlocksRingBuffer.h 2019-10-18 03:59:06 +03:00
Jim Porter db91ad6767 Bug 1557447 part 2 - Remove unnecessary declarations from bug 1575448; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D46389

--HG--
extra : moz-landing-system : lando
2019-10-17 23:39:44 +00:00
Jim Porter 641b95fb72 Bug 1557447 - Profiler support for IPC information; r=nika
This adds the ability to add profile markers for both the sender and recipient
sides of IPC messages. These can then be correlated with one another in the
profile visualization. For the UI component of this patch, see
<https://github.com/firefox-devtools/profiler/pull/2172>.

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

--HG--
extra : moz-landing-system : lando
2019-10-17 23:39:42 +00:00
Jan de Mooij 6febd292ea Bug 1586683 - Remove flat strings from JSAPI. r=jwalden,bzbarsky
We want to remove flat strings (JSFlatString). With this patch we only expose
linear strings (JSLinearString) to API consumers.

This is very mechanical for the most part, because code typically only cares
about linear strings and not the null-termination aspect.

CTypes's Library.cpp has some Windows-specific code where we relied on null-terminated
strings. This patch adds JS_CopyStringCharsZ for that use case.

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

--HG--
extra : moz-landing-system : lando
2019-10-14 09:32:07 +00:00
Greg Tatum 03cd55fe37 Bug 1587503 - Provide a mechanism to inspect the current profiler configuration; r=gerald
This patch creates a new API to the nsIProfiler interface, through the activeConfiguration
property. It exposes the internal configuration of the profiler. In addition, this information
is serialized into the profile meta object.

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

--HG--
extra : moz-landing-system : lando
2019-10-11 18:22:42 +00:00
Gerald Squelart d24177fe2a Bug 1587332 - Encapsulate ActivePS::mProfileBuffer as a ProfileBuffer value - r=canaltinova
Having `mProfileBuffer` be a pointer is not really helpful:
- The pointer is never null (It's allocated on ActivePS construction, and
  implicitly deleted on ActivePS destruction); it's never moved-from.
- It requires an extra `new` and an extra `delete`.

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

--HG--
extra : moz-landing-system : lando
2019-10-10 10:52:09 +00:00
Gerald Squelart dff1750481 Bug 1587329 - MOZ_ASSERT(sInstance) in all functions that dereference sInstance - r=canaltinova
Add assertions that all `sInstance` pointers (from both `CorePS` and `ActivePS`)
are not null before being dereferenced.

This is probably more than needed, but it's only `MOZ_ASSERT`s limited to
Nightly, and it should give better feedback in case something goes wrong.

Eventually, I think it would be better to make most methods non-static, and have
a checked reference-to-instance getter.

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

--HG--
extra : moz-landing-system : lando
2019-10-10 10:51:50 +00:00
Nazım Can Altınova 2e832289ac Bug 1512500 - Record parent page information in profiler r=gerald,nika
Differential Revision: https://phabricator.services.mozilla.com/D47426

--HG--
extra : moz-landing-system : lando
2019-10-09 21:25:19 +00:00
Nazım Can Altınova 265874ce7d Bug 1583271 - Part 4: Update profiler page information tests r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D47268

--HG--
extra : moz-landing-system : lando
2019-10-09 20:58:21 +00:00
Nazım Can Altınova 6379b166c1 Bug 1583271 - Part 3: Remove the disabled assertion and add a mechanism to capture the first non-auto:blank frame r=nika
We are not simply excluding all about:blanks because there might be some
about:blank that user really visits. But for others we don't want to include
the first about:blank because when a BrowsingContext is loaded, and if the
principal matches, the first document loaded in it will share the inner window.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 20:58:06 +00:00
Nazım Can Altınova 20fc64e558 Bug 1583271 - Part 1: Change profiler page information IDs to BrowsingContextID and InnerWindowID r=gerald,nika
We were keeping nsDocShell::mHistoryId and nsDocShell::mOSHE as keys. They
weren't quite good because:
1. While loading an iframe, they were being registered twice with the same
ids(for about:blank and the real URL) sometimes.
2. It wasn't possible to access to the parent mHistoryId and mOSHE from a child
processes if the parent is in a different process. That may not be the case for
now, but it will be after fission.
So we had to find other IDs to:
1. Determine the Tab of the frames.
2. Determine the URLs of the frames.
For the first use case, we were using nsDocShell::mHistoryId for that purpose
but that was wrong. The closest thing that we can get to a tab ID is
BrowsingContext ID because they don't change after a navigation. But iframes
have different BrowsingContext's, so we still need to create a tree to
construct a tab content. That can be either in the front-end or capture time.
For the second use case, we were using a key pair of mHistoryId and mOSHE. We
now chose to keep inner window IDs for that purpose. Inner window IDs are
unique for each navigation loads because inner window correspond to each JS
window global objects. That's why we can use that without any problem. But one
problem is that we cannot handle `history.pushState` and `history.replaceState`
changes with that change since window global objects won't change during those.
But that was the best thing we can do after fission. So this will be a small
sacrifice for us to keep that functionality working after fission.
In that patch we also remove the registration/unregistration calls. We are
going to add those calls in the next patch.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 21:25:11 +00:00
Emilio Cobos Álvarez 99a0148a26 Bug 1587486 - Update object in the rust profiler. r=mstange
This removes a failure and old target-lexicon dependencies.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 18:05:54 +00:00
Gerald Squelart 41f4178d9a Bug 1586132 - Add tests for more ProfilerMarkerPayload.h payloads - r=gregtatum
Test more of the ProfilerMarkerPayload's, all those from ProfilerMarkerPayload.h
that did not require external structures. (More to be added in the future.)

These tests focus on the profiler, by simulating markers as we expect them, and
verifying that the corresponding output is correct JSON as expected by the
frontend.

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

--HG--
extra : moz-landing-system : lando
2019-10-08 01:59:31 +00:00
Gerald Squelart 8c14c7f000 Bug 1586132 - Use jsoncpp to test profiler output in Profiler.Markers gtest - r=gregtatum
This does not test more markers than before. But instead of searching for
strings in the raw json, expected values are checked in the parsed output
profile.

Also some `ASSERT_...` tests could be changed to `EXPECT_...`, because their
failures would not prevent running more of the test.

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

--HG--
extra : moz-landing-system : lando
2019-10-08 02:16:00 +00:00
Gerald Squelart 499b5db10f Bug 1583868 - New profiler feature "nostacksampling" - r=gregtatum
Previously, the absence of "stackwalk", "leaf", and "javascript" implied that
the test/user didn't want any sampling, but this caused issues in some tests
that enabled "stackwalk" on platforms that didn't support stack-walking, which
ended up suppressing label-only stacks that the test expected.

we now have an explicit feature "nostacksampling" that disables backtraces from
the samplers in both profilers. This effectively cancels "stackwalk", "leaf",
and "javascript" if present.

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

--HG--
extra : moz-landing-system : lando
2019-10-01 22:49:13 +00:00
Brindusan Cristian 79e9f1a034 Backed out changeset 8989d1a83de8 (bug 1583868) for xpcshell failures at test_ext_geckoProfiler_schema.js. CLOSED TREE 2019-10-01 22:27:11 +03:00
Gerald Squelart fa7dc1a809 Bug 1583868 - New profiler feature "nostacksampling" - r=gregtatum
Previously, the absence of "stackwalk", "leaf", and "javascript" implied that
the test/user didn't want any sampling, but this caused issues in some tests
that enabled "stackwalk" on platforms that didn't support stack-walking, which
ended up suppressing label-only stacks that the test expected.

we now have an explicit feature "nostacksampling" that disables backtraces from
the samplers in both profilers. This effectively cancels "stackwalk", "leaf",
and "javascript" if present.

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

--HG--
extra : moz-landing-system : lando
2019-10-01 14:00:21 +00:00
Gerald Squelart ab686fa4f7 Bug 1549482 - Rudimentary no-sampling mode - r=gregtatum
If all sampling-related features ("Native Stacks", "JavaScript", and "Native
Leaf Stack") are OFF, the sampler loop will not record any stack samples, not
even from labels, which should reduce the profiler overhead significantly.

This means that the sampling rate could be slowed down (up to 5s interval), to
help reduce the power consumption incurred by wake-ups for sampling.
Markers are not affected by this, and will all be recorded as expected.
However counters (e.g., memory allocations) are still tied to sampling, so their
sampling resolution will be reduced to whatever sampling rate is chosen.

Some existing tests relied on stack sampling happening, so they now enable at
least "leaf". Bug 1579333 may revisit these tests for a better solution (if
possible).

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

--HG--
extra : moz-landing-system : lando
2019-09-24 15:50:19 +00:00
Olli Pettay beb759c519 Bug 1582655, try to make browser_test_feature_preferencereads.js less racy and let browser_test_feature_jsallocations.js to run a bit longer, r=whawkins
Differential Revision: https://phabricator.services.mozilla.com/D46865

--HG--
extra : moz-landing-system : lando
2019-09-24 09:23:35 +00:00
Gerald Squelart 16dbd4f365 Bug 1582992 - Removed unneded BlocksRingBuffer's entry destructor, and ProfilerBuffer's JS::AutoSuppressGCAnalysis - r=gregtatum
`BlocksRingBuffer` had an "entry destructor" to make it a more generic
container, and it was useful during early prototyping of the new profiler
storage (so that we could store owning pointers).
But this entry destructor is stored in an `std::function`, which gets marked as
a potential GC caller by the js rooting hazard analyzer; and as this bug found,
it's not obvious where to place `JS::AutoSuppressGCAnalysis`, because profiler
entries (including stacks) could be added on one thread while GC happens
elsewhere, which triggers the embedded `AutoAssertNoGC` check.

Since we don't actually use the entry destructor facility in the profiler, it's
easier to just get rid of it. As a bonus, it's a small optimization.
Tests that were using an entry destructor now use the `State` instead, to verify
that entries are pushed and cleared as expected.

If needed in the future outside of the profiler, `BlocksRingBuffer` could again
include an entry destructor, but it would have to be through templating, so that
the class used in the profiler wouldn't contain an `std::function`.

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

--HG--
extra : moz-landing-system : lando
2019-09-23 20:50:20 +00:00
Greg Tatum 1700229ac1 Bug 1564475 - Add a native allocation profiling test; r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D42198

--HG--
extra : moz-landing-system : lando
2019-09-18 18:47:03 +00:00