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

729466 Коммитов

Автор SHA1 Сообщение Дата
Chris Fallin 7a5957abe6 Bug 1669055: Vendor Cranelift e22e2c3722f2fbccd3c8d3230119fa04c332c69c. r=jseward
This patch pulls in an updated Cranelift with a new validation strategy,
introduced by bytecodealliance/wasmtime#2059. This new design validates
the Wasm module as it parses the function bodies. A subsequent patch
will adapt Baldrdash to work with this.

Differential Revision: https://phabricator.services.mozilla.com/D92503
2020-10-07 06:25:50 +00:00
Henrik Skupin a82c2aca89 Bug 1628589 - [remote] Enable puppeteer job for all builds on trunk. r=ahal
Instead of running the tests only for changes under /remote
they need to be executed for each changeset on trunk.

Differential Revision: https://phabricator.services.mozilla.com/D92559
2020-10-07 17:23:53 +00:00
Jeff Gilbert e7dc5b9af5 Bug 1669383 - Force default mochitest-webgl runs to use webgl.out-of-process:false. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D92530
2020-10-07 17:33:13 +00:00
Kartikaya Gupta f246440880 Bug 1669778 - Add a couple more presets for minimal tier-1 builds. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D92786
2020-10-07 17:30:06 +00:00
Kartikaya Gupta edb02da630 Bug 1669547 - Use the currently-running python executable for the preview command. r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D92656
2020-10-07 17:28:35 +00:00
Jed Davis 567fc3fb12 Bug 1664922 - Allow CPU information in the "utility" sandbox policy, for nsSystemInfo. r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D90603
2020-10-07 17:31:37 +00:00
Jed Davis 8805b6cb8f Bug 1662564 - Use RAII for the memory mapping in IPC base::SharedMemory, and default its constructors. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D90602
2020-10-07 17:31:34 +00:00
Jed Davis 679d26c651 Bug 1662564 - Change IPC base::SharedMemory to use RAII for file descriptors/handles. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D90601
2020-10-07 17:31:32 +00:00
Andreea Pavel 4dbb01e9eb Bug 1666843 - disable browser_pointerlock_warning.js on Linux debug fission DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D92776
2020-10-07 17:20:31 +00:00
Stephen A Pohl 12750afc8e Bug 1656004: Change padding for option to match the non-native theming spec. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85303
2020-10-07 17:13:16 +00:00
Harry Twyford a576962a26 Bug 1668389 - Only set #urlbar[open] if we are sure there will be either results or one-offs. r=mak
This was more difficult to solve than I expected. The main issue is that the
`[open]` attribute on `#urlbar` wasn't accurate when the view was "open" but
there were no results or one-offs, so it was in fact closed. This broke a few
style rules.

This bug can also be reached when the user has no engines and clears the search
string while in search mode. This includes pressing Accel+K when typing a search
string while not in search mode.

The relationship between the UrlbarView and the one-offs is complex and depends
on a lot of listeners and async calls made in synchronous contexts. Furthermore,
most of the UrlbarView open/close code is synchronous, but checking the number
of engines (to determine if the one-offs will open) is an async operation. These
factors make it difficult for the view to discern any state about the one-offs
and plan accordingly.

First I tried adding a [oneoff] attribute to .urlbarView, set asynchronously when
the one-offs are built. Then I changed CSS rules to check
```
.urlbarView:not([noresults]),
.urlbarView[oneoffs]
```
instead of just `#urlbar[open]`. This approach would've required changing
a bunch of CSS from the simple `#urlbar[open]` to the more complicated CSS
above, which was not good for code readability. Also it would keep `[open]` in
a weird useless state where it couldn't really be trusted. This would've caused
other styling problems.

I settled on adding a `.then` call around the affected UrlbarView opening. The
view opens only if we are sure that we will have either results or one-offs,
so we can once again trust the `[open]` parameter. This approach has its
drawbacks. Mainly, it's a more JavaScript-heavy solution so it's possibly
slow. Thankfully, it's something that can be easily cached.

Differential Revision: https://phabricator.services.mozilla.com/D92526
2020-10-07 15:02:16 +00:00
Kashav Madan 52c2031a79 Bug 1669583 - Make browser_async_window_flushing.js work with SHIP, r=farre
Differential Revision: https://phabricator.services.mozilla.com/D92669
2020-10-07 11:47:10 +00:00
Anny G 3d58b6a993 Bug 1669604 - Make test_bug1422334.html xorigin compatible, r=smaug
When xorigin is enabled, test url is amended with extra query parameters, as a way to send extra information via test runner, which this test does not expect. When we are comparing test url with the url of the iframe it embeds, we need to remove extra query parameters.

Differential Revision: https://phabricator.services.mozilla.com/D92771
2020-10-07 14:54:36 +00:00
Andrew Sutherland c4e657f4da Bug 1662925 - Make SW fetch events properly queue. r=dom-workers-and-storage-reviewers,janv
Excerpting some documentation I wrote up for an OVERVIEW.md for Service
Workers for this exact use situation below.  The basic situation of this patch
is that we were trying to create the FetchEventOpProxyParent immediately
before the managing PRemoteWorker instance existed, which isn't a thing we can
do.  Because FetchEvent ops are more complicated they require somewhat more
unique handling, but it should have been unified with the PendingOp
infrastructure and was not.  The one notable thing going on actor-wise is that
the request body (if present) requires special RemoteLazyInputStream
serialization and this is something that can only be done once we have the
RemoteWorkerParent.  See https://phabricator.services.mozilla.com/D73173 and
its commit message and my "Restating" blocks for more context.


### Threads and Proxies

#### Main Thread

ServiceWorkerManager's authoritative ServiceWorker state lives on the main
thread in the parent process.  This is due to a combination of legacy factors
and that currently the nsHttpChannel AsyncOpen logic where navigation
interception occurs must be on the main thread.

#### IPDL Background Thread

The IPDL Background Thread is the thread where PBackground parent actors are
created.  Because IPDL actors are explicitly tied to the thread they are created
on and PBackground is the only top-level protocol created for use by DOM
Workers, this thread is the natural home for book-keeping and authoritative
state for APIs that are accessed via PBackground-managed protocols.  For
example, IndexedDB and other QuotaManager-managed storage APIs.

The Remote Worker APIs are all PBackground managed and so all messages sent via
the Remote Worker API need to be sent from the IPDL Background thread.

#### Main Thread to IPDL Background Proxies

There are 2 ways to get data from the main thread to the IPDL Background thread:
either via direct runnable dispatch or via IPDL IPC.  We use IPDL IPC (which
has optimizations for same-process communication).

The following interfaces exist exclusively to proxy requests from the
ServiceWorkerManager on the main thread to the IPDL Background thread.
- `PRemoteWorkerController` is a proxy wrapper around the
  `RemoteWorkerController` API exposed on the IPDL Background thread.
- `PFetchEventOp` is paired with `PFetchEventOpProxy` managed by the above
  `PRemoteWorkerController`.  `PFetchEventOp` gets the data to the IPDL
  Background thread from the main thread, then `PFetchEventOpProxy` gets the
  data down to the content process.

## Non-Fetch ServiceWorker events AKA ExtendableEvents
How non-fetch events are dispatched to the serviceworker (including the IPC).

Because ServiceWorkers are intended to be shutdown and restarted on demand and
most event processing is asynchronous, there needs to be a way to track
outstanding requests and for content logic to indicate when it is done
processing requests.  `ExtendableEvent`s are the mechanism for this.  A method
`waitUntil(promise)` adds promises to be track as long as the event is still
"active".

This straightforward lifecycle means that these events map well to our IPC
async return value mechanism.  This is used by
`PRemoteWorker::ExecServiceWorkerOp`.

## Fetch events and FetchEvent.respondWith()

`FetchEvent`s have a different lifecycle and dataflow than regular
`ExtendableEvents`.  They expose a `respondWith()` method that will eventually
resolve with a fetch `Response` object that potentially needs to be propagated
before the ExtendableEvent is no longer active.  (The response will never be
propagated after `waitUntil()` settles because every call to `respondWith()`
implicitly calls `waitUntil()`.)

From an IPC perspective, this means that `FetchEvent` instances need their own
IPC actor rather than being able to depend on the async return value mechanism
of IPDL.  That's why `PFetchEventOpProxy` exists and is managed by
`PRemoteWorker`.

Differential Revision: https://phabricator.services.mozilla.com/D92021
2020-10-07 16:02:24 +00:00
Andrew Sutherland f2243a9fe7 Bug 1662925 - Test enhancements. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D92020
2020-10-07 16:03:48 +00:00
Nika Layzell 52eb306b64 Bug 1662925 - Part 1: Test fetch intercepting spawning a serviceworker process, r=asuth
This is a WIP patch, and currently fails.

Differential Revision: https://phabricator.services.mozilla.com/D91173
2020-10-07 16:05:30 +00:00
Alexandre Poirot c6c98b8cbc Bug 1669592 - [devtools] Cleanup debugger/package.json dependencies list r=jdescottes
This changeset focuses on dependencies, but surprisingly, it has an impact on bundles.
Looks like one dependency uses another revision.

Differential Revision: https://phabricator.services.mozilla.com/D92736
2020-10-07 15:51:36 +00:00
Alexandre Poirot 6bc39d4810 Bug 1669592 - [devtools] Cleanup debugger/package.json. r=jdescottes
This changeset focus on devDependencies, but a similar work can probably be done on dependencies.
Many dependencies are justifies solely because of jest.
In order to run flow, we only need flow, and we need very few things for bin/bundle.
For me, the three things to keep working are:
* flow
* jest
* bin/bundle to rebuild vendors, reps, worker modules
The debugger frontend itself (src/ folder) is built without involving yarn/package.json.

Differential Revision: https://phabricator.services.mozilla.com/D92735
2020-10-07 15:51:05 +00:00
Nika Layzell c69565e02f Bug 1661364 - Part 6: Give the recycled process background process priority, r=kmag,jesup
Differential Revision: https://phabricator.services.mozilla.com/D89485
2020-09-14 13:45:49 +00:00
Nika Layzell b772ba7bfb Bug 1661364 - Part 5: Remove MarkAsTroubled, r=kmag
This method has no implementation, and is unused.

Differential Revision: https://phabricator.services.mozilla.com/D88629
2020-09-14 13:45:49 +00:00
Nika Layzell bc478ec278 Bug 1661364 - Part 4: Disable process recycling when prealloc is disabled, r=kmag,jesup
Various tests disable process preallocation in order to get "stable" process
counts for testing purposes. In order to keep this behaviour, we need to disable
and shut down the recycled E10S process whenever the preallocator is disabled.

This is accomplished by having the preallocator expose its enabled status to
ContentParent, and by having the preallocator trigger ContentParent shutdown
when it is disabled.

This also has the benefit of hooking the recycler back into memory pressure
notifications, meaning it will be shut down if not in use when a memory pressure
event occurs.

Differential Revision: https://phabricator.services.mozilla.com/D88628
2020-09-14 13:45:48 +00:00
Nika Layzell 6659bba1f6 Bug 1661364 - Part 3: Add a MaybeBeginShutDown method, r=kmag,jesup
This helper method abstracts over the common tasks performed in every normal
shutdown codepath. This will be useful for making process recycling respect
preallocation being disabled.

Differential Revision: https://phabricator.services.mozilla.com/D88627
2020-09-14 13:45:48 +00:00
Nika Layzell 8ba59b4f56 Bug 1661364 - Part 2: Don't recycle web processes with Fission enabled, r=kmag,jesup
It is uncommon to have long-lived "web" processes when Fission is enabled, so in
general we probably don't want to be performing content process recycling.

We also skip recycling web processes when E10s is disabled, as the process
preallocator would be disabled in that case, so recycling processes can lead to
mochitest-chrome test failures.

Differential Revision: https://phabricator.services.mozilla.com/D88626
2020-09-14 13:45:48 +00:00
Nika Layzell bdeb969b66 Bug 1661364 - Part 1: Don't remove recycled content processes from the pool, r=kmag,jesup
Previously, we would use the PreallocatedProcessManager to handle recycled
"web" content processes, which would remove them from the pool and try to make
them act like "prealloc" content processes.

Unlike true preallocated content processes, we can end up having content loaded
in recycled "web" content processes, such as due to a new pop-up being created
at an inconvenient time during process teardown. The complexity around this
semi-prealloc state caused some assertion failures in other related code.

This new approach doesn't remove the recycled process from the process selection
pool. Instead, after process selection decides to spawn a new "web" process, a
pointer to the specific "recycled" content process is fetched and returned by
the process selection algorithm before asking the preallocator.

This new approach should have similar behaviour, but avoids some of the pitfalls
caused by removing the entry from the process selection pool after it has begun
hosting content.

Differential Revision: https://phabricator.services.mozilla.com/D88625
2020-09-14 13:45:48 +00:00
Nika Layzell a008f5cdae Bug 1660342 - Add more assertions around host state, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D87928
2020-09-16 04:43:54 +00:00
Andreea Pavel da3b8233f6 Merge mozilla-central to autoland on a CLOSED TREE 2020-10-07 18:57:31 +03:00
Andreea Pavel 1015fc2548 Merge autoland to mozilla-central a=merge 2020-10-07 18:45:09 +03:00
Andreea Pavel 4e78008f2d Backed out changeset 5bc024234126 (bug 1658308) for breaking bugzilla.mozilla.org a=backout 2020-10-07 17:50:32 +03:00
Simon Giesecke d335ae6911 Bug 1653276 - Ensure that IndexedDB operations are cancelled when nsGlobalWindowInner::FreeInnerObjects is called. r=dom-workers-and-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D92209
2020-10-07 14:38:50 +00:00
Sylvestre Ledru 5c7636b11a no bug - Fix more docs warnings (404) r=firefox-source-docs-reviewers,championshuttler DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D92765
2020-10-07 15:30:36 +00:00
Jeff Muizelaar e34b83a0aa Bug 1669726 - Fix WeakTable test. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D92770
2020-10-07 14:55:01 +00:00
Razvan Maries f56817ceee Backed out changeset da4cf62e21fb (bug 1668851) for perma failures on browser_cdp.js. CLOSED TREE 2020-10-07 15:08:01 +03:00
Razvan Maries 16156cddff Backed out changeset 8d5f1790048c (bug 1653276) for very frequently failures on ActorsChild.cpp. CLOSED TREE 2020-10-07 14:57:40 +03:00
Razvan Maries 7ed0fd1168 Backed out 2 changesets (bug 1668825) for build bustages on TracingAPI.h. CLOSED TREE
Backed out changeset 5bc8cb307c61 (bug 1668825)
Backed out changeset 0e6a88c27779 (bug 1668825)
2020-10-07 14:34:10 +03:00
André Bargull 0d11db55c4 Bug 1669181 - Part 40: Move "jit/CompileInfo.h" include in "jit/JitcodeMap.h" to the cpp file. r=jandem
Replace the include with a forward declaration of `InlineScriptTree`.

Depends on D92630

Differential Revision: https://phabricator.services.mozilla.com/D92631
2020-10-07 10:51:46 +00:00
André Bargull 20bc2979de Bug 1669181 - Part 39: Split CalleeTokenTag from jit/JitFrames.h. r=jandem
Split `CalleeTokenTag` functions from "jit/JitFrames.h" into a new
"jit/CalleeToken.h" header. Also move `CalleToken` itself from
"jit/JSJitFrameIter.h" in the new header.

This avoids pulling in the other headers included in "jit/JitFrames.h" to
the users of `CalleeToken{Tag}`.

Also:

- Remove the unused function `CalleeTokenIsModuleScript`.
- `ScriptFromCalleeToken` stays in "jit/JitFrames.h" for now to avoid pulling
  in "vm/Script.h".


Additional changes needed:

vm/SavedFrame.h:
- Include "vm/NativeObject.h" for `NativeObject`.

Depends on D92629

Differential Revision: https://phabricator.services.mozilla.com/D92630
2020-10-07 06:47:34 +00:00
André Bargull 07bb2619b8 Bug 1669181 - Part 38: Clean-up includes to "jit/BaselineFrame.h" in SharedICHelpers headers. r=jandem
Replace the "jit/BaselineFrame.h" includes in "SharedICHelpers-<platform>.h"
with includes to "jit/JitFrames.h" (for `FRAMESIZE_SHIFT`).

Additional changes needed:

jit/<platform>/SharedICHelpers-<platform>-inl.h:
- Add missing "jit/BaselineFrame.h" include.

jit/<platform>/Trampoline-<platform>.cpp:
- Add missing "jit/BaselineFrame.h" include.

jit/WarpBuilder.cpp:
- Add missing "jit/BaselineFrame.h" include.


Also changed:

vm/Activation-inl.h
- Remove unnecessary "jit/BaselineFrame.h" include.

Depends on D92628

Differential Revision: https://phabricator.services.mozilla.com/D92629
2020-10-07 06:46:15 +00:00
André Bargull 326f6bf087 Bug 1669181 - Part 37: Clean-up jit/CompactBuffer.h includes. r=jandem
Depends on D92627

Differential Revision: https://phabricator.services.mozilla.com/D92628
2020-10-07 06:45:47 +00:00
André Bargull 85f54c9fd2 Bug 1669181 - Part 36: Clean jit/JitContext.cpp includes. r=jandem
Depends on D92626

Differential Revision: https://phabricator.services.mozilla.com/D92627
2020-10-07 06:45:34 +00:00
André Bargull 0bfb6a5207 Bug 1669181 - Part 35: Clean-up jit/RangeAnalysis.h includes. r=jandem
Depends on D92625

Differential Revision: https://phabricator.services.mozilla.com/D92626
2020-10-07 06:42:57 +00:00
André Bargull b2ca935e51 Bug 1669181 - Part 34: Clean-up jit/IonAnalysis.h includes. r=jandem
`JS::Handle` and `JS::HandleFunction` were fully qualified to avoid pulling in
the "NamespaceImports.h" header.

Depends on D92624

Differential Revision: https://phabricator.services.mozilla.com/D92625
2020-10-07 06:42:39 +00:00
André Bargull 75bf3a7fc3 Bug 1669181 - Part 33: Clean-up jit/FoldLinearArithConstants.h includes. r=jandem
Depends on D92623

Differential Revision: https://phabricator.services.mozilla.com/D92624
2020-10-07 06:41:46 +00:00
André Bargull d7ce1572b2 Bug 1669181 - Part 32: Remove jit/JitFrames.h include from MacroAssembler-<platform>.h. r=jandem
The platform-specific assemblers no longer need to include "jit/JitFrames.h".

Additional changes needed:

jit/arm/Simulator-arm.cpp:
- Include "vm/JSContext.h" for `TlsContext.get()`.

Differential Revision: https://phabricator.services.mozilla.com/D92623
2020-10-07 08:07:42 +00:00
André Bargull 02e49a4d7c Bug 1669181 - Part 31: Remove unnecessary includes to jit/JitRealm.h. r=jandem
Remove unnecessary resp. no longer needed includes to "jit/JitRealm.h" after
the refactorings from the last parts.


Additional changes needed:

- And add "jit/JitRealm.h" includes in some places which previously only
  indirectly included it through "Assembler-<platform>.h".

Depends on D92577

Differential Revision: https://phabricator.services.mozilla.com/D92578
2020-10-07 08:07:42 +00:00
Michael Kaply 3b8cbc4cac Bug 1668980 - Try browserStopped instead of browserLoaded to avoid intermittent. r=emalysz
Differential Revision: https://phabricator.services.mozilla.com/D92647
2020-10-07 02:10:26 +00:00
Brad Werth 5f931bfe75 Bug 1669628: Restrict a timing test to optimized builds, to avoid intermittency. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D92769
2020-10-07 14:45:23 +00:00
Simon Giesecke 987aea606d Bug 1669652 - Fix llvm-symbolizer path encoding. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D92744
2020-10-07 13:49:41 +00:00
Nico Grunbaum 2248f8b080 Bug 1669406 - add pref to blocklist codecs for WebRTC testing;r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D92540
2020-10-07 14:26:37 +00:00
Razvan Maries fbc063e58d Backed out 2 changesets (bug 1664517) for very frequently failures on browser_aboutprocesses.js. CLOSED TREE
Backed out changeset b77d34b9f128 (bug 1664517)
Backed out changeset 636894c5966f (bug 1664517)
2020-10-07 17:54:15 +03:00
Razvan Maries d359081e12 Backed out changeset aaf5c5213d8d (bug 1665062) for perma failures on test_http_background_auth_request.html. CLOSED TREE 2020-10-07 17:51:55 +03:00