pip-compile can annotate each requirement with a reason why it is included (e.g.: transitive dependency, or depended-on directly).
When annotating direct dependencies, it notes it as "via -r <direct path to requirements.in file>".
Since we were using a temporary directory, the path of the directory was being included, making the output non-deterministic.
This change ensures that we run pip-compile in the same working directory as the temporary requirements file, enabling
the annotations to be deterministic: "via -r requirements-mach-vendor-python.in".
Differential Revision: https://phabricator.services.mozilla.com/D72181
`os.path.realpath` in Python 3.8 now always uppercases Windows drive letter, while it was just an alias of `os.path.abspath` in Windows. This patch uses `.realpath()` consistently to get `topobjdir` to fix the incompatibility from the behavior change.
Differential Revision: https://phabricator.services.mozilla.com/D72188
I'm not positive that the intended behavior of PreferencesWriter::Flush
is to ensure that any pending writes to the preferences file are
completed, but that seems like what it ought to be for, and it does
not look water-tight. For one, adding a sync runnable to a thread pool
will not ensure that any previously submitted runnables have completed
by the time it returns. And two, the exchange on sPendingWriteData only
guarantees that the write has started.
This change simply ensures that the write to disk has been completed
before returning.
Differential Revision: https://phabricator.services.mozilla.com/D72016
In practice this shouldn't substantially change the behavior, but
it gets around being UB, and it shouldn't really cost us in terms
of performance. The alternative would be adding it to the TSAN
whitelist, which feels worse.
Differential Revision: https://phabricator.services.mozilla.com/D72015
The preprocessor does not handle "# ifdef" like the C preprocessor,
and I failed to test this appropriately after restructuring the
#if... clauses. This also reverts fastShutdownStage back to 1, so
we can be confident in the data we collect.
Differential Revision: https://phabricator.services.mozilla.com/D71190
When Raptor moves Fennec into the background querying for
the active tab doesn't return any value. To fix that the
current tab id can be cached, which also doesn't require
us to always have to query for the current tab when updating
or closing it.
Differential Revision: https://phabricator.services.mozilla.com/D72033
Split out jsreftest and jittest files into their own packages, removing them
from the common package.
This speeds up extracting files from the common test archive for
non-jsreftest/jittest suites.
Also, remove some files from the web-platform test archive that are already
present in the common archive.
Differential Revision: https://phabricator.services.mozilla.com/D72192
This is useful to debug issues with zoom, but it is very spammy because
it can happen in legitimate situations, and it's not high-value enough.
Differential Revision: https://phabricator.services.mozilla.com/D72448
This patch adds the new live site tests to the whitelist so that they can run. It also moves the playback settings back to where it was (before any test name changes) and adds some comments to make sure we're aware of this in the future.
Differential Revision: https://phabricator.services.mozilla.com/D72394
This patch uses the new push-interval-10 to schedule the linux, windows plain and aarch64
builds on autoland every 10th push.
Tested locally with a local checkout whose pushlog_id was not divisible
by 10 using parameters.yml downloaded from the Gecko Decision Task using
./mach taskgraph optimized --verbose --parameters /tmp/parameters.yml
parameters.yml from autoland showed the following optimizations.
0:56.13 PushIntervalStrategy: Removing task build-linux64-aarch64/opt interval 10
0:56.13 PushIntervalStrategy: Removing task build-linux64-plain/debug interval 10
0:56.13 PushIntervalStrategy: Removing task build-signing-win64-aarch64/opt interval 10
0:56.13 PushIntervalStrategy: Removing task build-win64-aarch64/debug interval 10
0:56.13 PushIntervalStrategy: Removing task build-win64-plain/debug interval 10
0:56.18 PushIntervalStrategy: Removing task valgrind-linux64-valgrind/opt interval 10
while parameters.yml from mozilla-central did not show any PushIntervalStrategy
optimizations.
Differential Revision: https://phabricator.services.mozilla.com/D70182
A first Rust test, which should run without any interaction with
Firefox.
This will eventually break down when we get IPC in there.
Depends on D72128
Differential Revision: https://phabricator.services.mozilla.com/D72385
Currently there's no user, so we do some trickery to actually make sure
it gets compiled.
It also lacks a test, that will follow in the next commit,
as it's a bit more complex to set up a Glean instance for a test run.
Differential Revision: https://phabricator.services.mozilla.com/D72128
We don't currently restart the extension process and this causes extensions to
randomly stop working when Android kills the extension process.
We can re-enable it once Bug 1355239 is fixed.
Differential Revision: https://phabricator.services.mozilla.com/D71790
On a local Pixel 2 running Android 10, launching Geckoview test app via the
shell with the profile on external storage hangs and causes an ADBTimeoutError.
Using a profile in /data/local/tests does not exhibit this behavior.
In addition, attempting to push a directory tree directly to internal
storage can fail with "remote secure_mkdirs failed" errors when pushing
directories containing subdirectories to internal storage on /data.
The subdirectories were created with insufficient permissions for the
contents of the directories to be pushed. We can work around this problem
by catching the failure and falling back to using adb push to push the
source directory tree to a temporary location on the sdcard which does
not exhibit the error and then copying the temporary location to the
desired final destination.
These changes are necessary due to the change in Scoped Storage [1]
in Android 10 and later.
Since storing profiles on the sdcard is no longer supported the choices
for possible test roots has been reduced to using internal storage.
Since geckoview expects to be able to store content under /data/local/tmp
the default test root has been changed to /data/local/tmp/tests.
By default, the test root will be shared by all instances of ADBDevice
unless the share_test_root argument is set to False in the initializer.
This allows the test root to be defined globally with out requiring
each instance of ADBDevice to be modified.
The test_root default initial value should be None, not empty string.
The ADBDevice.test_root property is now read/write to support the new
shared test_root functionality.
Android emulators have exhibited an intermittent failure to clear logcat.
A ride-along change to retry the log clearing is included.
adb pull can fail if not all of the files have permission to be read.
This situation can appear when a profile is located on internal storage
and an app such as geckoview writes files to it. They will be readable
only by the app until the permissions are changed. Work around this
by calling chmod -R on any thing that is to be pulled from the device.
Bump mozdevice version to 3.1.2.
[1] https://developer.android.com/training/data-storage#scoped-storage
Differential Revision: https://phabricator.services.mozilla.com/D71722
Modify `writeruntimes` script to support the querying and writing of web-platform-test related runtimes. These are already stored on ActiveData, so it is simply a matter of querying them.
Changes:
- obtain the full list of web-platform-tests runtimes using ActiveData's destination/output clause.
- normalize the paths by prefixing `testing/web-platform` in front of the returned test paths and limiting the paths to depth of 1.
Differential Revision: https://phabricator.services.mozilla.com/D67554
This allows us to explicitly specify BrowsingContextGroups when synchronizing
them. A major advantage of this is that it means we can handle an attempt to
create a BrowsingContext with a parent which the content process is unaware of,
which is possible due to changes to the EnsureSubscribed logic in earlier
patches in this stack.
This is OK, because in the case where the content process cannot see its parent,
the parent must be imminently discarding.
Differential Revision: https://phabricator.services.mozilla.com/D71668
The existing infrastructure which stored cached BrowsingContexts on the
BrowsingContextGroup was added before WindowContexts were added, and can cause
racing issues with partially discarded trees during process switches.
Differential Revision: https://phabricator.services.mozilla.com/D71238
There were previously a number of different APIs for creating BrowsingContext
instances. This simplifies them into two major cases: "CreateDetached", which
allows for creating BrowsingContexts which are related to other
BrowsingContexts, and "CreateIndependent" which creates new, fully unrelated,
browsing contexts.
Differential Revision: https://phabricator.services.mozilla.com/D71237
Follow-up parts in this bug depend on being able to read the `nsGlobalWindow`
which embeds a `nsFrameLoader` within `CreateBrowsingContext`, which is called
from the `nsFrameLoader` constructor. Unfortunately, we depend on creating the
`nsFrameLoader` and `BrowsingContext` before we have the window as part of the
fix to bug 1577711.
This patch changes `BuildNestedPrintObjects` to instead use a list of pending
clones stored on the parent `Document` object, and delays creation of the
`nsFrameLoader`, and thus the inner `BrowsingContext`, until after the document
has an owner global.
Due to the low number of automated tests for printing, I manually tested
print-previewing both the reduced test case from bug 1577711, a wikipedia
article, and 'data:text/html,<object data="data:text/html,hi">' to avoid
regressions.
Differential Revision: https://phabricator.services.mozilla.com/D71236
Mozcontainer is accessed from various threads - Main/Compositor/Renderer - which causes races
when wayland surfaces are created/deleted/updated so we need to control it.
Differential Revision: https://phabricator.services.mozilla.com/D71737