Commit Graph

6093 Commits

Author SHA1 Message Date
Nika Layzell
9c12bdf9af Bug 1633379 - Part 1: Move PInProcess into dom/ipc, r=kmag,Yoric
This moves it near the cross-process `PContent` actor, and makes it more clear
that this actor is only intended to be used for DOM things.

Differential Revision: https://phabricator.services.mozilla.com/D80581
2020-06-25 17:50:51 +00:00
Cosmin Sabou
4d79f57fed Backed out 2 changesets (bug 1633379) for windows build bustages on ContentChild.obj. CLOSED TREE
Backed out changeset a26037f3225b (bug 1633379)
Backed out changeset efef0b59bcd8 (bug 1633379)
2020-06-25 20:47:03 +03:00
Butkovits Atila
6d4dc7f680 Backed out 13 changesets (bug 1633935) as requested by Junior. CLOSED TREE
Backed out changeset 398fc19f5f6a (bug 1633935)
Backed out changeset 25822279ba5b (bug 1633935)
Backed out changeset e87b11c172b9 (bug 1633935)
Backed out changeset 709f8d50aa33 (bug 1633935)
Backed out changeset 3b268ac50692 (bug 1633935)
Backed out changeset ac9c5c1e5162 (bug 1633935)
Backed out changeset 292a5b34e9f7 (bug 1633935)
Backed out changeset 6251c22cc8f1 (bug 1633935)
Backed out changeset 73b51a139c91 (bug 1633935)
Backed out changeset 2a9873ad6856 (bug 1633935)
Backed out changeset be03e0e7b645 (bug 1633935)
Backed out changeset df5abc2c0734 (bug 1633935)
Backed out changeset 19dcca77a1cf (bug 1633935)
2020-06-25 20:25:36 +03:00
Nika Layzell
508260e158 Bug 1633379 - Part 1: Move PInProcess into dom/ipc, r=kmag,Yoric
This moves it near the cross-process `PContent` actor, and makes it more clear
that this actor is only intended to be used for DOM things.

Differential Revision: https://phabricator.services.mozilla.com/D80581
2020-06-25 15:49:15 +00:00
Simon Giesecke
43fe271d3f Bug 1634436 - Make DecryptingInputStream implement nsIIPCSerializableInputStream. r=baku
Differential Revision: https://phabricator.services.mozilla.com/D75913
2020-06-25 13:23:06 +00:00
Honza Bambas
5c088661ed Bug 1638925 - Log IPC messages, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79621
2020-06-25 12:27:51 +00:00
Honza Bambas
a212b8a5f4 Bug 1638925 - Log runnables in message_loop, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79619
2020-06-24 13:49:27 +00:00
Andrea Marchesini
5270b37037 Bug 1645786 - IPCBlobInputStream for socket process, r=smaug,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D80680
2020-06-25 12:21:14 +00:00
Kartikaya Gupta
eb0984f55a Bug 1642052 - Delete dead code. r=froydnj
This Android-only ifdef block is nested inside a Windows-only ifdef block.

Differential Revision: https://phabricator.services.mozilla.com/D80962
2020-06-24 21:24:56 +00:00
Junior Hsu
347250b5c8 Bug 1633935 - P4 Remove On[Start|Stop]Request/OnTransportAndData in PHttpChannel, r=mayhemer,nika,necko-reviewers
We move OnStartRequest from PHttpChannel to PHttpBackgroundChannel, thus adjusting
message-metadata.ini

Depends on D76970

Differential Revision: https://phabricator.services.mozilla.com/D76971
2020-06-23 16:56:53 +00:00
Nika Layzell
328a79feca Bug 1647761 - Part 1: Remove outdated terminology from ipc/, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D80683
2020-06-23 17:03:04 +00:00
Andrea Marchesini
6aa5b38d30 Bug 1641905 - ThirdPartyUtil::IsThirdPartyWindow for fission, r=dimi,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D79307
2020-06-17 20:18:23 +00:00
Jean-Yves Avenard
87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Jean-Yves Avenard
fa755b4aa0 Bug 1647133 - P5. Make IProtocol use nsISerialEventTarget. r=nika
There's no other change than definition changes. All callers are actually passing nsISerialEventTarget.

Depends on D80423

Differential Revision: https://phabricator.services.mozilla.com/D80424
2020-06-22 14:24:48 +00:00
Andrea Marchesini
7e08e07666 Bug 1646933 - DelayedStartInputStream::AsyncWait is wrongly implemented, r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D80342
2020-06-21 20:53:54 +00:00
Aaron Klotz
b460ef68c0 Bug 1646453: Add MSCOM channel hook to enable profiler markers for COM IPC; r=Jamie,gerald
To intercept COM IPC, we provide an `IChannelHook` interface to
`CoRegisterChannelHook`, which gives us notifications about COM IPC that we can
use to insert profiler markers. Note that `IChannelHook` is not documented on
MSDN, however it is defined in the SDK header files.

When the profiler is available, once XPCOM is up:

* If the profiler is active, we immediately register the channel hook;
* Otherwise we register an observer and hold off on registering the hook until
  the profiler is started, at which point we register the hook and remove the
  observer.

Differential Revision: https://phabricator.services.mozilla.com/D80053
2020-06-19 00:40:18 +00:00
Dorel Luca
8ef4b55212 Backed out changeset c7984ec2a543 (bug 1646453) for causing leaks on Mochitests. CLOSED TREE 2020-06-18 21:55:07 +03:00
Aaron Klotz
5ec7f70a40 Bug 1646453: Add MSCOM channel hook to enable profiler markers for COM IPC; r=Jamie,gerald
To intercept COM IPC, we provide an `IChannelHook` interface to
`CoRegisterChannelHook`, which gives us notifications about COM IPC that we can
use to insert profiler markers. Note that `IChannelHook` is not documented on
MSDN, however it is defined in the SDK header files.

When the profiler is available, once XPCOM is up:

* If the profiler is active, we immediately register the channel hook;
* Otherwise we register an observer and hold off on registering the hook until
  the profiler is started, at which point we register the hook and remove the
  observer.

Differential Revision: https://phabricator.services.mozilla.com/D80053
2020-06-18 17:17:24 +00:00
Andrew McCreight
0442082a5e Bug 1090374 - Convert MessageChannel::mLink to a UniquePtr. r=froydnj
The change to MessageChannel::Clear() makes mLink get cleared before
we call ~ThreadLink. This causes a race because Clear() is not
holding the monitor. To work around this, I introduced a new method
PrepareToDestroy() that handles the ThreadLink splitting. Once the
ThreadLinks are split, MessageChannel can clear mLink without a
race.

An alternative approach would be to hold the monitor in Clear()
before mLink is cleared, but then we'd end up acquiring the lock
when we didn't need to in the case where mLink is a ProcessLink.

Differential Revision: https://phabricator.services.mozilla.com/D79185
2020-06-16 22:33:55 +00:00
Brindusan Cristian
35fe5d64b2 Backed out 4 changesets (bug 1638925) for build bustages at ipc_channel_posix.cc. CLOSED TREE
Backed out changeset e0fe5351fdf7 (bug 1638925)
Backed out changeset 2c8b67413cd6 (bug 1638925)
Backed out changeset 4ea2c9ceb540 (bug 1638925)
Backed out changeset 84236f1b9064 (bug 1638925)
2020-06-17 20:28:41 +03:00
Honza Bambas
f2278bf3e2 Bug 1638925 - Log IPC messages, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79621
2020-06-17 16:15:06 +00:00
Honza Bambas
41e8aa0689 Bug 1638925 - Log runnables in message_loop, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79619
2020-06-17 16:14:09 +00:00
Razvan Maries
d653f63b03 Backed out changeset 1c9058277ddd (bug 1641905) for perma failures on test_ext_cookies_firstParty.js. CLOSED TREE 2020-06-16 22:16:58 +03:00
Andrea Marchesini
f7efe6a94c Bug 1641905 - ThirdPartyUtil::IsThirdPartyWindow for fission, r=dimi,necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D79307
2020-06-16 17:46:41 +00:00
Stephen A Pohl
de3ad3747b Bug 1634765: Drop support for (and prevent from running on) macOS versions below 10.12. r=haik
Differential Revision: https://phabricator.services.mozilla.com/D73516
2020-06-11 19:28:25 +00:00
Jean-Yves Avenard
c7ce1ad8f3 Bug 1644009 - P6. Revert "Bug 1592488 - P5. Ensure an AbstractThread exists with BackgroundThread." r=nika
DirectTask dispatching will now be directly handled by nsThread.

Differential Revision: https://phabricator.services.mozilla.com/D79090
2020-06-12 05:10:03 +00:00
Ryan VanderMeulen
96581380fe Backed out changeset 454c8a5739ac (bug 1634765) so an intent to deprecate email can be sent out first.
CLOSED TREE
2020-06-11 15:24:33 -04:00
Stephen A Pohl
35ee005dee Bug 1634765: Drop support for (and prevent from running on) macOS versions below 10.12. r=haik
Differential Revision: https://phabricator.services.mozilla.com/D73516
2020-06-11 15:41:46 +00:00
Nico Grunbaum
8108184b4f Bug 1637450 - Add Video Frame statistics to about:webrtc;r=bwc,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D75073
2020-06-10 16:34:25 +00:00
ssengupta
1673ecbe85 Bug 1636050 - PCacheStreamControl protocol is now refcounted r=dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D78857
2020-06-09 12:58:44 +00:00
Anny Gakhokidze
32add40b99 Bug 1631859 - Part 2: Remove ancestor data from LoadInfoArgs, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D78407
2020-06-08 19:58:21 +00:00
Anny Gakhokidze
21a581c031 Bug 1631859 - Part 1: Fill out ancestor principals and outer window IDs for LoadInfo only in the parent, r=kmag,extension-reviewers
Keeping a list of ancestor principals in a LoadInfo object, that, at times,
exists in the content process, is not secure. Since ancestor principals are
only ever needed to create a list of frameAncestors, which, in turn, are only
ever accessed from the parent process, we can assemble lists of ancestor
principals and outer windowIDs whenever we are in the parent process and are
either 1) creating a LoadInfo object or 2) deserializing a LoadInfoArgs struct,
received from content process, into a LoadInfo object.

Differential Revision: https://phabricator.services.mozilla.com/D78406
2020-06-08 19:58:14 +00:00
Andrew McCreight
4ddbe0f20c Bug 1642738, part 2 - Make the message arg to two more MessageChannel send methods into a UniquePtr. r=froydnj
The reply argument that gets passed in is a stack reference which is move
assigned into, so it doesn't make sense as a unique pointer, although the
code could be restructured to return a freshly allocated object instead.

This mostly just eliminates a spurious round trip from UniquePtr to *
and back. The bulk of the patch is renaming uses of |msg| to |aMsg|.

Differential Revision: https://phabricator.services.mozilla.com/D77908
2020-06-02 21:26:37 +00:00
Andrew McCreight
1ffaefe509 Bug 1642738, part 1 - Make the non-reply MessageChannel Send messages take a UniquePtr. r=froydnj
This fixes the leak of a ShmemCreated in the case where ShareHandle fails.

Differential Revision: https://phabricator.services.mozilla.com/D77907
2020-06-02 21:25:27 +00:00
Calixte Denizet
2f9403d63b Bug 1637377 - Avoid dead lock on user-requested ccov dumps r=marco
Gcc and Clang dumps gcda files just before an exec** or fork functions.
With ccov enabled, we can dump using a SIGUSR1 but if we're in the middle of dump (because of exec** or fork)
then a gcda file can stay locked and then another process can try to get a lock on it for ever.
So to avoid such a situation, we remove the SIGUSR1 handler just before the fork an set it back just after.

Differential Revision: https://phabricator.services.mozilla.com/D78051
2020-06-03 15:06:58 +00:00
Andrew McCreight
61b98a05d9 Bug 1642670 - Make ChannelImpl::output_queue_ use UniquePtr. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77906
2020-06-02 21:24:18 +00:00
Andrew McCreight
8eefcc3e76 Bug 1642631 - Make the message argument to Channel::Send() a UniquePtr. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77876
2020-06-02 21:23:08 +00:00
Andrew McCreight
82c3c9a58a Bug 1642619 - Remove the unused MessageChannel::Echo(). r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77804
2020-06-02 13:56:07 +00:00
Andrew McCreight
3815405934 Bug 1641090, part 10 - Remove base/hash_tables.h. r=nika
The remaining use is trivial, defining some hash functions that are never used.

Differential Revision: https://phabricator.services.mozilla.com/D76986
2020-05-28 15:55:18 +00:00
Andrew McCreight
afe901a409 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 15:55:16 +00:00
Andrew McCreight
c2b4431985 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-28 15:55:08 +00:00
Andrew McCreight
99f0a4ef9d 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-28 15:55:06 +00:00
Andrew McCreight
5fdbb56cfb 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-28 15:55:03 +00:00
Andrew McCreight
7482de916e 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-28 15:55:01 +00:00
Andrew McCreight
1fc2cdf98d 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-28 15:54:59 +00:00
Andrew McCreight
1a16eaf7d6 Bug 1641090, part 3 - Add and use a new Contains predicate. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D77164
2020-05-28 15:54:56 +00:00
Andrew McCreight
a00f6161a9 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-28 15:54:54 +00:00
Andrew McCreight
077aa3dc7e 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-28 15:54:52 +00:00
Csoregi Natalia
b4ad19225c Backed out 10 changesets (bug 1641090) for asan bustage on ProtocolFuzzer.h. CLOSED TREE
Backed out changeset 9c5e95745919 (bug 1641090)
Backed out changeset df8809d1542b (bug 1641090)
Backed out changeset 92cde6ee6ade (bug 1641090)
Backed out changeset 23d5d734d0bd (bug 1641090)
Backed out changeset 6af841322f4d (bug 1641090)
Backed out changeset 2ce016edb6fc (bug 1641090)
Backed out changeset a513d47956f9 (bug 1641090)
Backed out changeset 48bc9ce7afeb (bug 1641090)
Backed out changeset 173a1c2e3e55 (bug 1641090)
Backed out changeset c915cb660411 (bug 1641090)
2020-05-28 08:51:13 +03:00
Andrew McCreight
d76f77f616 Bug 1641090, part 10 - Remove base/hash_tables.h. r=nika
The remaining use is trivial, defining some hash functions that are never used.

Differential Revision: https://phabricator.services.mozilla.com/D76986
2020-05-27 22:07:47 +00:00