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

6056 Коммитов

Автор SHA1 Сообщение Дата
Jean-Yves Avenard 9ad952c7be Bug 1637433 - P4. Remove ForceCloseBackgroundActorsRunnable. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74995
2020-05-14 00:26:31 +00:00
Jean-Yves Avenard 452c248a30 Bug 1637433 - P3. Remove unused class. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74994
2020-05-14 00:26:22 +00:00
Jean-Yves Avenard 4629c7f6b2 Bug 1637433 - P2. Replace ShutdownBackgroundThreadRunnable with simple task for clarity. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74993
2020-05-14 00:47:45 +00:00
Jean-Yves Avenard af15c09ca9 Bug 1637433 - P1. Remove unused MessageLoop. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74992
2020-05-14 00:45:43 +00:00
Csoregi Natalia 517e830522 Backed out 4 changesets (bug 1629866, bug 1570255) for assertion failures on DocumentChannelChild.cpp. CLOSED TREE
Backed out changeset 214e4a11be0d (bug 1570255)
Backed out changeset db066dda1bb8 (bug 1570255)
Backed out changeset d9f75d88613e (bug 1570255)
Backed out changeset fe2d4790b73a (bug 1629866)
2020-05-13 18:30:42 +03:00
Tim Huang 1fa1133990 Bug 1633851 - Part 1: Add a 'IsThirdPartyContextToTopWindow' flag to LoadInfo. r=baku
We add a 'IsThirdPartyContextToTopWindow' flag in the LoadInfo. This
flag shows if the channel is considered as a third party related to the
top-level window.

This flag would be set when opening the channel in the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D73199
2020-05-13 13:38:41 +00:00
Peter Van der Beken e2a88c491c Bug 1570255 - Remove sync session history implementation. r=smaug,nika
Differential Revision: https://phabricator.services.mozilla.com/D65326
2020-05-13 14:24:55 +00:00
Jean-Yves Avenard 4e734f2a51 Bug 1592488 - P12. Run MozPromise's IPDL callbacks via direct tasks when the promise is resolved. r=nika
Fix intermittent issues due to races.

We now run the MozPromise generated by the IPDL bindings to run their callbacks via a direct task dispatch.
This avoids a full trip to the back of the event queue for each additional asynchronous step when using MozPromise.
A consequence to this change is that each IPDL actor's thread must have an AbstractThread allocated if IPDL MozPromises are used.

It prevents unexpected racy behaviours when combining MozPromise with the other Resolve/Reject IPDL async declaration which was have lead to processing the events out of order.

Differential Revision: https://phabricator.services.mozilla.com/D71593
2020-05-12 10:45:20 +00:00
Jean-Yves Avenard 2a740519c6 Bug 1592488 - P5. Ensure an AbstractThread exists with BackgroundThread. r=nika
This is necessary to ensure we can use IPC MozPromise that requires direct tasks dispatch.

Differential Revision: https://phabricator.services.mozilla.com/D74592
2020-05-12 10:43:07 +00:00
ssengupta cf852bbfb9 Bug 1635399 - Function PrincipalInfoToPrincipal now returns Result<nsCOMPtr<nsIPrincipal>, nsresult> r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D73868
2020-05-12 19:02:05 +00:00
Andrew McCreight f9c07914d4 Bug 1636990 - Inline NS_NewBackstagePass. r=kmag
Also, make an NS_ERROR in ~mozJSComponentLoader() into an assertion.

Differential Revision: https://phabricator.services.mozilla.com/D74691
2020-05-11 22:46:24 +00:00
Ricky Stewart d7c0c9fd6b Bug 1635755 - Part 2: Use deterministic hashing over types in `ipdl` file generation r=nika
The hashes of certain strings is used indirectly in generating IDL C++ files. Before, we were using the `hash()` function to generate these hashes, which in Python 3 is non-deterministic over subsequent `python3` processes, causing bugs like bug 1635755. Instead, use a specific, deterministic hash to avoid spurious diff failures.

The `md5` hash function isn't completely cryptographically secure but the security of the hashes isn't important for us in this case since we're just using them as a per-string identifier. We could use a more robust hash function but there may be performance implications from doing so.

Differential Revision: https://phabricator.services.mozilla.com/D74446
2020-05-08 20:31:46 +00:00
Chris Fronk af8a02cc9d Bug 1512991 - Add JsonWriteFunc::Write to take string length. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72560
2020-05-08 16:24:31 +00:00
Razvan Maries f38ed46452 Backed out changeset 2cedf945f040 (bug 1347710) as per Chris's request. CLOSED TREE 2020-05-07 21:56:51 +03:00
Ricky Stewart 933b3522b8 Bug 1633156 - Don't emit cached table files from ply r=glandium
`ply`, [by design](https://github.com/dabeaz/ply/issues/79), does not produce reproducible table files; hence bug 1633156. (Note that this was *always* true, but only became a problem once we switched to Python 3, which has more unpredictable dict iteration order than Python 2.7, at least prior to [3.7](https://docs.python.org/3/whatsnew/3.7.html#summary-release-highlights).)

In any other circumstance I would consider submitting a patch to `ply` to fix this, but as of the [in-progress version 4.0 of the library](https://github.com/dabeaz/ply/blob/master/CHANGES), it doesn't even emit this cached data any more, and indeed the [latest version of the code](1fac9fed64/ply) doesn't even call `open()` at all except to do logging or to read the text data to be parsed from `stdin`. So if we were going to pin our future on `ply` and upgrade to later versions of the library in the future, we would have to live in a world where `ply` doesn't generate cached table files for us anyway.

Emitting the cached table files so later build steps can consume them is an "optimization", but it's not clear exactly how much actual value that optimization provides overall. Quoth the `CHANGES` file from that repository:

```
PLY no longer writes cached table files.  Honestly, the use of
the cached files made more sense when I was developing PLY on
my 200Mhz PC in 2001. It's not as much as an issue now. For small
to medium sized grammars, PLY should be almost instantaneous.
```

In practice, I have found this to be true; namely, `./mach build pre-export export` takes just about as long on my machine after this patch as it did before, and in a try push I performed, there's no noticeable performance regression from applying this patch. In local testing I also found that generating the LALR tables in calls to `yacc()` takes about 0.01s on my machine generally, and we generate these tables a couple dozen times total over the course of the `export` tier now. This isn't *nothing*, but in my opinion it's also not nearly long enough where it would be a concern given how long `export` already takes.

That `CHANGES` file also stresses that if caching this data is important, we have the option of doing so via `pickle`. If and when we decide that re-enabling this optimization is valuable for us, we should take control of this process and perform the generation in such a way that we can guarantee reproducibility.

Differential Revision: https://phabricator.services.mozilla.com/D73484
2020-05-07 00:39:28 +00:00
Kershaw Chang 2531104710 Bug 1623380 - Send ODA directly to content process r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D67609
2020-05-07 14:39:21 +00:00
Dorel Luca ed73e1d6d4 Backed out changeset 2b9fc84a789b (bug 1623380) for Mochitest failures in dist/include/mozilla/RefPtr.h. CLOSED TREE 2020-05-07 15:17:30 +03:00
Kershaw Chang 467f6725fc Bug 1623380 - Send ODA directly to content process r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D67609
2020-05-07 11:12:46 +00:00
Simon Giesecke 61ad805d68 Bug 1626570 - Use CopyableTArray in ipdlc as member type for now. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D73685
2020-05-07 08:11:08 +00:00
Chris Martin 07a0652222 Bug 1347710 - Enable Windows GPU sandbox for supported hardware r=gcp
Currently, there is an outstanding issue where enabling the GPU sandbox breaks
scrolling using the the mouse wheel on laptops with Intel GPUs.

This will enable the GPU sandbox on Nightly for non-Intel GPUs to prevent any
sandbox regressions while we try and figure out what the scrolling issue is.

See Bug 1630860 for more info

Differential Revision: https://phabricator.services.mozilla.com/D73923
2020-05-06 14:03:09 +00:00
Simon Giesecke 9d5e7505f9 Bug 1623278 - Make Factory derive from SafeRefCounted. r=dom-workers-and-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D69398
2020-05-06 12:20:14 +00:00
Simon Giesecke 21bb7652c9 Bug 1626570 - Improve handling of copying arrays in ipc/. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D73679
2020-05-06 11:51:48 +00:00
Bob Owen c86a9b6e30 Bug 1632583: Only register taskbar button creation message in the parent process. r=aklotz
This also removes XRE_Win32kCallsAllowed and replaces its other use.

Differential Revision: https://phabricator.services.mozilla.com/D73909
2020-05-05 16:11:44 +00:00
Ricky Stewart 3749c34fb4 Bug 1632916 - Run JS/web-platform/ipdl build machinery in Python 3 r=jgraham,nika,glandium
Differential Revision: https://phabricator.services.mozilla.com/D72478
2020-05-05 20:32:12 +00:00
Simon Giesecke ae6bdc7e8b Bug 1626570 - Add CopyableAutoTArray. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73300
2020-05-05 10:56:14 +00:00
Bogdan Tara f137fa0613 Backed out 6 changesets (bug 1632916, bug 1599658, bug 1633037, bug 1633039, bug 1633016, bug 1632920) for SA bustages CLOSED TREE
Backed out changeset 332ce0963b4e (bug 1633039)
Backed out changeset a9904cbc40d9 (bug 1633037)
Backed out changeset d06b0ec349f8 (bug 1599658)
Backed out changeset 8fd300cad80f (bug 1633016)
Backed out changeset f8820941c703 (bug 1632916)
Backed out changeset ac9c2c8746ed (bug 1632920)
2020-05-02 01:49:29 +03:00
Ricky Stewart d990224458 Bug 1632916 - Run JS/web-platform/ipdl build machinery in Python 3 r=jgraham,nika,glandium
Differential Revision: https://phabricator.services.mozilla.com/D72478
2020-05-01 16:31:21 +00:00
David Parks cbf4e1a5cc Bug 1621762: Part 7 - Add IpdlQueue actor traits to WebGLParent/WebGLChild r=jgilbert,jld
Adds IpdlQueue capability to PWebGL actors.  The WebGLChild, used in content processes, implements SyncProducerActor and AsyncConsumerActor because it sends (sync and async) messages and receives responses to them that it reads as async messages.  The WebGLParent, used in the compositor process, is a SyncConsumerActor and AsyncProducerActor for dual reasons.

Differential Revision: https://phabricator.services.mozilla.com/D68264
2020-04-30 22:24:44 +00:00
David Parks b18b3bfd97 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 22:23:48 +00:00
Toshihito Kikuchi e83bcb5130 Bug 1630281 - Cache the executable's IAT for ntdll.dll before COM initialization. r=mhowell
When the browser process starts a sandbox process, we copy the executable's IAT
for ntdll.dll into the new process to prevent DLL injection via IAT tampering as
the launcher process does.  However, if IAT has been modified by a module injected
via `SetWindowHookEx`, the browser process cannot copy IAT because a modified IAT
is invalid in a different process, failing to start any sandbox processes.

The proposed fix is to cache IAT before COM initialization which may load
modules via `SetWindowHookEx` for the first time in the process.

Differential Revision: https://phabricator.services.mozilla.com/D73303
2020-04-30 18:26:18 +00:00
Simon Giesecke 652b5d3980 Bug 1626570 - Add ParamTraits for CopyableTArray. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D72690
2020-04-30 09:36:04 +00:00
Daniel Varga 452acadb3b Backed out 7 changesets (bug 1621762) for causing build bustages at builds/worker/workspace/obj-build/dist/include/mozilla/dom/ProducerConsumerQueue.h
CLOSED TREE

Backed out changeset 03903e8f368e (bug 1621762)
Backed out changeset 21ef72486643 (bug 1621762)
Backed out changeset 70d103786c83 (bug 1621762)
Backed out changeset a3e1332998c3 (bug 1621762)
Backed out changeset 010f653b87d2 (bug 1621762)
Backed out changeset 0496adcb4582 (bug 1621762)
Backed out changeset 8d85420fd2e6 (bug 1621762)
2020-04-30 06:06:33 +03:00
David Parks 053f3b98ca Bug 1621762: Part 7 - Add IpdlQueue actor traits to WebGLParent/WebGLChild r=jgilbert,jld
Adds IpdlQueue capability to PWebGL actors.  The WebGLChild, used in content processes, implements SyncProducerActor and AsyncConsumerActor because it sends (sync and async) messages and receives responses to them that it reads as async messages.  The WebGLParent, used in the compositor process, is a SyncConsumerActor and AsyncProducerActor for dual reasons.

Differential Revision: https://phabricator.services.mozilla.com/D68264
2020-04-30 01:56:55 +00:00
David Parks c917376c04 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 01:30:08 +00:00
Gerald Squelart 22a7a23613 Bug 1530419 - Move PROFILER_AUTO_THREAD_SLEEP into WinUtils::WaitForMessage from callers - r=mstange
Both `nsAppShell::ProcessNextNativeEvent()` and `MessagePumpForUI::WaitForWork()` have a `PROFILER_AUTO_THREAD_SLEEP` surrounding the `mozilla::widget::WinUtils::WaitForMessage()` call.
However inside `WaitForMessage()` the call to `PeekMessageW()` may trigger a sequence of events (because the system delivers pending messages) that end in the initialization of a new thread, which invokes `ReentrantMonitor::Wait()` where there is a `PROFILER_AUTO_THREAD_SLEEP`.

To avoid this recursion, this patch moves `PROFILER_AUTO_THREAD_SLEEP` from both callers into `WaitForMessage()` to only enclose the actual potentially-sleeping operation `::MsgWaitForMultipleObjectsEx()`.

Differential Revision: https://phabricator.services.mozilla.com/D72850
2020-04-28 16:22:13 +00:00
Kershaw Chang 4db371a46e Bug 1512478 - Use sync IPC to get client auth data from parent process r=keeler,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D36911
2020-04-28 20:12:43 +00:00
James Teh c697d1edde Bug 1633650: mscom::Interceptor: Don't call HandlerProvider::GetPayloadSize for external process callers. r=aklotz
When an Interceptor is marshaled for an external (non-chrome) process caller, we do not provide a handler and thus don't call HandlerProvider::WriteHandlerPayload.
However, GetMarshalSizeMax previously called HandlerProvider::GetPayloadSize even for external process callers.
For a11y's handlerProvider, we must build the payload to get the size.
This is wasteful in this case, since we're just going to throw it away.

Differential Revision: https://phabricator.services.mozilla.com/D72796
2020-04-28 16:21:58 +00:00
James Teh 2dcfeebd6f Bug 1627084 part 2: mscom: Provide access to the HandlerProvider from the Interceptor. r=aklotz
Because MainThreadHandoff sits between the Interceptor and the HandlerProvider, the caller must:

1. Get the event sink (the IInterceptorSink) from the Interceptor using IInterceptor::GetEventSink.
2. QI to the new IMainThreadHandoff interface. (An IInterceptorSink might not necessarily be a MainThreadHandoff.)
3. Get the HandlerProvider from the MainThreadHandoff using IMainThreadHandoff::GetHandlerProvider.

Differential Revision: https://phabricator.services.mozilla.com/D69484
2020-04-24 20:25:21 +00:00
James Teh 7a5fb3252a Bug 1627084 part 1: Don't compile ipc/mscom/MainThreadHandoff.cpp in unified mode. r=aklotz
We need to define INITGUID here in a subsequent patch, which is incompatible with unified mode.

Differential Revision: https://phabricator.services.mozilla.com/D70292
2020-04-24 20:22:06 +00:00
Stephen A Pohl 4be18f0f0e Bug 1578917: Force macOS Aqua appearance on for content processes, crash reporter and updater. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D70783
2020-04-24 18:37:57 +00:00
Simon Giesecke 191a830575 Bug 1628715 - Part 7: Add MOZ_NONNULL_RETURN to infallible nsTArray::AppendElements. r=xpcom-reviewers,necko-reviewers,nika,valentin
Differential Revision: https://phabricator.services.mozilla.com/D70831
2020-04-24 13:31:14 +00:00
shravanrn@gmail.com e0273c024b Bug 1626174 - Enable use of wasm sandboxed libOgg in the OggDemuxer in linux, mac, try servers r=padenot,erahm,dmajor,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D70652
2020-04-22 11:16:10 +00:00
Makoto Kato f052a12a9d Bug 1626389 - Part 2. Remove unnecessary GetShowPasswordSetting sync IPC. r=mccr8
GeckoView no longer uses this sync IPC, so we should remove this.

Differential Revision: https://phabricator.services.mozilla.com/D71708
2020-04-21 17:31:00 +00:00
Brindusan Cristian c4fd863aaa Backed out 2 changesets (bug 1626174, bug 1625876) for build bustages at LibrarySandboxPreload.cpp and OggDemuxer.cpp. CLOSED TREE
Backed out changeset 40fea0f3ab6c (bug 1626174)
Backed out changeset a3117fce845d (bug 1625876)
2020-04-21 19:29:02 +03:00
shravanrn@gmail.com f0399f4146 Bug 1626174 - Enable use of wasm sandboxed libOgg in the OggDemuxer in linux, mac, try servers r=padenot,erahm,dmajor,firefox-build-system-reviewers
Depends on D68764

Differential Revision: https://phabricator.services.mozilla.com/D70652
2020-04-21 15:30:37 +00:00
Gijs Kruitbosch c58b8f6ff2 Bug 1631358 - remove CPOW support in the message manager, r=mccr8
This commit:

- removes sendRpcMessage, which was unused;
- removes the CPOW argument to sendAsyncMessage, broadcastAsyncMessage, and
  sendSyncMessage;
- removes the aIsSync argument used internally to distinguish sendRpcMessage
  and sendSyncMessage;
- removes CPOW tests;
- updates the few remaining callsites that use more than 2 arguments in
  sendAsyncMessage for the removal of the cpows argument.

Differential Revision: https://phabricator.services.mozilla.com/D71514
2020-04-21 14:07:57 +00:00
Dorel Luca 873f29449b Merge autoland to mozilla-central. a=merge 2020-04-17 19:23:30 +03:00
Daniel Varga 53533d14b8 Backed out changeset a6904ec3d1e0 (bug 1347710) for causing Bug 1630860 a=backout 2020-04-17 13:01:21 +03:00
Chris Peterson 40840febd0 Bug 1629315 - Replace MOZ_MUST_USE with [[nodiscard]] in ipc. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D70628
2020-04-16 22:14:21 +00:00
Marco Bonardo fb0662edda Bug 1628906 - First search in a tab from location bar could trigger an "Invalid URL" error page. r=Gijs,nika,mattwoodrow
Before 1496578, URIFixup::keywordToURI used to do a synchronous IPC call to be
able to access search engines from the content process. Consumers of URIFixup
didn't care. Bug 1496578 moved the IPC messaging to the callers, in particular
nsDocShell, but assumed nsDocShellLoadState wasn't loading from content.
It looks like in some cases it does, so this adds another sync IPC call for
GetFixupURIInfo.
The total numer of sync IPCs should not change from before Bug 1496578, URIFIxup
was just doing it internally, while now it happens at the call point.
Note the long term plan would be for these docshell objects callers to just
handle URIs, while the UI code should do fixup.
Bug 1375244 tracks the removal of these sync IPC messages.

Differential Revision: https://phabricator.services.mozilla.com/D70607

--HG--
extra : moz-landing-system : lando
2020-04-15 22:39:38 +00:00
Christoph Kerschbaumer 7e43ad336f Bug 1621987: Implement Sec-Fetch-User. r=baku,edgar,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D69392

--HG--
extra : moz-landing-system : lando
2020-04-16 08:04:26 +00:00
Chris Martin 6590a743a5 Bug 1347710 - Enable sandbox protections for the Windows GPU process r=bobowen
It seems that all the warnings caused by the GPU sandbox have been fixed, and
the transparent window issue was resolved in D61370.

Hopefully there are no further complications and this can stay landed.

Differential Revision: https://phabricator.services.mozilla.com/D18876

--HG--
extra : moz-landing-system : lando
2020-04-15 20:08:29 +00:00
Andrea Marchesini 96780fe4bb Bug 1629763 - ContentPrincipal::GetBaseDomain returns a void-string for resource: URIs, r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D70804

--HG--
extra : moz-landing-system : lando
2020-04-14 16:26:06 +00:00
Cameron McCormack 29c6b3234c Bug 1629351 - Fix typo in name of IsPincipalInfoPrivate. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D70642

--HG--
extra : moz-landing-system : lando
2020-04-12 13:19:57 +00:00
Matt Woodrow efcf5979e5 Bug 1627859 - Don't flush IPC policies when we serialize. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D69908

--HG--
extra : moz-landing-system : lando
2020-04-10 22:14:38 +00:00
Matt Woodrow bcbc1c8c73 Bug 1627859 - De-duplicate ContentSecurityPolicy IPDL structs. r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D69907

--HG--
extra : moz-landing-system : lando
2020-04-10 22:14:16 +00:00
Christoph Kerschbaumer 4935907607 Bug 1627963: Remove requestContext from CSP shouldload and replace with fission friendly primitives. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D70173

--HG--
extra : moz-landing-system : lando
2020-04-10 10:56:57 +00:00
Bogdan Tara 33bc5f92db Backed out changeset 55c37e8a6563 (bug 1627963) for test_csp_reports.js failures CLOSED TREE 2020-04-09 13:18:25 +03:00
Christoph Kerschbaumer 667d022b80 Bug 1627963: Remove requestContext from CSP shouldload and replace with fission friendly primitives. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D70173

--HG--
extra : moz-landing-system : lando
2020-04-09 07:47:52 +00:00
Toshihito Kikuchi 8bb38652d4 Bug 1603974 - Part 1: Implement nt::VirtualQuery consuming only ntdll.dll. r=mhowell
This patch introduces `nt::VirtualQuery` which consumes only ntdll's functions
to reduce dependency in `MMPolicy` on kernel32.dll.  With this, `MMPolicy` still
depends on kernel32.dll, that will be solved by a coming patch.

Differential Revision: https://phabricator.services.mozilla.com/D68342

--HG--
extra : moz-landing-system : lando
2020-04-08 14:27:01 +00:00
Gabriele Svelto 2bc88d71e0 Bug 1614933 - Gather content processes' crash annotations at exception time instead of using IPC; r=froydnj
Crash annotations in content processes are currently sent over IPC via
shared memory buffers. To pave the way for the Rust rewrite of the exception
handler we are removing this code and gathering all the crash annotations
within the content processes themselves. This patch causes annotations to be
stored in the global table of each content process. They are then streamed
out to the parent process by the exception handler together with the
exception-time annotations.

This has a number of benefits:

* we have one less channel to exchange data between content processes and
  the parent process
* we save memory because we don't need to allocate the shared memory buffers
* annotations are faster because we don't stream them all out every time one
  changes
* we won't truncate annotations anymore if we run out of space in the shared
  segment.
* we don't need delayed annotations anymore, so we can get rid of the
  associated machinery

As I refactored the code I tried to adjust all the obsolete comments,
consolidate shared code and remove the redundant steps that were sometimes
present. In many places we had two entire crash annotation tables we merged to
change just a couple; that comes from the fact that historically we loaded
them from disk. Now it doesn't matter anymore and we can just go ahead and
change the ones we care about.

Differential Revision: https://phabricator.services.mozilla.com/D62586

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:40 +00:00
Andreas Farre 25ca8d7890 Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas
TabGroup never really made any difference in which thread something go
dispatched to. This was the intended use, but development of TabGroups
with abstract main threads never made it that far. The good thing is
that thish makes it safe to also remove to the SystemGroup and instead
switch all SystemGroup dispatches to dispatches to main thread.

Timers for setTimeout and workers were the sole users of wrapped and
throttled event targets, that those throttled queues have been moved
to the BrowsingContextGroup and are now accessed explicitly.

The SchedulerEventTarget has been removed, since there are no longer a
separate event target for every TaskCategory. Instead a
LabellingEventTarget has been added to DocGroup to handle the case
where an event is dispatched do DocGroup or when an AbstractThread is
created using a DocGroup. This means that we'll actually label more
events correctly with the DocGroup that they belong to.

DocGroups have also been moved to BrowsingContextGroup.

Depends on D67636

Differential Revision: https://phabricator.services.mozilla.com/D65936

--HG--
extra : moz-landing-system : lando
2020-04-07 15:17:47 +00:00
Andreas Farre 36eaf82163 Bug 1620594 - Part 2: Use SchedulerGroup::Dispatch instead of SystemGroup::Dispatch. r=nika
Depends on D67631

Differential Revision: https://phabricator.services.mozilla.com/D67632

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:33 +00:00
Andreas Farre 63e21eec70 Bug 1620594 - Part 1: Rework NS_ReleaseOnMainThreadSystemGroup. r=nika
To be able to remove SystemGroup, NS_ReleaseOnMainThreadSystemGroup
needs to have its dependency on SystemGroup removed. Since all
releases using SystemGroup would've released on the main thread anyway
we can safely replace NS_ReleaseOnMainThreadSystemGroup with
NS_ReleaseOnMainThread.

Depends on D64390

Differential Revision: https://phabricator.services.mozilla.com/D67631

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:23 +00:00
Daniel Varga 2617f15d0c Backed out 8 changesets (bug 1603974) for causing build bustage
CLOSED TREE

Backed out changeset ee3fb8271709 (bug 1603974)
Backed out changeset 28ef741f8f65 (bug 1603974)
Backed out changeset 631725404fb8 (bug 1603974)
Backed out changeset 484a45d16149 (bug 1603974)
Backed out changeset 5d4cd3237ec0 (bug 1603974)
Backed out changeset c2601b5bdd3e (bug 1603974)
Backed out changeset fe96d48d5b14 (bug 1603974)
Backed out changeset 9467dffe8d04 (bug 1603974)
2020-04-07 18:35:04 +03:00
Toshihito Kikuchi 18f97f01b8 Bug 1603974 - Part 1: Implement nt::VirtualQuery consuming only ntdll.dll. r=mhowell
This patch introduces `nt::VirtualQuery` which consumes only ntdll's functions
to reduce dependency in `MMPolicy` on kernel32.dll.  With this, `MMPolicy` still
depends on kernel32.dll, that will be solved by a coming patch.

Differential Revision: https://phabricator.services.mozilla.com/D68342

--HG--
extra : moz-landing-system : lando
2020-04-07 14:40:14 +00:00
Frederik Braun 1a204fbc01 Bug 1613609 - add 'allowDeprecatedSystemRequests' loadinfo flag r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D68035

--HG--
extra : moz-landing-system : lando
2020-04-07 11:55:20 +00:00
Chris Martin 777045b2f1 Bug 1347710 - Make GPU sandbox allow access to shader cache r=bobowen
When the GPU sandbox is enabled, access to most of the filesystem is blocked.

The GPU process uses a directory, "%profiledir%/shader-cache", to cache
compiled shared for performance reasons. Not allowing access to that directory
results in a HUGE performance backslide when the sandbox is turned on.

Differential Revision: https://phabricator.services.mozilla.com/D67893

--HG--
extra : moz-landing-system : lando
2020-04-06 20:45:06 +00:00
Chris Martin 64e1fb7a45 Bug 1540776 - Have parent send color profile to child during launch r=aosmond,jld,jfkthame,florian
For Win32k lockdown, we need to remove the content processes' ability to
call GetICMProfileW(). Since it needs this to retrieve the output color
profile, a new synchronous call is added that allows it to request the
parent process to read this file on its behalf.

The contents of the file are now being cached as well, as this should help
ease some of the increased parent process I/O caused by the children not
being able to do this in their process anymore.

For performance reasons, during launch this information is passed directly
to the child through the SetXPCOMProcessAttributes call

Differential Revision: https://phabricator.services.mozilla.com/D66126

--HG--
extra : moz-landing-system : lando
2020-04-02 15:42:15 +00:00
Emilio Cobos Álvarez 6ca6048ef0 Bug 1627707 - Minor cleanup in LoadInfoToLoadInfoArgs. r=ckerschb
No need for temporaries, we can just construct the object in place.

Depends on D69829

Differential Revision: https://phabricator.services.mozilla.com/D69830

--HG--
extra : moz-landing-system : lando
2020-04-06 18:57:47 +00:00
Emilio Cobos Álvarez 4b9fdf3d73 Bug 1627707 - Rename LoadInfo::LoadingPrincipal to GetLoadingPrincipal as it can return null. r=ckerschb
Mostly a matter of:

  rg -l '\->LoadingPrincipal' | xargs sed -i 's/->LoadingPrincipal/->GetLoadingPrincipal/g'

And then clang-format. But I tweaked manually nsHttpChannelAuthProvider (move
the variable where it's used, don't take a useless strong ref),
AddonContentPolicy (move the declaration of the variable to the if condition),
and BackgroundUtils (same).

Differential Revision: https://phabricator.services.mozilla.com/D69828

--HG--
extra : moz-landing-system : lando
2020-04-06 18:57:36 +00:00
Cosmin Sabou d557e2ed22 Backed out 3 changesets (bug 1627707) for build bustages @ mozilla::net::LoadInfo.
Backed out changeset 65d6a90651ce (bug 1627707)
Backed out changeset 378ec30d9979 (bug 1627707)
Backed out changeset 058a19e11b06 (bug 1627707)
2020-04-06 20:07:04 +03:00
Emilio Cobos Álvarez e7e32e2e35 Bug 1627707 - Minor cleanup in LoadInfoToLoadInfoArgs. r=ckerschb
No need for temporaries, we can just construct the object in place.

Depends on D69829

Differential Revision: https://phabricator.services.mozilla.com/D69830

--HG--
extra : moz-landing-system : lando
2020-04-06 16:00:44 +00:00
Emilio Cobos Álvarez 97872f2fee Bug 1627707 - Rename LoadInfo::LoadingPrincipal to GetLoadingPrincipal as it can return null. r=ckerschb
Mostly a matter of:

  rg -l '\->LoadingPrincipal' | xargs sed -i 's/->LoadingPrincipal/->GetLoadingPrincipal/g'

And then clang-format. But I tweaked manually nsHttpChannelAuthProvider (move
the variable where it's used, don't take a useless strong ref),
AddonContentPolicy (move the declaration of the variable to the if condition),
and BackgroundUtils (same).

Differential Revision: https://phabricator.services.mozilla.com/D69828

--HG--
extra : moz-landing-system : lando
2020-04-06 16:00:43 +00:00
Sylvestre Ledru 0aa6f03cf3 Bug 1519636 - Reformat recent changes to the Google coding style r=jgilbert
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D67574

--HG--
extra : moz-landing-system : lando
2020-04-05 13:34:58 +00:00
James Teh 132a49a8a1 Bug 1626802 part 1: mscom: Provide a way for Interceptors to avoid unnecessary cross-thread QueryInterface calls. r=aklotz
When marshaling a11y calls from the content process, there are quite a lot of cross-thread QueryInterface calls (ipc::mscom::Interceptor::QueryInterfaceTarget).
Some of these are for special COM interfaces like IAgileObject and IFastRundown, which we could just special case in Interceptor::QueryInterface like we do for INoMarshal.
However, it seems there are a lot of other interfaces being queried and it's not clear why.
This patch adds a new HandlerProvider method: IsInterfaceMaybeSupported.
This allows implementations to indicate when there are interfaces which they definitely don't support, allowing the call to be answered without a cross-thread call.

Differential Revision: https://phabricator.services.mozilla.com/D69285

--HG--
extra : moz-landing-system : lando
2020-04-01 23:30:21 +00:00
Christoph Kerschbaumer 3dd1ed4c83 Bug 1625727: Remove unnecessary fallback initialization for null loadinfos, r=baku
Differential Revision: https://phabricator.services.mozilla.com/D68716

--HG--
extra : moz-landing-system : lando
2020-03-31 07:56:11 +00:00
Jeff Walden 6a774342a0 Bug 1626105 - Convert |JS::Compile| for UTF-8 to |JS::CompileDontInflate| semantics, and remove |JS::CompileDontInflate|. r=evilpie
Differential Revision: https://phabricator.services.mozilla.com/D68905

--HG--
extra : moz-landing-system : lando
2020-03-31 01:30:05 +00:00
Tim Huang da4b3a697c Bug 1616788 - Part 1: Add a hasStoragePermission flag in the LoadInfo. r=dimi,baku
We add a flag 'HasStoragePermission' in the LoadInfo. This flag
represents whether the loading document, for docuemnt loads, or the
loading resource has the storage permission. And this flag would only
get updated in the parent process when opening the channel.

Differential Revision: https://phabricator.services.mozilla.com/D67466

--HG--
extra : moz-landing-system : lando
2020-03-30 14:10:07 +00:00
Bogdan Tara e304198a5e Backed out changeset 278b86784e72 (bug 1625727) for LoadInfo related wpt crashes CLOSED TREE 2020-03-30 13:16:44 +03:00
Christoph Kerschbaumer 89717542fd Bug 1625727: Remove unnecessary fallback initialization for null loadinfos, r=baku
Differential Revision: https://phabricator.services.mozilla.com/D68716

--HG--
extra : moz-landing-system : lando
2020-03-30 08:45:16 +00:00
James Teh c48bee7775 Bug 1598299 part 2: Remove ProxyAccessible::AccessibleAtPoint. r=yzen,nika
This wasn't useful cross-platform.
ATK was the only consumer of this and it now uses ProxyAccessible::ChildAtPoint.
This also means the related aNeedsScreenCoords functionality in PDocAccessible::AccessibleAtPoint is no longer needed and has thus been removed.
Finally, this renames PDocAccessible::AccessibleAtPoint to PDocAccessible::ChildAtPoint for consistency with Accessible::ChildAtPoint now that the functionality is mirrored.

Differential Revision: https://phabricator.services.mozilla.com/D67987

--HG--
extra : moz-landing-system : lando
2020-03-29 23:08:44 +00:00
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

Differential Revision: https://phabricator.services.mozilla.com/D68561

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
André Bargull d53798e749 Bug 1625138 - Part 23: Replace mozilla::RemovePointer with std::remove_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68378

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull a08be4177e Bug 1625138 - Part 17: Replace mozilla::Decay with std::decay. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68372

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull ebec34a898 Bug 1625138 - Part 16: Replace mozilla::IsIntegral with std::is_integral. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68371

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 1f5d157732 Bug 1625138 - Part 15: Replace mozilla::IsFloatingPoint with std::is_floating_point. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68370

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
JulianWels b9a66ff272 Bug 1622028 - Log failed upgrades for HTTPS Only Mode. r=ckerschb,dragana
Differential Revision: https://phabricator.services.mozilla.com/D68026

--HG--
extra : moz-landing-system : lando
2020-03-27 17:09:15 +00:00
Oana Pop Rus 679f10ce5f Backed out changeset 9d3487044f9a (bug 1622028) for build bustages in nsHTTPSOnlyStreamListener.h on a CLOSED TREE 2020-03-27 17:47:07 +02:00
JulianWels 8d65d4a658 Bug 1622028 - Log failed upgrades for HTTPS Only Mode. r=ckerschb,dragana
Differential Revision: https://phabricator.services.mozilla.com/D68026

--HG--
extra : moz-landing-system : lando
2020-03-27 14:35:33 +00:00
Razvan Maries dd48ca6c20 Backed out changeset 8b091426bc10 (bug 1540776) for build bustages. CLOSED TREE 2020-03-26 16:25:45 +02:00
Chris Martin 65292a10f3 Bug 1540776 - Have parent send color profile to child during launch r=aosmond,jld,jfkthame
For Win32k lockdown, we need to remove the content processes' ability to
call GetICMProfileW(). Since it needs this to retrieve the output color
profile, a new synchronous call is added that allows it to request the
parent process to read this file on its behalf.

The contents of the file are now being cached as well, as this should help
ease some of the increased parent process I/O caused by the children not
being able to do this in their process anymore.

For performance reasons, during launch this information is passed directly
to the child through the SetXPCOMProcessAttributes call

Differential Revision: https://phabricator.services.mozilla.com/D66126

--HG--
extra : moz-landing-system : lando
2020-03-26 13:44:56 +00:00
Bas Schouten 1bc21ff19c Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D59321

--HG--
extra : moz-landing-system : lando
2020-03-26 00:36:24 +00:00
Chris Martin 3373ac231b Bug 1347710 - Don't call AddTargetPeer if process is sandboxed r=bobowen,handyman
Previously, we only called AddTargetPeer() in
GeckoChildProcessHost::PerformAsyncLaunch() if the target process was not
sandboxed.

In the refactoring, the "else" clause was missed due to confusing CPP macros,
and now AddTargetPeer() is always called for non-plugin children.

This patch restores the old behavior of only calling AddTargetPeer() for non-
sandboxed processes.

Differential Revision: https://phabricator.services.mozilla.com/D67136

--HG--
extra : moz-landing-system : lando
2020-03-25 16:40:01 +00:00
Jed Davis f9c2aefe5c Bug 1550900 - Support "frozen" shared memory where the parent process retains write access. r=froydnj
This patch extends shared memory freezing to support the use case where
the parent process retains write access for incremental updates, while
other processes receive read-only access.

Note that, while some OSes allow independent read-only and read/write
capabilities for the same object, all we have on Android is an operation
that prevents future write mappings.  Therefore, this allows an existing
writeable mapping to be retained, but if that is unmapped then even the
parent process can't re-create it.

As with freezing, the read-only restriction may not be enforceable if
the recipient process isn't adequately sandboxed (e.g., on Linux, if it
can use /proc/self/fd to reopen the inode for writing).

Differential Revision: https://phabricator.services.mozilla.com/D67187

--HG--
extra : moz-landing-system : lando
2020-03-20 16:23:59 +00:00
Sylvestre Ledru 734f79b541 Bug 1624237 - Run misc-unused-using-decls - Remove useless declarations r=andi
$ ./mach static-analysis check --checks="-*, misc-unused-using-decls" --fix <path>

Differential Revision: https://phabricator.services.mozilla.com/D67811

--HG--
extra : moz-landing-system : lando
2020-03-23 13:15:33 +00:00
Brindusan Cristian 4646c1f41f Backed out 2 changesets (bug 1614933) for bc failures at browser_tabicon_after_bg_tab_crash.js.
Backed out changeset 59503d3a702f (bug 1614933)
Backed out changeset 578c8ba9598f (bug 1614933)
2020-03-22 17:30:07 +02:00
Gabriele Svelto 322404bebb Bug 1614933 - Gather content processes' crash annotations at exception time instead of using IPC; r=froydnj
Crash annotations in content processes are currently sent over IPC via
shared memory buffers. To pave the way for the Rust rewrite of the exception
handler we are removing this code and gathering all the crash annotations
within the content processes themselves. This patch causes annotations to be
stored in the global table of each content process. They are then streamed
out to the parent process by the exception handler together with the
exception-time annotations.

This has a number of benefits:

* we have one less channel to exchange data between content processes and
  the parent process
* we save memory because we don't need to allocate the shared memory buffers
* annotations are faster because we don't stream them all out every time one
  changes
* we won't truncate annotations anymore if we run out of space in the shared
  segment.
* we don't need delayed annotations anymore, so we can get rid of the
  associated machinery

As I refactored the code I tried to adjust all the obsolete comments,
consolidate shared code and remove the redundant steps that were sometimes
present. In many places we had two entire crash annotation tables we merged to
change just a couple; that comes from the fact that historically we loaded
them from disk. Now it doesn't matter anymore and we can just go ahead and
change the ones we care about.

Differential Revision: https://phabricator.services.mozilla.com/D62586

--HG--
extra : moz-landing-system : lando
2020-03-21 17:13:08 +00:00
Doug Thayer 5f13003364 Bug 1623668 - Suspend late writes for Windows IPC writes r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D67542

--HG--
extra : moz-landing-system : lando
2020-03-20 20:09:20 +00:00
Sylvestre Ledru 29c3dc6a16 Bug 1622328 - ipc/ipdl/ipdl/cxx/code.py: Add the license r=nika
Depends on D66804

Differential Revision: https://phabricator.services.mozilla.com/D66805

--HG--
extra : moz-landing-system : lando
2020-03-13 18:35:42 +00:00