The summary class just had a moxExpanded which we already have in mozAccessible.
I think the former was added before the latter was generalized for aria-expanded usage.
Differential Revision: https://phabricator.services.mozilla.com/D123516
Array's `filter` method is synchronous which caused its arrow function to
always return true-ish Promises instead of a Boolean value.
No other `filter(async` can be found in the code base.
Differential Revision: https://phabricator.services.mozilla.com/D122051
`profiler_capture_backtrace_into` now only uses thread-safe functions: ThreadRegistration::WithOnThreadRefOf, Register::SyncPopulate, DoSyncSample.
So we don't need to lock the main profiler mutex anymore.
This means that on-thread sampling (typically used in markers) can happen at the same time the periodic sampler has locked the profiler mutex and is sampling this and other threads.
Differential Revision: https://phabricator.services.mozilla.com/D122089
Since these functions don't need to access profiler functions requiring a lock, they themselves don't need that lock anymore.
Differential Revision: https://phabricator.services.mozilla.com/D122088
MergeStack requires a fairly large buffer to store JS frames, too big to be allocated on the stack without risking a stack overflow.
Until now, there was only one buffer, stored in CorePS, and only accessible while holding the Profiler gPSMutex.
Now each thread that has a JSContext, also has its own JS frame buffer, which is accessible on the thread without needing any lock.
The Profiler's Sampler still uses the CorePS buffer for its periodic sampling, but it won't prevent parallel on-thread sampling anymore.
The appropriate buffer is passed to ExtractJsFrames and then MergeStacks.
MergeStacks accepts a null pointer, which happens on threads where there is no JSContext, and therefore no JS to sample.
Differential Revision: https://phabricator.services.mozilla.com/D122087
All implementations of DoNativeBacktrace are now thread-safe, so it's not necessary to make their use dependent on the Profiler's gPSMutex being locked.
Differential Revision: https://phabricator.services.mozilla.com/D122085
`Registers::SyncPopulate()` now uses a ucontext_t that's stored with the `Registers` object, so it can safely be called from parallel threads.
Differential Revision: https://phabricator.services.mozilla.com/D122083
Instead of blindly outputting floating-point numbers of milliseconds, which leads to things like 363.03499999999997, times in ms are now converted to integer number of nanoseconds, stringified, and then manually adjusted to milliseconds again, so we get smaller and friendlier outputs like 363.035.
Eventually, bug 1726675 may change all times to integer number of nanoseconds anyway, but this patch is already helpful in reducing the output, and paves the way by separating the time-output functions from other number outputs.
Differential Revision: https://phabricator.services.mozilla.com/D123329
The purpose of this is to remove as many docstrings from CommandProvider
classes to make the step of moving commands out of classes simpler.
Where possible, the docstring has been moved to or merged with the function.
Differential Revision: https://phabricator.services.mozilla.com/D123288
This patch was generated via:
$ pyupgrade --py36-plus $(find taskcluster/taskgraph -name "*.py" -type f)
$ autoflake --remove-all-unused-imports -i $(find taskcluster/taskgraph -name "*.py" -type f)
The same set of commands are being applied to standalone taskgraph as well so
they remain in sync.
Differential Revision: https://phabricator.services.mozilla.com/D123234
This adds coverage via the clearkey CDM to ensure that the output protection
query is working as intended. These tests ensure that the output protection
machinery recognizes when browsers windows are being captured, and this is
reflected by the clear key CDM changing key status on a test key id.
Two cases are covered:
1. Media playback is started, then during media playback a screen capture is
started and stopped. The test checks that we set restricted key status while
capture is active, and stop doing so once the capture stops.
2. Start a screen capture then start media playback, then stop capture while
playback is still active. This is similar to the first case, but the media
should start in a restricted state, as capture is ongoing when playback starts.
Differential Revision: https://phabricator.services.mozilla.com/D122784
We've added a bunch of new fission-based variants (e.g 'fission-webgl-ipc',
'webrender-sw-fission', etc). Update the mozinfo guess logic to better detect
this.
This also changes the default for 'webrender' to True as it's not possible to
disable webrender anymore. We should clean up manifests and remove this value
there entirely, but another bug for another time.
Differential Revision: https://phabricator.services.mozilla.com/D123257
The motivation of introducing the structs is to use 64-bit integer
arithmetic to prevent 32-bit integer overflow. One application is to fix
the integer overflow when resolving flex item's main size in Bug 1469649.
The structs can be a start point to add more useful methods to explore
saturation arithmetic.
Differential Revision: https://phabricator.services.mozilla.com/D123266