Partial MAR generation doesn't need a signed complete MAR.
By pointing the partials tasks at the unsigned complete MARs, we are
able to defer signing the complete MARs without deferring partials
creation.
Differential Revision: https://phabricator.services.mozilla.com/D11729
--HG--
extra : moz-landing-system : lando
The Content-Type header contains the correct MIME type, but the
charset option is "utf8" and invalid: it should be "utf-8".
Differential Revision: https://phabricator.services.mozilla.com/D12116
--HG--
extra : moz-landing-system : lando
The caches weren't being invalidated when the manifest itself
changed. To fix this the manifest itself has to be written before the
cache and the cache has to include data about the manifest that it's
associated with (the mtime and path are used for this purpose).
To make all this work requires a single method that can load the
manifest, update it, write the manifest and write the
caches. Therefore we introduce a single load_and_update method that is
intended to replace all previous use of the load() or update() methods
(and as a bonus handles manifest version mismatches in a single
place).
Depends on D8227
Differential Revision: https://phabricator.services.mozilla.com/D8228
--HG--
extra : moz-landing-system : lando
Compared to the normal os.walk this has a couple of differences:
* It returns lists of (name, stat) for filenames and directories,
allowing callers to reuse the stat data without going back to the
system to re-request it.
* Directories are always returned as paths relative to the root, and
the root itself is returned as the empty string.
* It is non-recursive.
There are also a few features missing that aren't required for our use
cases.
Depends on D8226
Differential Revision: https://phabricator.services.mozilla.com/D8227
--HG--
extra : moz-landing-system : lando
When processing the manifest using the worktree, instead of reading
all files to see if the content changed, instead only process files where
the mtime has been updated since the previous run. Also cache the
result of running gitignore, so we can save a couple of seconds
processing the gitignore rules.
Depends on D8225
Differential Revision: https://phabricator.services.mozilla.com/D8226
--HG--
extra : moz-landing-system : lando
This updates the gitignore implemenation to take input like os.walk
but with additional stat data for the files. It also makes several
useful optimistaions:
* Avoid using regex when just matching a literal
* Identify patterns that can only match the final component of a path
and run those against that component rather than the full path.
* Add the possibility of providing a dictionary of paths to gitignore
statuses as a cache.
This dramatically reduces the amount of time we spend in gitignore
processing when updating the manifest.
Depends on D8223
Differential Revision: https://phabricator.services.mozilla.com/D8224
--HG--
extra : moz-landing-system : lando
We end up with a lot of rules like (?:.*)/.*\.ext which are basically
trying to find the last component in a path and match against
that. These are rather slow to run so the easiest thing tdo is just
pass in the last component of the path when we know that's the only
thing the rule can match.
The changes to surrounding code to use this API will be made in future
commits.
Depends on D8222
Differential Revision: https://phabricator.services.mozilla.com/D8223
--HG--
extra : moz-landing-system : lando
web-platform-tests gets its test list from a manifest file that's
generated from the content of the tests. Unfortunately generating this
manifest is slow, so it's unreasonable to create it from scratch for
every test run. Until recently the generated manifest was kept
in-tree, which was suboptimal in a few ways:
* The manifest tended to get out of sync with the actual source
* The large json file caused problems for tooling including source
control and the review frontends.
We previously switched `mach wpt` to download a manifest on demand and
apply an incremental update. However this work missed the usage in
jstests.py. This continued to use the increasing outdated in-tree
manifest, which causes a number of problems
* It doesn't have an up-to-date list of tests
* It blocks removing that file
* It blocks landing various optimisations to make updating the
manifest faster.
This patch fixes jstests.py to use a downloaded manifest. Unlike the
tests run through a mach frontend jstests.py doesn't know where the
objdir is, so it's hard to work out where to download the
manifest. This patch adopts a heuristic approach; if the path to the
jsshell looks like <root>/dist/bin and <root>/_tests exists, we assume
it's a gecko-like objdir and use <root>/_tests/web-platform/ for the
manifest; otherwise we just put it into the system tempdir.
Because the manifest has to be updated on startup, this patch causes a
startup time regression, but this will be considerably reduced by the
work in Bug 1497898 for which this is a prerequisite.
Differential Revision: https://phabricator.services.mozilla.com/D11667
--HG--
extra : moz-landing-system : lando
We shouldn't reenter DataStorageSharedThread::Shutdown(), but it may be
possible. To guard against potentially attempting to shut down the shared thread
more than once, we can check gDataStorageSharedThreadShutDown first.
Differential Revision: https://phabricator.services.mozilla.com/D12050
--HG--
extra : moz-landing-system : lando
Add a test to ensure the temporary autoplay permission is sync correctly between JS and C++ side.
Differential Revision: https://phabricator.services.mozilla.com/D11711
--HG--
extra : moz-landing-system : lando
In order to know whether we have temporary autoplay permission without creating a request, we need to
cache its state in the outer window so that we can get the correct returned value for AutoplayPolicy::IsAllowedToPlay().
Differential Revision: https://phabricator.services.mozilla.com/D7013
--HG--
extra : moz-landing-system : lando
Since temporary permissions are only stored in the front-end side, we can't know whether we have
allowed page to autoplay or not without sending a request. Therefore, we want to notify the back-end
side when the temporary permissions changed.
Differential Revision: https://phabricator.services.mozilla.com/D7011
--HG--
extra : moz-landing-system : lando
It was almost identical to the toolkit version, only missing a [customizing=true]
check to prevent drag. Since Customization only happens in browser/ we are able
to replace the toolkit version with the CUI version, and then remove the CUI version.
The `#toolbar-menubar:not([autohide="true"])` selector will fall back to the
`toolbar[type="menubar"]` selector in global.css to apply the toolkit one, so
that is removed from browser.css.
Differential Revision: https://phabricator.services.mozilla.com/D12146
--HG--
extra : moz-landing-system : lando
XML pretty print, as it was implemented in bug 64945, skips itself when the loaded document is not visible. There is no explanation why it does that, other than the fact that it is backed by an XBL binding, and XBL bindings always bound to DOM with layout frames. A later change in bug 1400618 made the existence of presshell necessary before binding the XBL binding.
With bug 1437956 and bug 1503019, XML pretty print is now backed by Shadow DOM. That leaves no reason for keeping this behavior.
The test file test_bug590812.html also revealed that XML pretty print might incorrectly opt-out itself because of the said behavior. We don't know if this something only happens in the test or it is something that may happen in the wild. Nonetheless, it's a better idea to simplify the behavior here.
Differential Revision: https://phabricator.services.mozilla.com/D12088
--HG--
extra : moz-landing-system : lando