Граф коммитов

724179 Коммитов

Автор SHA1 Сообщение Дата
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
Mike Conley 01fa52e2f5 Bug 1643027 - Add GlobalMuteListener to WebRTCChild for globally muting the microphone and camera. r=pbz
This listens to state changes set via SharedData. Those state changes are executed by
front-end code in a later patch in this series.

Depends on D87129

Differential Revision: https://phabricator.services.mozilla.com/D86719
2020-08-27 15:46:26 +00:00
Andreas Pehrson edfce94993 Bug 1658353 - Add state for microphone muting to MediaManager. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D87129
2020-08-27 15:47:00 +00:00
Mike Conley cd730afe2a Bug 1658353 - Make MediaEngineDefaultAudioSource::Start idempotent per expectations. r=jib
Depends on D86718

Differential Revision: https://phabricator.services.mozilla.com/D86845
2020-08-27 15:46:59 +00:00
Mike Conley 5cc3b2e692 Bug 1658353 - Add global mute/unmute capability for microphones, with tests. r=jib
Depends on D87679

Differential Revision: https://phabricator.services.mozilla.com/D86718
2020-08-27 15:46:59 +00:00
Andrew Osmond 9804b7b693 Bug 1661531 - Ensure we always update the gfx feature failure reason. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D88454
2020-08-27 17:04:27 +00:00
Cosmin Sabou 403893bc7e Backed out 5 changesets (bug 1653949) for assertion failures on EventStateManager.cpp. CLOSED TREE
Backed out changeset ad7c35ab2a40 (bug 1653949)
Backed out changeset 31cb90ef998a (bug 1653949)
Backed out changeset 03e65cbd2a11 (bug 1653949)
Backed out changeset a87ac2a7db70 (bug 1653949)
Backed out changeset 390dd2c04cd4 (bug 1653949)
2020-08-27 20:13:20 +03:00
Sebastian Hengst b1b47f12a9 Bug 1661213 - [wpt-sync] Update web-platform-tests follow-up: navigation-reporting expectations, adjust for Linux asan, a=testonly DONTBUILD 2020-08-27 18:50:43 +02:00
Matthew Gaudet c39794a10f Bug 1660882 - Enable test262 tests for private methods r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D88161
2020-08-27 16:25:51 +00:00
Matthew Gaudet e54b26b98e Bug 1660882 - Edit test262-update.py to enable private methods tests r=jorendorff
(Running the script happens in a subsequent patch)

Depends on D88156

Differential Revision: https://phabricator.services.mozilla.com/D88157
2020-08-27 16:25:51 +00:00
Matthew Gaudet 0bf4606bd3 Bug 1660882 - Make --enable-private-methods imply --enable-private-fields r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D88156
2020-08-27 16:25:50 +00:00
alwu 53232b1bdb Bug 1634494 - part8 : add test r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D87398
2020-08-26 01:44:08 +00:00
alwu 1d58f4b0f6 Bug 1634494 - part7 : merge 'file_media_session_page.html' to 'file_iframe_media.html'. r=chunmin
In order to reuse the code, put all iframe related code to one file.

Differential Revision: https://phabricator.services.mozilla.com/D87397
2020-08-22 00:27:07 +00:00
alwu 721d09a9b1 Bug 1634494 - part6 : abort if we don't have any receiver. r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D87145
2020-08-25 06:28:57 +00:00
alwu 82bb886bd9 Bug 1634494 - part5 : not always call `play` default handler r=chunmin
`play` default handler is a special case, we don't want to run it arbitrarily in order to get a better user experience.

If we have an active media session, the play should only be triggered on that session, which is something a user really wants to resume. Therefore, adding some restrictions to call default play handler only when

(1) We don't have an active media session (If we have one, the play action handler should only be triggered on that session)
(2) Active media session without setting action handler for `play`

Differential Revision: https://phabricator.services.mozilla.com/D88107
2020-08-26 04:23:31 +00:00
alwu 6ea69ac823 Bug 1634494 - part4 : notify media control action to the top level browsing context and all its children. r=chunmin
As we want to have an ability to do different operations on different browsing contexts for those actions with default handlers (play/pause/stop), so in D87142 we have changed `ContentMediaController` per browsing context. Techically it's per inner window, but it means each browsing context would have one corresponding `ContentMediaController` if the web content is in that browsing context.

The approach to achieve the goal is that, when getting those actions, we would notify to the top level browsing context, then go through its children to ensure that each browsing context can be operated correctly. By doing so, we can trigger default action handler and customized action handler on different browsing context.

Eg. A page has a child iframe, which has active media session with an action handler for `pause`. A page and iframe are both playing media. When pressing `pause`, default action handler would be run on main frame, and the customized action handler would be run on iframe.

Differential Revision: https://phabricator.services.mozilla.com/D87143
2020-08-27 04:10:45 +00:00
alwu bf59a9f003 Bug 1634494 - part3 : make content media controller per inner window. r=chunmin,smaug
Before applying this patch, `ContentMediaController` is per process, it might contains `ContentMediaControlKeyReceiver` coming from different browsing context, and we are not able to treat those receivers differently based on the browsing context they exist in.

The goal to change `ContentMediaController` per inner window is to allow us to have an ability to treat receivers in different browsing context with different operations without interering each other.

As the `ContentMediaController` control the media playback in web context, which life cycle is tight to the inner window, that is why I choose to create `ContentMediaController` on the inner window.

In addition, update the comment to make its up-to-date.

Differential Revision: https://phabricator.services.mozilla.com/D87142
2020-08-24 04:27:08 +00:00
alwu 30df6e18e6 Bug 1634494 - part2 : only call action handler on active media session. r=chunmin
Add the check to ensure that we would only notify action handler on active media session.

Differential Revision: https://phabricator.services.mozilla.com/D87141
2020-08-25 06:22:45 +00:00
alwu 75773fa092 Bug 1634494 - part1 : store the active media session context Id on WindowContext. r=chunmin,farre
We determine which media session is active media session in chrome process, but the media session in content process doesn't know the detail.

This patch would store the active session context Id on the top level WindowContext, so that media session in content process can know if it's an active context or not, which helps to trigger the action handler only on active media session, after changing our propagation mechanism in following patches.

Differential Revision: https://phabricator.services.mozilla.com/D88106
2020-08-27 14:11:05 +00:00
Iain Ireland bf740b7795 Bug 1660592: Add --fast-warmup option r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D87937
2020-08-26 21:21:29 +00:00
Iain Ireland 3ed58d89e9 Bug 1661348: Fix CacheIRSpewer r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D88332
2020-08-27 16:04:41 +00:00
Adam Vandolder 314651cd20 Bug 1647437 - Allow accessing private fields and methods via Debugger.Frame.eval. r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D87868
2020-08-27 16:18:23 +00:00
James Willcox 251d07face Bug 1661346 - Disable AV1 on Android release versions r=jolin
Differential Revision: https://phabricator.services.mozilla.com/D88328
2020-08-27 15:54:07 +00:00
Tom Tung 2cbdf15561 Bug 1660485 - Add a test to veirfy the SessionStorage for a tab is preserved during navigation; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87897
2020-08-27 15:40:47 +00:00
Marco Bonardo ed163ca20b Bug 1658605 - Enter search mode when a token alias is autofilled. r=harry
Differential Revision: https://phabricator.services.mozilla.com/D88415
2020-08-27 15:29:42 +00:00
Brendan Dahl 0d0bffa160 Bug 1661131 - Hide fill login context menu for PDF forms. r=Gijs
Having the fill logins context menu on PDF forms could lead to users
accidentally entering their login information into to a PDF form which
is probably not a desired or expected behavior.

Differential Revision: https://phabricator.services.mozilla.com/D88198
2020-08-26 21:21:20 +00:00
Bogdan Tara f7dc3b755a Backed out 6 changesets (bug 1643027, bug 1658353) for browser_parsable_css.js failures CLOSED TREE
Backed out changeset e50501b54674 (bug 1643027)
Backed out changeset aa5d33b0d0b5 (bug 1643027)
Backed out changeset 51c592eb4ebd (bug 1643027)
Backed out changeset fe37ed8ba008 (bug 1658353)
Backed out changeset acb933a440c7 (bug 1658353)
Backed out changeset 7aa764991e49 (bug 1658353)
2020-08-27 18:39:49 +03:00
Jon Coppeard c50d2510bc Bug 1635185 - Part 4: Removed the unused slotSpan field from BaseShape r=jandem
This also shrinks BaseShape down to 16 bytes on 32 bit platforms.

Differential Revision: https://phabricator.services.mozilla.com/D87889
2020-08-27 15:20:57 +00:00
Jon Coppeard f544bc0287 Bug 1635185 - Part 3: Store dictionary object slot span in the slots header r=jandem
This stores the slot span in the object slots error for dictionary mode
objects. Since it's possible to have dictionary mode objects without dynamic
slots, this adds sentinel ObjectSlots instances for each possible dictionary
slot span up to the maximum number of fixed slots.

Differential Revision: https://phabricator.services.mozilla.com/D87888
2020-08-27 15:20:39 +00:00
Jon Coppeard d73df31279 Bug 1635185 - Part 2: Use the stored capacity for NativeObject::numDynamicSlots() r=jandem
This renames methods that calculate the required slot count to calculateDynamicSlots().

Differential Revision: https://phabricator.services.mozilla.com/D87597
2020-08-27 15:24:00 +00:00