In bug 1883435 comment 2 chutten mentions that including
nsGlobalWindowInner.h from GleanMetrics.h causes a stylo build failure.
This is because nsGlobalWindowInner.h itself brings a bunch of DOM
bindings template soup that bindgen isn't great at dealing with.
That can be fixed in various ways. However, there is a simpler fix,
which is not including GleanMetrics at all.
It's trivial to do, and given it's a massive autogenerated file, and
Document.h is a very common header, it's worth doing this if only for
build times.
Fix a bunch of unused includes while at it.
Differential Revision: https://phabricator.services.mozilla.com/D203625
This patch uses our raptor support class for custom tests. The data
handling shares a lot of similarities to existing benchmark tests
e.g. speedometer3, and that is leveraged here.
Differential Revision: https://phabricator.services.mozilla.com/D202533
This patch adds a custom test script to run motionmark with browsertime.
As we are not vendoring in tree and applying custom patches, it is
convenient instead here to make use javascript directly to start the
benchmark controller.
Differential Revision: https://phabricator.services.mozilla.com/D202532
This patch updates the toml/yml files necessary to run motionmark 1.3.
An external repo model is used here rather than vendoring in-tree, as
this should be more advantageous going forward.
Brand new files (motionmark-1-3-<desktop/mobile>.toml) are added rather
than adding it to the existing motionmark animometer/htmlsuite config files.
This should be easier to maintain going forward (if for example we
decide to remove the previous motionmark). And also there has has been
so many changes since motionmark 1.0, it may be worth thinking of this
as a new benchmark entirely.
It is also worth noting that what was formerly known as
`motionmark-animometer` is now just `motionmark`. However htmlsuite is
still the same.
Differential Revision: https://phabricator.services.mozilla.com/D202531
Previously, idle maintenance was interrupted whenever a new runnable was
posted to the executing thread. Here we replace this interrupt signal with
an explicit boolean flag in order to support task queue event targets.
Differential Revision: https://phabricator.services.mozilla.com/D165984
The test wasn't detecting the restart issues because it was using the wrong 'engine' object to run the
comparisons against and was hence using an older version of the object which did have the correct urls.
Differential Revision: https://phabricator.services.mozilla.com/D203602
Following the previous patch, `IsRefcountedSmartPointer` is no longer
needed in ThreadUtils.h. Replace the one remaining use in MozPromise.h
with a more precise version tailored to that use-site.
No functional changes.
Differential Revision: https://phabricator.services.mozilla.com/D201787
`const T&&` parameters don't have associated storage semantics defined
for them. Previously they would end up as `StoreCopyPassByRRef`, which
might even have been intentional. Forbid them, and change the one use
case invoking it to a non-reference (becoming StoreCopyPassByConstLRef).
Additionally, there are four optional storage classes that are never
automatically selected. Two of these are never used, and a third is only
used mistakenly (...ByLRef where only ...ByConstLRef is needed). Adjust
the third's use-sites, and remove all three.
The last, `StoreCopyPassByPtr`, has more of an argument to be kept: it's
simpler to use (and, arguably, to understand) than its lambda-function
equivalent when wrapping an XPCOM method that takes an [in]-pointer
argument -- but it has only one use site in the entire codebase. Replace
and remove it, as well.
No functional changes. All deleted cases remain possible via lambda
functions fed to NS_NewRunnableFunction.
Differential Revision: https://phabricator.services.mozilla.com/D202173
Using `std::conditional` unconditionally instantiates both of its
type-arguments, regardless of the value of its boolean argument. This
means that the entire tree of auxiliary metafunction-types were being
instantiated by any use of ParameterStorage -- i.e., at least once per
use of NewRunnableMethod, plus one for each explicit parameter the
method took.
Use partial specialization both to significantly simplify the selection
code (replacing most explicit tests), ensuring that only O(log n))
templates are instantiated, rather than O(n).
As verified by the unchanged TestThreadUtils.cpp, no functional changes.
Differential Revision: https://phabricator.services.mozilla.com/D201786
Remove some type-level indirections from the SmartPointer template-
metaprogramming helpers.
Additionally, replace some nearby uses of `typedef` with `using`, as
suggested by clang-tidy.
No functional changes.
Differential Revision: https://phabricator.services.mozilla.com/D201785
Remove some type-level indirections from template-metaprogramming
helpers.
Additionally, replace some nearby uses of `typedef` with `using`, as
suggested by clang-tidy.
No functional changes.
Differential Revision: https://phabricator.services.mozilla.com/D201784
This gives us the option to specify rule variations for all tests without having to copy across the configurations.
More importantly, we can also apply this to anything under `/test/` or `/tests/` and so we can catch utils and other files that the specific test configurations don't already catch.
Differential Revision: https://phabricator.services.mozilla.com/D203455