When not profiling, ShutdownProfilerChild should be quick, so it's safe to run synchronously.
In this case, we don't need to manually shutdown the thread (to wait for the previously-async task).
This removes the risky thread-shutdown with its inner event-handling loop, where all crashes in bug 1613798 happen.
Differential Revision: https://phabricator.services.mozilla.com/D114845
This file is also used by some browser-chrome tests which are still Python 2
for now. So let's not drop PY2 compat just yet.
Depends on D109728
Differential Revision: https://phabricator.services.mozilla.com/D111728
By making the new strategy with bugbug's config selection and a low confidence threshold the
default for 'mach try auto'.
Differential Revision: https://phabricator.services.mozilla.com/D114365
CLOSED TREE
Backed out changeset 7a4401a358e8 (bug 1639164)
Backed out changeset f1377ee7e2d2 (bug 1639164)
Backed out changeset f9c73976484d (bug 1639164)
By making the new strategy with bugbug's config selection and a low confidence threshold the
default for 'mach try auto'.
Depends on D114364
Differential Revision: https://phabricator.services.mozilla.com/D114365
Did you know that our version of requests was from 2015? Phwoar!
This bumps `jinja2`, `py`, `pyyaml`, `requests` and `urllib3`.
There's significant risk for regressions due to breaking changes,
though due to the dynamic nature of Python, they're tricky to track
down.
The potential breaking changes I'm expecting to potentially affect
us are:
* `requests@2.11.0`: No longer accepts non-strings as header values.
* `requests@2.16.0`: `requests.packages` namespace was removed due to
packages no longer being vendored. The namespace has been
incrementally restored over future releases, but it's unclear to
what degree.
* `requests@2.24.0`: Redirect resolution now only happens when
`allow_redirects` is `True`.
* `requests` version of `urllib3` was bumped from `1.13.1` to `1.26`,
unsure what repercussions that will have.
This also added dependencies to `flake8_requirements`. This is because
the vendored `importlib-metadata` update (and the new
`typing-extensions` dependency) is found by `pip`, but the
vendored `typing-extensions` is _not_ discovered (perhaps due to
details around "eggs" and the way we add vendored code to the sys.path).
So, `pip` tries to install it manually and fails when it finds no hash.
By re-compiling `flake8_requirements`, the necessary hashes are made
available.
Differential Revision: https://phabricator.services.mozilla.com/D108526
Counters can be flushed before init has been called so this patch add a condition in FlushCounters to be sure that everything has been initialized.
Differential Revision: https://phabricator.services.mozilla.com/D110575
This was an old example / proof of concept of directly drawing
to a DirectComposition surface.
We now have the example-compositor/ project that shows how to
integrate with DirectComposition on Windows and Wayland on
Linux, in addition to a shipping implementation in Gecko for
CoreAnimation and DirectComposition.
Differential Revision: https://phabricator.services.mozilla.com/D113052
This will tie the version used for CI lints to the version of rust used
for builds on CI.
Bonus point: we can now have rustfmt and clippy on Windows and mac,
which allows to run the corresponding mozlint unit tests on those
platforms.
Differential Revision: https://phabricator.services.mozilla.com/D113905
While here, remove the unused clippyProcess.config. And because we need
to manipulate `$PATH` before running `cargo`, use the same wrapping
function in `get_clippy_version`.
Differential Revision: https://phabricator.services.mozilla.com/D113902
This will warn if someone includes something like:
skip-if = <condition A> || <condition B> # reason A is skipped; reason B is skipped
Instead they should use:
skip-if =
<condition A> # reason A is skipped
<condition B> # reason B is skipped
Differential Revision: https://phabricator.services.mozilla.com/D113707
Bug 1613798 (shutdown crashes during ChildProfilerController::ShutdownAndMaybeGrabShutdownProfileFirst's nsThread::Shutdown) could be explained by another nested shutdown destroying the same thread first, so when coming back to the first inner loop, there's a UAF on the already-destroyed thread!
Now we first reset the `mThread` pointer so it cannot be used by later/nested function calls, but keep a local reference (which should be the last one) to dispatch the shutdown operations and then shutdown the thread itself.
Also the thread pointer is now encapsulated in a DataMutex, in case it is accessed from different threads (e.g., the main thread and the IPC reception thread.)
Differential Revision: https://phabricator.services.mozilla.com/D113304
As a step towards moving mach commands outside of classes, this converts all
properties into methods so that they can later become top-level helper functions.
Differential Revision: https://phabricator.services.mozilla.com/D112196
As an intermediate step to allow mach commands as standalone functions, the MachCommandBase
subclass instance that currently corresponds to self has to be made available as a separate
argument (named command_context).
Differential Revision: https://phabricator.services.mozilla.com/D109650