Commit Graph

6093 Commits

Author SHA1 Message Date
Andrew McCreight
c93adfb04f Bug 1641090, part 9 - Change IDMap into an alias for nsDataHashtable. r=nika
Now that IDMap is just a thin wrapper around an nsDataHashtable,
it is easy to convert it into an alias.

Differential Revision: https://phabricator.services.mozilla.com/D77169
2020-05-28 00:54:21 +00:00
Andrew McCreight
81acc5f0da Bug 1641090, part 8 - Convert IDMap to use nsDataHashtable internally. r=nika
This is more standard, and uses about 4kb less memory when almost empty,
which seems to be the common case in an idle content process. This should save
around 66kb per content process.

The next patch will get ride of this thin wrapper and use nsDataHashtable
directly.

Differential Revision: https://phabricator.services.mozilla.com/D76985
2020-05-27 23:59:41 +00:00
Andrew McCreight
be7c7206db Bug 1641090, part 7 - Rename IDMap::Lookup to Get. r=nika
This is to further match nsTHashtable's interface.

Differential Revision: https://phabricator.services.mozilla.com/D77168
2020-05-27 23:59:39 +00:00
Andrew McCreight
064fa8de6e Bug 1641090, part 6 - Make ReplaceWithID compatible with nsTHashtable's Put. r=nika
This method is the same as Put(), except that it asserts that the item
is not already present. It also puts the key second. Make it compatible
by hoisting out the assert and reversing the arguments. We can use the
definition of Put() defined in an earlier patch.

Differential Revision: https://phabricator.services.mozilla.com/D77167
2020-05-27 23:59:36 +00:00
Andrew McCreight
de620fecfb Bug 1641090, part 5 - Make IDMap::Remove match nsTHashtable's behavior. r=nika
nsTHashtable::Remove doesn't assert if the item isn't present. Match that
behavior by removing the assert and putting it at all of the call sites.

This just turns IDMap::Remove into RemoveIfPresent, so merge them.

Differential Revision: https://phabricator.services.mozilla.com/D77166
2020-05-27 23:59:34 +00:00
Andrew McCreight
4e909e4e75 Bug 1641090, part 4 - Make AddWithID compatible into Put. r=nika
This function is similar to the Put() method in nsTHashtable, but it lists the
key second and it asserts that the key is not already in the map. This patch
swaps the arguments and hoists the assertion out, where appropriate. Note that
there are a few places that were working around this assert, so for those places
don't include the assert.

Differential Revision: https://phabricator.services.mozilla.com/D77165
2020-05-27 23:59:32 +00:00
Andrew McCreight
35ea3b560b Bug 1641090, part 3 - Add and use a new Contains predicate. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D77164
2020-05-27 23:59:29 +00:00
Andrew McCreight
8b534e1748 Bug 1641090, part 2 - Inline IDMap::HasData. r=nika
It is only used in one place, so get rid of it. Also, iterate in a nicer way.

Differential Revision: https://phabricator.services.mozilla.com/D77163
2020-05-27 23:59:27 +00:00
Andrew McCreight
aaead092ca Bug 1641090, part 1 - Remove unused methods and an unused field from IDMap. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D77162
2020-05-27 23:59:25 +00:00
Andrew McCreight
45fd231644 Bug 1641091, part 3 - Remove some methods that always return null. r=froydnj
GetConstructedEventTarget and GetSpecificMessageEventTarget always return
null. The idea was that subclasses could override them, but nobody does any
more.

Differential Revision: https://phabricator.services.mozilla.com/D76984
2020-05-27 13:58:39 +00:00
Andrew McCreight
a6091e070f Bug 1641091, part 2 - Remove unused SetEventTargetForRoute methods. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76983
2020-05-27 13:58:37 +00:00
Nika Layzell
01f5ec3468 Bug 1635720 - Abort send attempt if malformed partial_write_iter_ is found, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76740
2020-05-26 16:39:41 +00:00
Gian-Carlo Pascutto
c7ba6789e7 Bug 1638293 - Fix missing definition of self in BaseProcessLauncher. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D76004
2020-05-22 21:08:02 +00:00
Sylvestre Ledru
615c83d723 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D76451
2020-05-25 07:42:38 +00:00
Gijs Kruitbosch
38b061ef45 Bug 1638373 - remove js/ipc now that CPOWs are dead, r=mccr8
Depends on D76597

Differential Revision: https://phabricator.services.mozilla.com/D76598
2020-05-24 18:47:04 +00:00
Nathan Froyd
5e67b31c1f Bug 1639837 - make CloseFileRunnable use mozilla::Runnable; r=jld
Differential Revision: https://phabricator.services.mozilla.com/D76300
2020-05-22 22:36:59 +00:00
Nathan Froyd
1c9fd5bc7c Bug 1635720 - add diagnostic asserts for outgoing IPC messages; r=jld,nika
We are seeing crashes on aarch64 Fenix devices that appear to be related
to zero-sized messages.  But we're seeing the crashes when we're trying
to send the messages on the IO thread, and not where we're dispatching
them from.  Add some asserts so we get errors closer to the source, and
add some asserts for other things that we believe to be true and would
be useful to know aren't actually true.

Differential Revision: https://phabricator.services.mozilla.com/D76496
2020-05-22 22:25:27 +00:00
Bob Owen
5ef9be5d40 Bug 1633791 part 1: Add ability to notify the child processes of an impending shutdown. r=nika
This also adds a call to the new function in ContentParent::StartForceKillTimer.

Differential Revision: https://phabricator.services.mozilla.com/D75507
2020-05-22 18:21:59 +00:00
Chris H-C
1a7bcf4c98 Bug 1635713 - Be explicit about SampleSet copies r=janerik
This also removes a copy during clear operations, which is nice I guess.

Differential Revision: https://phabricator.services.mozilla.com/D76328
2020-05-22 15:33:17 +00:00
Emilio Cobos Álvarez
7b19f0d6d4 Bug 1609024 - Remove cache mechanism which is not very useful. r=hiro,snorp,mccr8
I don't think all this complexity is worth it for having a
marginally-more-realistic testing story. Using the pref just works and we should
do that, I think.

Differential Revision: https://phabricator.services.mozilla.com/D59980
2020-05-21 17:02:06 +00:00
Peter Van der Beken
1990918ebe Bug 1570255 - Remove sync session history implementation. r=smaug,nika
Differential Revision: https://phabricator.services.mozilla.com/D65326
2020-05-20 09:09:06 +00:00
Nika Layzell
533fa5bd14 Bug 1635689 - Part 2: Stop generating 'get' method on IPDL unions, r=jld
This method always copies, and is redundant with the other getter methods on
IPDL unions. As there is only one caller, it can be removed to simplify the
code, and remove a source of complexity.

Differential Revision: https://phabricator.services.mozilla.com/D75349
2020-05-18 19:39:54 +00:00
Eden Chuang
16b5f23697 Bug 1532287 - P2 Propagate loading document/worker's COEP to nsHttpChannel through nsILoadInfo r=necko-reviewers,valentin,JuniorHsu
Currently, the worker's COEP is saved in WorkerPrivate and not be respected when loading resources in workers.
This patch adds an attribute loadingEmbedderPolicy in nsILoadInfo, which indicates the COEP header the loading must be respected.

The default value of loadingEmbedderPolicy is nsILoadInfo::EMBEDDER_POLICY_NULL.
loadingEmbedderPolicy is initialized with the COEP of the BrowsingContext used for creating LoadInfo.
And it could be set to other value when fetch in workers.

Differential Revision: https://phabricator.services.mozilla.com/D73690
2020-05-19 12:50:39 +00:00
nicolaspacheco
72803335c4 Bug 1622166 - Change variadic functions from the old recursive way using Fold expressions r=gerald,jld
Differential Revision: https://phabricator.services.mozilla.com/D70431
2020-05-14 16:31:17 +00:00
Aaron Klotz
370decf41a Bug 1637452: Part 8 - Fix JNI includes in ipc/glue; r=jld
In this bug we're moving away from monolithic JNI headers to class-specific
headers so that we don't have to rebuild the world every time we make a change
to a JNI interface.

Differential Revision: https://phabricator.services.mozilla.com/D75371
2020-05-15 17:04:34 +00:00
Razvan Maries
481517ce87 Backed out 2 changesets (bug 1558394) for perma failures on iframe_sandbox_anchor_download_block_downloads.sub.tentative.html. CLOSED TREE
Backed out changeset 79046ff8143b (bug 1558394)
Backed out changeset e13ede3c68d4 (bug 1558394)
2020-05-15 19:18:34 +03:00
Sebastian Streich
bb0855332f Bug 1558394 - Pass the TriggeringSandboxFlags to nsILoadinfo r=ckerschb,smaug,necko-reviewers,valentin
Add triggering Sandbox flags to loadinfo
***
Pass triggering Flags into Loadinfo

Differential Revision: https://phabricator.services.mozilla.com/D69588
2020-05-15 14:03:28 +00:00
Gian-Carlo Pascutto
ecee111c1f Bug 1553717 - Use Randomization on all arenas in non-Content Processes. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D70240
2020-05-13 08:31:04 +00:00
Bogdan Tara
edcb53f163 Backed out 2 changesets (bug 1558394) for nsDocShellLoadState related bustage CLOSED TREE
Backed out changeset 5889105bd089 (bug 1558394)
Backed out changeset 80a0ea17c9f8 (bug 1558394)
2020-05-14 15:17:32 +03:00
Sebastian Streich
9ce86dc585 Bug 1558394 - Pass the TriggeringSandboxFlags to nsILoadinfo r=ckerschb,smaug,necko-reviewers,valentin
Add triggering Sandbox flags to loadinfo
***
Pass triggering Flags into Loadinfo

Differential Revision: https://phabricator.services.mozilla.com/D69588
2020-05-14 10:04:44 +00:00
Jean-Yves Avenard
929cb06b3c Bug 1637433 - P5. replace ConnectActorRunnable with lambda. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74996
2020-05-14 06:25:15 +00:00
Jean-Yves Avenard
e20155a010 Bug 1637433 - P4. Remove ForceCloseBackgroundActorsRunnable. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74995
2020-05-14 02:01:14 +00:00
Jean-Yves Avenard
7f2693d361 Bug 1637433 - P3. Remove unused class. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74994
2020-05-14 02:01:12 +00:00
Jean-Yves Avenard
d73d4e516d Bug 1637433 - P2. Replace ShutdownBackgroundThreadRunnable with simple task for clarity. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74993
2020-05-14 02:01:16 +00:00
Jean-Yves Avenard
1885d1e5ea Bug 1637433 - P1. Remove unused MessageLoop. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74992
2020-05-14 02:01:19 +00:00
Narcis Beleuzu
d0074be6df Backed out 5 changesets (bug 1637433) for build bustages. CLOSED TREE
Backed out changeset c0f62d4c134a (bug 1637433)
Backed out changeset 63e725b2ae8f (bug 1637433)
Backed out changeset b42efea62259 (bug 1637433)
Backed out changeset c58ca2f35ed9 (bug 1637433)
Backed out changeset 7059b1afe7a6 (bug 1637433)
2020-05-14 04:58:22 +03:00
Jean-Yves Avenard
09316a5aa4 Bug 1637433 - P5. replace ConnectActorRunnable with lambda. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D74996
2020-05-14 00:26:34 +00:00
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