Background task mode is roughly equivalent to `xpcshell`, but inside
the regular browser startup flow. There is no browser window (no
`Window` at all) and there should be no content processes. It's
sufficient to treat it like `xpcshell`, with its own stripped-down
actor and a few tweaks to the integration points.
The structural changes in this commit keep `--backgroundtask` mode
slim in the regular case when the Devtools are *not* requested. This
is reflected in the small changes needed to the
`browser_xpcom_graph_wait.js` test: loading the Devtools
unconditionally causes a huge amount of code to be loaded. In order
to load the Devtools framework conditionally, we check for
Devtools-specific command line flags and delegate to Devtools when
appropriate. In order to check the command line flags, we turn the
`BackgroundTasksManager` into an XPCOM service, which allows it to be
instantiated by XPCOM in order to handle the command line.
One final note: this leaves two XPCOM components, "backgroundtasks"
and "backgroundtasksmanager". Why not combine them? This is
technically possible but not attractive: we really do want a natural
place for native/C++ code ("backgroundtasks") and JavaScript code
("backgroundtasksmanager").
Differential Revision: https://phabricator.services.mozilla.com/D129771
Run with fission by default in test harnesses, with --disable-fission available as an
option.
Android mach commands automatically set --disable-fission; this can be over-ridden by
--setpref=fission.autostart=true.
fission.autostart is removed from all test profiles.
No changes to wpt, handled already in bug 1743714.
Differential Revision: https://phabricator.services.mozilla.com/D135137
Run with fission by default in test harnesses, with --disable-fission available as an
option.
Android mach commands automatically set --disable-fission; this can be over-ridden by
--setpref=fission.autostart=true.
fission.autostart is removed from all test profiles.
No changes to wpt, handled already in bug 1743714.
Differential Revision: https://phabricator.services.mozilla.com/D135137
This adds a feature to moz-http2's doh path that helps test connection
cycling. We log the remote ports of DoH requests and expose an API to
fetch the log. A specific name will trigger us to send a delayed response
to help simulate network volatility. The log is then checked for correctness
in the test script.
Differential Revision: https://phabricator.services.mozilla.com/D131467
This adds a feature to moz-http2's doh path that helps test connection
cycling. We log the remote ports of DoH requests and expose an API to
fetch the log. A specific name will trigger us to send a delayed response
to help simulate network volatility. The log is then checked for correctness
in the test script.
Differential Revision: https://phabricator.services.mozilla.com/D131467
This adds a feature to moz-http2's doh path that helps test connection
cycling. We log the remote ports of DoH requests and expose an API to
fetch the log. A specific name will trigger us to send a delayed response
to help simulate network volatility. The log is then checked for correctness
in the test script.
Differential Revision: https://phabricator.services.mozilla.com/D131467
This adds a feature to moz-http2's doh path that helps test connection
cycling. We log the remote ports of DoH requests and expose an API to
fetch the log. A specific name will trigger us to send a delayed response
to help simulate network volatility. The log is then checked for correctness
in the test script.
Differential Revision: https://phabricator.services.mozilla.com/D131467
This adds a feature to moz-http2's doh path that helps test connection
cycling. We log the remote ports of DoH requests and expose an API to
fetch the log. A specific name will trigger us to send a delayed response
to help simulate network volatility. The log is then checked for correctness
in the test script.
Differential Revision: https://phabricator.services.mozilla.com/D131467
The order in which we send A/AAAA requests is unspecified.
This test assumed the A request is always first. If we change that logic,
then the variable ends up != 0 on the second request, so we don't get the
proper response anymore.
This patch changes the server handler so it returns the proper response
after decoding the request packet.
Differential Revision: https://phabricator.services.mozilla.com/D130043
The order in which we send A/AAAA requests is unspecified.
This test assumed the A request is always first. If we change that logic,
then the variable ends up != 0 on the second request, so we don't get the
proper response anymore.
This patch changes the server handler so it returns the proper response
after decoding the request packet.
Differential Revision: https://phabricator.services.mozilla.com/D130043
A call to InitCommandLine was added in Bug 1727180 where gArgc and gArgv are
not defined.
The same bug also re-enabled some tests that appeared to pass (but really they
were just silently crashing), this patch fixes that too.
Differential Revision: https://phabricator.services.mozilla.com/D130223
The fact that the test runner app is defined inside the geckoview test package
has always felt like a hack to me. I've mistakenly thought that
TestRunnerActivity was used in GeckoView's junit tests many times (even though
that's not the case).
From what I can see, there's no way to generate an AAB package for androidTest,
so to be able to run Gecko tests as AAB we finally need to define the
TestRunner as an ordinary package instead.
Differential Revision: https://phabricator.services.mozilla.com/D127320
Sometimes we try to start a process that already exists and that causes a very
confusing error (the test times out but there's no indicastion as to why).
This patch makes it so that we will first try to kill the existing zombie
process and then, if we fail to do so, throw an error.
Differential Revision: https://phabricator.services.mozilla.com/D128937
xpcshell-test runs up to 10 concurrent tests and the logs are all interleaved.
This patch adds the test name to every log statement to let developers know
what test is causing the log line to appear in the logs.
Differential Revision: https://phabricator.services.mozilla.com/D128936
This ensures Glean is initialized in an xpcshell environment on Android.
When GeckoView is embedded the surrounding app is responsible to
initialize Glean from the Kotlin side.
This also enables the first few FOG tests to run on Android.
For now it changes the Android-specific test file.
As long as not all metric types are enabled we can't reliably test other metrics.
Differential Revision: https://phabricator.services.mozilla.com/D127420
In strict fallback mode, confirmation should still catch cases when the provider is
unavailable for whatever reason, and after that we should just fall back. This was
missing from bug 1714182.
Differential Revision: https://phabricator.services.mozilla.com/D126168
In strict fallback mode, confirmation should still catch cases when the provider is
unavailable for whatever reason, and after that we should just fall back. This was
missing from bug 1714182.
Differential Revision: https://phabricator.services.mozilla.com/D126168
This removes the `@CommandProvider` decorator and the need to implement
mach commands inside subclasses of `MachCommandBase`, and moves all
existing commands out from classes to module level functions.
Differential Revision: https://phabricator.services.mozilla.com/D121512