Commit Graph

724408 Commits

Author SHA1 Message Date
Tooru Fujisawa
59c98f2c1f Bug 1649968 - Part 6: Use CompilationStencil in ScopeCreationData::create. r=tcampbell
Depends on D88209

Differential Revision: https://phabricator.services.mozilla.com/D88210
2020-08-27 22:12:23 +00:00
Tooru Fujisawa
8af2640026 Bug 1649968 - Part 5: Move CompilationGCOutput out from CompilationInfo. r=tcampbell
CompilationGCOutput should have different lifetime than input + stencil.
CompilationGCOutput can even be allocated in different thread than the
compilation (off-thread compilation will instantiate stencil in main thread).

Depends on D88208

Differential Revision: https://phabricator.services.mozilla.com/D88209
2020-08-27 22:12:10 +00:00
Tooru Fujisawa
056a837191 Bug 1649968 - Part 4: Reorder ScriptStencilIterable definition. r=tcampbell
So that we don't need forward declaration.

Depends on D88207

Differential Revision: https://phabricator.services.mozilla.com/D88208
2020-08-27 22:11:50 +00:00
Tooru Fujisawa
76c4a7f0c0 Bug 1649968 - Part 3: Use CompilationStencil and CompilationGCOutput in ScriptStencilIterable. r=tcampbell
CompilationGCOutput will be moved out of CompilationInfo in later patch.

Depends on D88206

Differential Revision: https://phabricator.services.mozilla.com/D88207
2020-08-27 22:11:42 +00:00
Tooru Fujisawa
8751eb263b Bug 1649968 - Part 2: Move CompilationInfo methods to CompilationInput. r=tcampbell
Depends on D88205

Differential Revision: https://phabricator.services.mozilla.com/D88206
2020-08-27 22:11:29 +00:00
Tooru Fujisawa
20665eb36c Bug 1649968 - Part 1: Create CompilationInput, CompilationState, CompilationStencil, and CompilationGCOutput. r=tcampbell
This patch just adds 4 structs to categolize CompilationInfo fields.
Later patches will simplify methods and consumers.

Depends on D88204

Differential Revision: https://phabricator.services.mozilla.com/D88205
2020-08-27 22:11:16 +00:00
Tooru Fujisawa
1f293906ba Bug 1658556 - Do not use "stencil" for ScriptStencil variable. r=tcampbell
Where other stencil structure can appear, use `script` or `scriptStencil` instead.

Differential Revision: https://phabricator.services.mozilla.com/D88204
2020-08-26 22:14:56 +00:00
Tooru Fujisawa
90a2e27cb6 Bug 1660699 - Store JSAtom in CompilationInfo. r=tcampbell
ParserAtom now holds either AtomIndex that is an index into
CompilationInfo.atoms, or WellKnownAtomId that maps to cx->names() fields.

ParserAtoms in WellKnownParserAtoms holds WellKnownAtomId,
and ParserAtoms in CompilationInfo.parserAtoms holds AtomIndex.

GetWellKnownAtom relies on the struct layout of JSAtomState, to
quickly map WellKnownParserAtoms to its field.

Differential Revision: https://phabricator.services.mozilla.com/D88203
2020-08-26 22:14:48 +00:00
Ted Campbell
3742f3b6f0 Bug 1658720 - Remove CompilationInfo::topLevel. r=arai
Instead, rename funcData to scriptData and reserve index 0 for top-level. In
non-function script cases, we have to explicitly reserve the ScriptStencil
because this was previously only done by the FunctionBox code.

Differential Revision: https://phabricator.services.mozilla.com/D87068
2020-08-26 17:25:58 +00:00
Ted Campbell
fb18e7d2dc Bug 1660891 - Remove more tracing code after ParserAtoms enabled. r=arai
The stencil data structures no longer interact directly with the GC and
remaining tracing code can be removed. The relevant vectors in the
CompilationInfo can also be simplified as a result.

Differential Revision: https://phabricator.services.mozilla.com/D88079
2020-08-27 16:49:32 +00:00
Butkovits Atila
dd5480d8da Backed out changeset f263318ebce4 (bug 1659736) for failure at test_Safari_bookmarks.js. CLOSED TREE 2020-08-28 01:49:31 +03:00
Butkovits Atila
b8629b8d1e Backed out 9 changesets (bug 1630809, bug 1653476) for Gecko Decision failures. CLOSED TREE
Backed out changeset 02a27bfc76dd (bug 1653476)
Backed out changeset afb5df61943a (bug 1630809)
Backed out changeset 04628c1f98e9 (bug 1630809)
Backed out changeset 4b4d50e0b1bf (bug 1630809)
Backed out changeset 2fa2deb5c993 (bug 1630809)
Backed out changeset d6652114cac3 (bug 1630809)
Backed out changeset ad5e4caa3291 (bug 1630809)
Backed out changeset d3d841cd14f3 (bug 1630809)
Backed out changeset b3746502e227 (bug 1630809)
2020-08-28 01:15:03 +03:00
Edouard Oger
6fe4fd09b5 Bug 1661475 - Add a "Manage devices" item to the Send Tab menu. r=markh
Differential Revision: https://phabricator.services.mozilla.com/D88420
2020-08-27 21:50:46 +00:00
Andrew McCreight
c084c684de Bug 1661384 - Remove dom.ipc.rejected_window_actor_message telemetry. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D88487
2020-08-27 21:30:08 +00:00
Jamie Nicol
b1d6fddf77 Bug 1661135 - Use primitive's spatial node rather than its picture's when deciding raster space. r=gw
When zooming, webrender overrides the raster space used to render text, so that
we do not expensively rerasterize the glyphs for every fractional change in zoom
level. Previously we chose to do this when any ancestor of the picture's spatial
node was being zoomed. This worked on most pages, because the scroll frame which
is used as the main picture caching slice is a descendent of the zooming
reference frame.

However, on pages without a scrollable frame, or for fixed-position content, the
picture's spatial node will not be a descendent of the zooming reference
frame. This meant that we did not detect that we were zooming and rendered the
text in screen raster space rather than the overridden local space, leading to
poor zooming performance.

To fix this, check whether the primitive's spatial node (rather than the
picture's) is a descendent of the zooming frame.

Differential Revision: https://phabricator.services.mozilla.com/D88474
2020-08-27 20:04:11 +00:00
Emilio Cobos Álvarez
f1b7a3ca58 Bug 1661509 - Fix SVGSVGElement::QueryInterface. r=longsonr
Differential Revision: https://phabricator.services.mozilla.com/D88475
2020-08-27 20:56:04 +00:00
Nick Thomas
9c0467f88b Bug 1653476 - import partner repack script into tree and convert to py3, r=aki
Differential Revision: https://phabricator.services.mozilla.com/D88374
2020-08-27 14:56:47 +00:00
Nick Thomas
df0eba30f9 Bug 1630809 - generate beetmover tasks for partner attribution r=aki
This is a fork of the release-partner-repack-beetmover kind and transform. It's modified to cope with having one upstream task with many partner builds, rather than a many beetmover tasks dealing with a single config-platform-locale combination.

Differential Revision: https://phabricator.services.mozilla.com/D87730
2020-08-27 05:30:40 +00:00
Nick Thomas
c5e9d12304 Bug 1630809 - generate partner attribution task r=aki
A single task is created to do all partner attributions. The partner_attribution transform processes the configuration into an environment variable for the tools/attribution/attribute.py script to use. This is quite verbose so a large number of configurations may cause problems.

Applies the same priority modification to attribution tasks as to partner repacks, to not impede the main part of the graph.

Differential Revision: https://phabricator.services.mozilla.com/D87729
2020-08-27 05:46:51 +00:00
Nick Thomas
6130e5258f Bug 1630809 - read attribution configuration from github r=aki
The partner attribution config is stored in the same repository as the repo manifest for partner repacks, but all in attribution_config.yml instead of default.xml. This extends the existing support for using the Github API to read files to retrieve and process the attribution config.

Differential Revision: https://phabricator.services.mozilla.com/D87728
2020-08-27 05:29:18 +00:00
Nick Thomas
ba595e786b Bug 1630809 - add initial support for partner attribution in release promotion r=aki
Renames the release_enable_partners parameter to release_enable_partner_repack, and adds release_enable_partner_attribution for attribution. This it to provide support for disabling them independently in main releases, and in respins.
Adds docs for attribution, update docs for repacks.
Hardwire values for the enable params for the respin flavors, other wise read from the input (defaulting to on in promotion, off otherwise).
Fixes up the rebuild-kinds for partner repacks so that they reflect the current set, although the top level may be all that is needed.

Differential Revision: https://phabricator.services.mozilla.com/D87727
2020-08-27 05:28:53 +00:00
Nick Thomas
f0a5c5a65b Bug 1630809 - check_if_partners_enabled() is only needed on the top kind for each partner branch r=aki
If the partner repack task are already removed then there can be no downstreams to disable.

Differential Revision: https://phabricator.services.mozilla.com/D87726
2020-08-27 05:28:09 +00:00
Nick Thomas
a2c4b8f1ea Bug 1630809 - when downloading artifacts using fetch-content, optionally verify hash using chain-of-trust.json r=aki
This improves the integrity of downloads of upstream artifacts when using fetch-content. If `verify-hash: True` is set on the fetch config, then the chain-of-trust.json of the upstream is used to retieve the expected sha256 of the artifact, and this is checked.

Differential Revision: https://phabricator.services.mozilla.com/D87725
2020-08-27 05:28:00 +00:00
Nick Thomas
e1d61c2ad2 Bug 1630809 - only generate release-partner-repack tasks for enabled platforms r=aki
Prior to this patch the task graph would always include a release-partner-repack-<platform> task for all 6 platforms, regardless of what was specified in release_partner_config. This was particularly obvious in the off-cycle respin scenario when a single partner is repacked. By moving and reusing get_repack_ids_by_platform() it's easy to skip unneeded platforms.

Differential Revision: https://phabricator.services.mozilla.com/D87724
2020-08-27 05:27:44 +00:00
Nick Thomas
9f6c1df957 Bug 1630809 - python3 compatibility for off-cycle partner respins, typo fixes r=aki
Differential Revision: https://phabricator.services.mozilla.com/D87723
2020-08-27 05:27:40 +00:00
Jared Wein
f2e65e077b Bug 1659736 - Move tracking of bookmark roots during IE migration later so the source is clearer. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D88059
2020-08-27 20:45:23 +00:00
Emilio Cobos Álvarez
eeaa6d826f Bug 1493223 - Allow fuzzers to call window.printPreview. r=smaug
It'll open a window / tab that they can then close. This allows fuzzers
to catch crashes in our printing codepaths. Can't wait for the fun to
start.

Differential Revision: https://phabricator.services.mozilla.com/D88477
2020-08-27 20:18:11 +00:00
Mike Hommey
9851f58c4b Bug 1661391 - Read the output from setup.py as unicode. r=froydnj
There are various problems happening when dealing with the output from
setup.py during virtualenv setup, all of which step from the process
command output not being a unicode string in python.

As this code is still used to setup python2 virtualenv, we need to use
the backwards-compatible universal_newlines=True trick.

Differential Revision: https://phabricator.services.mozilla.com/D88372
2020-08-27 12:27:54 +00:00
Eitan Isaacson
c4d362acce Bug 1660364 - Add marker index support. r=morgan
Differential Revision: https://phabricator.services.mozilla.com/D88077
2020-08-27 20:06:51 +00:00
Eitan Isaacson
1962242b94 Bug 1660364 - Introduce IPDL getters for text range length, and absolute offsets. r=morgan,mccr8
We need a sync IPC call for this because otherwise the number of smaller sync messages we would need to call would be variable.

Differential Revision: https://phabricator.services.mozilla.com/D88076
2020-08-27 20:06:42 +00:00
Ricky Stewart
1989d12e47 Bug 1646794 - Add basic infrastructure for collecting data on the performance of individual build actions r=mhentges,froydnj
This, hopefully, begins to address an ongoing global problem where we have few, if any, insights into the performance of individual build tasks (compilations, calls into Python scripts, etc.) At most we have aggregated statistics about how long tiers last, combined with `sccache` aggregates across the entire build (which don't cover non-compilation tasks). This has a few implications:

1. It's impossible to identify bottlenecks, except by going out of your way to notice and reproduce them. e.g. no one, to my knowledge, was aware that `make_dafsa.py` was a bottleneck until someone happened to notice and report it in bug 1629337. We could have systems that automatically detect this sort of thing, or at least that make it easier to do so than by CTRL-C'ing in the middle of the build several times to try to reproduce the problem.

2. It's impossible to detect regressions, unless the regression is so pronounced and severe that it has an immediate impact on the overall build time and triggers build time alerts.

3. It's impossible to identify that you have *fixed* regressions, except by doing ad-hoc timing measurements by building individual `make` targets. This is error-prone and annoying.

Here we propose a low-friction system wherein individual build tasks log their build own perf info. For now, that's a write to `stdout` consisting of the string `BUILDTASK ` followed by a simple JSON object with a start time, end time, the `argv` of the task, and an additional `"context"` key (I anticipate this could be used to annotate the task with relevant per-task for later aggregation, for example: was this an `sccache` cache hit or not? For now, it's empty everywhere). The build controller then collects this data, validates it, and writes out the entire list of build tasks as a JSON file after the build has completed, similarly to what we already do with `build_resources.json`. We already parse some `make` output to do stuff like tracking when we switch tiers, so this isn't a huge architectural shift or anything.

In my opinion this "should" happen at the build system, or `make`, level, but `make` doesn't expose anything resembling this information to my knowledge, so this has to be implemented outside of `make`. One could implement something like this at the `sccache` level but that doesn't touch anything but C/C++/Rust compilation tasks; an ideal solution would support other generic build tasks. We could also fork `make` to add this feature ourselves, but for several reasons I don't think that's tractable. :)

Of course, this approach has downsides:

1. We depend on parsing the `stdout` of `make`, and processes can unfortunately sometimes trample on each other, leading to data loss for individual build tasks occasionally. This is a necessary limitation of the model to my knowledge, and I don't know that it can be fixed generally. In my testing, not much data tends to be lost usually.

2. Dumping arbitrary data to `stdout` isn't always possible or desirable. If you're not careful about it this can also result in noisier-than-necessary tasks, especially when those tasks are not invoked by a parent process that knows how to handle the special `BUILDTASK` lines.

3. This data is raw enough where aggregation is not completely trivial.

4. This functionality has to be added for any new kind of build task whose performance we'd like to track; it doesn't come "for free" due to not being able to be implemented at the build system level.

5. The data isn't awfully small due to the `argv`'s (at this point, not nearly big enough where we need to be concerned about it IMO, but maybe that will change in the future?)

One can imagine a couple other architectures that could avoid the first two problems, namely: 1) we could use a "real" database that would not dump info to `stdout` and wouldn't lose data, like `sqlite3`; or, 2) we could set up another server, similar to `sccache`, that collects this data from subprocesses and aggregates it, making sure not to lose any along the way. Both of these have enough overhead, in terms of engineering effort or actual impact on latency, where I dont know that they make any sense to even attempt implementing. The remaining continue to be real issues, however.

After this is landed there are a few ways forward. We can start uploading these files as build artifacts in CI to allow us to reason about performance impacts of changes in `central`. We can easily add this functionality to the `sccache` client to start tracking those builds as well. We already have a very simple visualization of build tier timing in `mach resource-usage`; we could join that data against the `BUILDTASK` data to produce a very clear visualization of build bottlenecks, i.e., "why is the `export` tier taking so long", etc.

Differential Revision: https://phabricator.services.mozilla.com/D80284
2020-08-26 22:47:58 +00:00
Emil Farisan
76574f22bf Bug 1657121 - exclude uuid from s3_delete_missing. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D88282
2020-08-27 20:02:59 +00:00
yohaan
a7ebf0a72f Bug 1655110 added isPrivateName method to replace JSID manipulations r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D88404
2020-08-27 19:51:32 +00:00
Jared Wein
39420c590c Bug 1661043 - Remove duplicate plugin icon and use the icon that has proper spacing already. r=Gijs,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D88178
2020-08-27 19:30:03 +00:00
Peter Van der Beken
167889c056 Bug 1656347 - Make session history getters to work with history in parent. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D88413
2020-08-27 18:47:27 +00:00
David Major
ffe0607216 Bug 1660340 - Switch builds to clang 11.0.0 rc2 r=froydnj
This changes most of our automation builds to clang 11.0.0 rc2.

Not included:
* code coverage builds, per bug 1660341
* mingw builds, which have traditionally been on their own update cadence, and in this case are blocked anyway by bug 1658632

This will leave some unused clang-9 task definitions. I intend to clean them up, but at a later date. For now I want to focus on making sure this update sticks, since patches like this have a tendency to bounce.

Differential Revision: https://phabricator.services.mozilla.com/D88313
2020-08-27 16:26:23 +00:00
David Major
56f4983ebe Bug 1660896 - Adjust test expectations for editing WPT on Linux debug r=jgraham
A few test cases fail under clang-11 on Linux debug builds only. As described in the bug, we unfortunately don't have the bandwidth to investigate, so this patch accepts the failures.

Differential Revision: https://phabricator.services.mozilla.com/D88363
2020-08-27 16:43:14 +00:00
David Major
6db6979442 Bug 1641674 - Don't use --gc-sections during profile generation r=froydnj
For not-well-understood reasons, ld's `--gc-sections` discards a large number of the PGO bookkeeping structures that enable us to keep track of function counters, and the effect gets worse in object files generated by clang-10.

As much as I'd like to understand this better, the investigations take way too much time. As a path of least resistance, we can disable `--gc-sections` for the instrumentation phase of PGO builds. It won't harm anything since users never see those builds, and it will improve the performance of the optimized phase greatly.

Differential Revision: https://phabricator.services.mozilla.com/D78112
2020-08-27 16:26:23 +00:00
Mats Palmgren
bb86544bb1 Bug 1548753 - [css-lists] Prefer an ancestor's counter scope over a sibling's scope. r=emilio
https://github.com/w3c/csswg-drafts/issues/5477

Differential Revision: https://phabricator.services.mozilla.com/D87991
2020-08-27 18:26:38 +00:00
Jared Wein
3a15a410de Bug 1661066 - Add about:home and about:welcome as pages that can trigger the default browser notification since many users may not open a new tab. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D88185
2020-08-27 17:57:25 +00:00
Sean Feng
fb465be325 Bug 1518999 - Trick contentful detection in some geckoview tests r=snorp,geckoview-reviewers,agi
Some geckoview tests require gradient usage. Since background
images are async, these tests would wait for a contentful paint
to make sure the images are decoded before running the assertions.
This causes an issue because gradient-only backgrounds aren't
contentful anymore according to the latest spec.

We fix the tests by adding a transparent gif to the background
image list to trick the contentful detection.

Differential Revision: https://phabricator.services.mozilla.com/D88230
2020-08-27 14:49:57 +00:00
Sean Feng
abc7936eaa Bug 1518999 - Add a WPT test to make sure FCP works for iframes r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D86260
2020-08-27 14:49:57 +00:00
Sean Feng
2fbb819b7c Bug 1518999 - Update fcp-only tests to load image into memory first r=mstange
The current tests workflow works as wait for three frames, then
check if the performance entry shows up. This workflow is flaky
because the three frames piece is hardcoded and there are
chances that the paint takes longer than three frames because it
really depends on the current workload of the system.

We fix it by loading the image into memory first, so that it's
decoded before the painting.

Depends on D68647

Differential Revision: https://phabricator.services.mozilla.com/D68888
2020-08-24 22:11:48 +00:00
Sean Feng
b7fbb98e07 Bug 1518999 - Enable fcp only PerformancePaintTming tests r=mstange
Depends on D68646

Differential Revision: https://phabricator.services.mozilla.com/D68647
2020-08-24 22:11:51 +00:00
Sean Feng
1be0d5ac99 Bug 1518999 - Change the status of paint timing WPT tests r=mstange
In this patch, we changed a lot of tests from PRECONDITION_FAILED to
timeout because we added the PerformancePaintTiming API so the
precodition is no longer failed. TIMEOUT is required because
these tests expect two performance paint entries, but we only
support one of them.

Depends on D68645

Differential Revision: https://phabricator.services.mozilla.com/D68646
2020-08-24 22:11:55 +00:00
Sean Feng
4e5be39962 Bug 1518999 - Refactor some performance.getEntries related tests r=mstange
Some tests made some assumptions about the number of returned entries
by performance.getEntries, and these assumptions are not valid
anymore once we added new entries.

Depends on D66463

Differential Revision: https://phabricator.services.mozilla.com/D68645
2020-08-24 22:11:58 +00:00
Sean Feng
61ec0bd3c3 Bug 1518999 - Implement PerformancePaintTiming for FirstContentfulPaint r=smaug,mstange
Spec: https://w3c.github.io/paint-timing/#sec-PerformancePaintTiming
We only support FirstContentfulPaint at the moment.

Differential Revision: https://phabricator.services.mozilla.com/D66463
2020-08-27 14:50:43 +00:00
Jeff Gilbert
d54712b964 Bug 1660886 - Release PWebGL when ClientWebGLContext is done with it. r=handyman,jld
Differential Revision: https://phabricator.services.mozilla.com/D88067
2020-08-27 00:50:32 +00:00
Mike Conley
5b04a444c1 Bug 1643027 - Add tests for the WebRTC global mute toggles. r=pbz
Depends on D86619

Differential Revision: https://phabricator.services.mozilla.com/D86762
2020-08-27 15:46:27 +00:00
Mike Conley
ebba4517a0 Bug 1643027 - Turn the microphone and camera icons in the WebRTC indicator into global mute toggles. r=pbz,fluent-reviewers,flod
Depends on D86719

Differential Revision: https://phabricator.services.mozilla.com/D86619
2020-08-27 17:03:43 +00:00