This patch fixes local `./mach browsertime` issues on Windows.
First issue that is fixed is that the archive is extracted into the browsertime folder instead of a separate folder for imagemagick within the browsertime folder. Now, it is extracted into it's own folder whose name depends on the `fetches` path entry. Second issue fixed is that the environment was being contaminated with bad strings because of the `GECKODRIVER_BASE_URL` addition - using `str` on the entries solves this issue.
Finally, convert and compare were not passing in the visualmetrics.py check call. This is because ImageMagick expects to find the path to them within `ProgramFiles` on windows. Since we don't have them there, we have to add an entry in the `PATH` environment variable to point to the imagemagick directory to get around this.
There is also an issue with the macosx imagemagick directory which was being extracted as 7.0.9, but we expected 7.0.8. The imagemagick version used is modified to the correct version with the expected directory.
Differential Revision: https://phabricator.services.mozilla.com/D52751
--HG--
extra : moz-landing-system : lando
This updates our in-tree Browsertime version to support the async composition
recorder API introduced in bug 1581240.
Differential Revision: https://phabricator.services.mozilla.com/D52717
--HG--
extra : moz-landing-system : lando
We want the profiler UI to be able to know if the data can be used for
reconstructing the event delays, since it measures something different
from the old 16ms event injection.
Differential Revision: https://phabricator.services.mozilla.com/D52534
--HG--
extra : moz-landing-system : lando
This patch rolls up all the required changes for this purpose. Since the
whole crash reporting flow must understand the new format it's not possible
to land this as separate patches as individually they would be broken. This
patch includes the following changes:
* Changes to the crash reporting machinery to write out annotations as JSON,
these includes changes to the DLL blocklist code that must be run at crash
time.
* Modifications to the crash reporter client so that it can read and
submit the new format; this includes platform-specific changes to the
Breakpad libraries it uses for submitting crashes.
* Modifications to the minidump-analyzer to understand and process the new
format correctly.
* Modifications to the crash manager to understand and process the new format
correctly.
* Modifications to GeckoView's crash handler to understand and submit the
new format correctly.
* Added new tests to cover the new format and modified existing ones to
accomodate the new one.
Differential Revision: https://phabricator.services.mozilla.com/D46848
--HG--
extra : moz-landing-system : lando
This adds two AUTO_PROFILER_LABEL_DYNAMIC_... macros and updates select
usages of the old macros to use the new ones. These new macros cause
the dynamic string of the label to be included in BHR stacks.
We don't want to do this all of the time, as in many cases we may not
be interested enough in the dynamic string or it may be sensitive
information, but it is rather important information for certain cases.
This uses the same buffer that we use for the strings for JS frames,
and if we fail to fit into that buffer we just append the raw label.
If the string is too long for our static buffer (128 bytes), we just
leave it truncated, as it should be stable and we may be able to infer
from the truncated form what the full form would be.
Differential Revision: https://phabricator.services.mozilla.com/D51665
--HG--
extra : moz-landing-system : lando
This commit adds the memory address of the allocation and the thread id
of the allocation to the payload. These both are required for properly
processing the balanced allocations on the front-end. All of the native
allocation payloads are now stored on the main thread, and so are
disassociated from the thread where they were generated.
Differential Revision: https://phabricator.services.mozilla.com/D51938
--HG--
extra : moz-landing-system : lando
This change makes it so that all allocations (from any thread in a
process) are stored on the main thread in the profile. This way it's
easy to balance allocations with frees. Memory happens more in a
per-process model, than a per-thread model. The front-end can then
process the information and display it in more interesting ways.
Before allocations and deallocations were only stored on the
thread where they were being generated. It was easy to miss
deallocations with the old model.
Differential Revision: https://phabricator.services.mozilla.com/D51937
--HG--
extra : moz-landing-system : lando
This file adds coverage for the balanced native allocations feature from the
previous commit. It asserts that a de-allocation will have a matching allocation.
Differential Revision: https://phabricator.services.mozilla.com/D51936
--HG--
extra : moz-landing-system : lando
This patch creates a HashSet that tracks the allocations that are tracked by the profiler.
This way, we only collect markers for deallocations that have a matching allocation. A
following commit makes it so that all of the markers are collected on the main thread, but
for now this is still done on a per-thread basis.
Differential Revision: https://phabricator.services.mozilla.com/D51935
--HG--
extra : moz-landing-system : lando
The bloat log was not compatible with the native allocations, and is always on
for debug builds of mochitests. We had no native allocation coverage on debug
builds because of it.
This commit rewrites the test as an xpcshell test which is both faster and simpler.
I don't think we need the added complexity of running the test in the full browser
environment. An xpcshell test fully excercises the code in a simpler fashion.
Differential Revision: https://phabricator.services.mozilla.com/D51934
--HG--
extra : moz-landing-system : lando
The tests for xpcshell and mochitests were pretty similar, and need to
do similar things. This commit creates a shread-head.js file where those
functions can be shared. This patch also renames a few shared functions
to give them more clarity in their current usage.
Differential Revision: https://phabricator.services.mozilla.com/D51933
--HG--
rename : tools/profiler/tests/xpcshell/head_profiler.js => tools/profiler/tests/xpcshell/head.js
extra : moz-landing-system : lando
We want the profiler UI to be able to know if the data can be used for
reconstructing the event delays, since it measures something different
from the old 16ms event injection.
Differential Revision: https://phabricator.services.mozilla.com/D52534
--HG--
extra : moz-landing-system : lando
This gives developers the ability to request analysis from the Pernosco
service. When this flag is set, Pernosco will examine the push for relevant
failures, analyze them and then send a link to the generated report.
Previously developers needed to request access to a whitelist whereupon all
their try pushes were analyzed. Developers currently on this whitelist who
would like to opt-out can run |mach try --no-persnosco| to do so.
Differential Revision: https://phabricator.services.mozilla.com/D52419
--HG--
extra : moz-landing-system : lando
This commit adds the memory address of the allocation and the thread id
of the allocation to the payload. These both are required for properly
processing the balanced allocations on the front-end. All of the native
allocation payloads are now stored on the main thread, and so are
disassociated from the thread where they were generated.
Differential Revision: https://phabricator.services.mozilla.com/D51938
--HG--
extra : moz-landing-system : lando
This change makes it so that all allocations (from any thread in a
process) are stored on the main thread in the profile. This way it's
easy to balance allocations with frees. Memory happens more in a
per-process model, than a per-thread model. The front-end can then
process the information and display it in more interesting ways.
Before allocations and deallocations were only stored on the
thread where they were being generated. It was easy to miss
deallocations with the old model.
Differential Revision: https://phabricator.services.mozilla.com/D51937
--HG--
extra : moz-landing-system : lando
This file adds coverage for the balanced native allocations feature from the
previous commit. It asserts that a de-allocation will have a matching allocation.
Differential Revision: https://phabricator.services.mozilla.com/D51936
--HG--
extra : moz-landing-system : lando
This patch creates a HashSet that tracks the allocations that are tracked by the profiler.
This way, we only collect markers for deallocations that have a matching allocation. A
following commit makes it so that all of the markers are collected on the main thread, but
for now this is still done on a per-thread basis.
Differential Revision: https://phabricator.services.mozilla.com/D51935
--HG--
extra : moz-landing-system : lando
The bloat log was not compatible with the native allocations, and is always on
for debug builds of mochitests. We had no native allocation coverage on debug
builds because of it.
This commit rewrites the test as an xpcshell test which is both faster and simpler.
I don't think we need the added complexity of running the test in the full browser
environment. An xpcshell test fully excercises the code in a simpler fashion.
Differential Revision: https://phabricator.services.mozilla.com/D51934
--HG--
extra : moz-landing-system : lando
The tests for xpcshell and mochitests were pretty similar, and need to
do similar things. This commit creates a shread-head.js file where those
functions can be shared. This patch also renames a few shared functions
to give them more clarity in their current usage.
Differential Revision: https://phabricator.services.mozilla.com/D51933
--HG--
rename : tools/profiler/tests/xpcshell/head_profiler.js => tools/profiler/tests/xpcshell/head.js
extra : moz-landing-system : lando
This task cannot succeed on try, because it doesn't have the permissions
to upload the generated docs. Let's just disallow people from selecting it.
Differential Revision: https://phabricator.services.mozilla.com/D51919
--HG--
extra : moz-landing-system : lando