Commit Graph

172 Commits

Author SHA1 Message Date
Alex Gaynor
33a10861a4 Bug 1323532 - Part 1 - don't codegen State enums in ipdl, just statically define the two types we need; r=froydnj
MozReview-Commit-ID: CSfCBiQnKxZ

--HG--
extra : rebase_source : 9b1968ba812eed8f9e6b31a5a7cbf773970282d6
2018-04-30 15:22:18 -04:00
Nathan Froyd
53f1900f29 Bug 1451363 - part 6 - move GetIPCChannel into ProtocolState; r=mccr8
We can move this information into ProtocolState and save having two
virtual functions for every protocol.  Moving some bits out of the
codegen'd IPC code is a nice bonus, though we keep the strange setup
where toplevel protocols have two mChannel member variables.
2018-04-23 14:13:36 -04:00
Nathan Froyd
dbc53de3d9 Bug 1451363 - part 5 - remove ProtocolName virtual function; r=mccr8
ProtocolName() is only used for producing error messages and annotating
crash reports.  But examining actual crash reports that would have used
the result of ProtocolName() indicates that we can always tell what the
erroring protocol is due to the stack backtrace.  So having this virtual
function around just provides duplicate information, and it takes up too
much space in the vtable besides.  Let's get rid of it.
2018-04-23 14:13:36 -04:00
Nathan Froyd
e77f1868f1 Bug 1451363 - part 4 - consolidate generated code into IProtocol; r=mccr8
lower.py generates repetitious:

  SetManager(...);
  Register(...); // Or RegisterID.
  SetIPCChannel(...);

calls, which are moderately sized, given that the above call sequence
requires virtual calls in several places.  Instead of codegenning this
sequence, let's consolidate the sequence into IProtocol and change the
code generator to call into the consolidated function instead.
2018-04-23 14:13:37 -04:00
Nathan Froyd
9eac324691 Bug 1451363 - part 3 - make OnChannelReceivedMessage defined in early beta only; r=mccr8
This function is only overriden in two places, both of which go away
after early beta is done.  We shouldn't be paying for its vtable entry
after that point.
2018-04-23 14:13:37 -04:00
Nathan Froyd
7b8c73c090 Bug 1451363 - part 2b - move protocol event target access into ProtocolState; r=mccr8
The reasoning here is the same as for the protocol register/lookup
functions: these functions are all basic functionality that should not
be overriden by subclasses.
2018-04-23 14:13:37 -04:00
Nathan Froyd
8196fc2720 Bug 1451363 - part 2a - move protocol register/lookup functions into ProtocolState; r=mccr8
This functionality is base functionality for top-level and non-toplevel
protocols; nobody overrides this stuff, so it's safe to move into
ProtocolState.
2018-04-23 14:13:37 -04:00
Nathan Froyd
a796a8f982 Bug 1451363 - part 1 - move Shmem-related IProtocol interfaces into an intermediate State class; r=mccr8
IProtocol, which is inherited by every generated IPDL protocol and every
concrete protocol implementation in-tree, has a number of virtual
methods that are only relevant when distinguishing between top-level
protocols (IToplevelProtocol) and managed protocols (everything else).
These virtual methods require pointers in every protocol's vtable, which
is wasteful, and it's also somewhat confusing that many methods exist
but don't really need to be overridable in any useful way.

Let's clean this up, by creating a ProtocolState class to hold methods
that solely differ between top-level protocols and everything else.
This commit does that work and moves Shmem-related methods into this
class as a proof that this can be done in a reasonable way.
2018-04-23 14:13:37 -04:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Andreea Pavel
26f640b36b Backed out 4 changesets (bug 1366808) for Windows GPU leakchecks on a CLOSED TREE
Backed out changeset 23f60e5acaa2 (bug 1366808)
Backed out changeset bf2262b6aca8 (bug 1366808)
Backed out changeset 1fc82af3a155 (bug 1366808)
Backed out changeset 0649f0d9884b (bug 1366808)
2018-04-10 05:11:36 +03:00
Stephen A Pohl
b40a23754c Bug 1366808: Properly detect buildID mismatches between parent and child processes and display about:restartrequired to prompt the user to restart Firefox before proceeding. r=jimm,felipe,bz 2018-04-09 20:16:31 -04:00
Stephen A Pohl
db9ff55a1c Bug 1348361 - Part 3 - Do not block the thread when spawning a gecko child process; r=jld
They are not yet fully async because ContentParent::InitInternal calls
OtherPid(), which will block until the process is spawned. Deferring the calls
to OtherPid() will be a subject of a follow up patch.

MozReview-Commit-ID: 4TFkMpdQtRw

--HG--
extra : rebase_source : 3e7567679ae04aa4c04ea6f6c146e70417e7ce05
2018-02-16 10:24:21 -05:00
Alex Gaynor
911eab5d61 Bug 1348361 - Part 1 - Added locking to IToplevelProtocol's management of the peer's pid; r=jld
This will let us manipulate it from multiple threads in a future patch.

MozReview-Commit-ID: 2AOgho8SEX9

--HG--
extra : rebase_source : 49e7d82b38e6f7b7eb9f6cb7c61a2b41d34f2bdc
2018-02-22 10:36:55 -05:00
Alex Gaynor
83b1d64e22 Bug 1445249 - Part 2 - avoid calling OtherPid() where it might return an invalid pid on android; r=jld
MozReview-Commit-ID: EXio3oNJy4U

--HG--
extra : rebase_source : a7fe96470b138bb8758c6b8683ba6ad029adb5a1
2018-03-13 12:54:35 -04:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Jeff Muizelaar
fba16646be Bug 1379680. Add an ipc ByteBuf type. r=billm
This adds a ByteBuf type that can be sent by taking
ownership of its buffer instead of having to make a copy.
2017-11-29 10:11:15 -05:00
Gabriele Svelto
ef3b2f88cc Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn

--HG--
extra : rebase_source : 17c51ed796733d4a512e1d6f47273318dcc26b11
2017-10-10 12:06:35 +02:00
shindli
fb855aa7ba Backed out 16 changesets (bug 1402519) for conflicts during merge r=backout on a CLOSED TREE
Backed out changeset 07fcf163241a (bug 1402519)
Backed out changeset c6d2ad45d8e2 (bug 1402519)
Backed out changeset 8a3caca61294 (bug 1402519)
Backed out changeset 01425eae2c48 (bug 1402519)
Backed out changeset cf298d3815de (bug 1402519)
Backed out changeset e1964f4389cd (bug 1402519)
Backed out changeset f405337f3569 (bug 1402519)
Backed out changeset a76356fd3359 (bug 1402519)
Backed out changeset d3bb350d1c34 (bug 1402519)
Backed out changeset 9d3bfd9f932c (bug 1402519)
Backed out changeset e3dd6e5b073f (bug 1402519)
Backed out changeset e801b0c00134 (bug 1402519)
Backed out changeset 8a4139fa5dca (bug 1402519)
Backed out changeset 8d01c14ac1ca (bug 1402519)
Backed out changeset 24e0dcd01898 (bug 1402519)
Backed out changeset f8fdf450613f (bug 1402519)
2017-11-23 00:11:44 +02:00
Gabriele Svelto
f0b9eb9ff9 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn

--HG--
extra : rebase_source : a13301f4faea301cd528179790f2430171f59a48
2017-10-10 12:06:35 +02:00
Arthur Edelstein
8c18d9409a Bug 1404226 - Fix ubsan runtime error for mozilla::ipc::Transport::Mode enum. r=billm 2017-10-02 02:03:00 -04:00
Kan-Ru Chen
9016ef6cef Bug 1397456 - Always use static name for ipc messages r=billm
Never store names in Message. One can get string names from
Message::name() or use IPC::StringFromIPCMessageType() when only
message id is available.

MozReview-Commit-ID: 15ksx6SE90c

--HG--
extra : rebase_source : 1a041dc365b7f42edd540d8c7a4dfd8912e48921
2017-09-14 16:08:57 +08:00
Bevis Tseng
da72a5478c Bug 1399707 - Make entries in TabChild::sActiveTabs and EventLoopActivation::mEventGroups unique. r=billm
--HG--
extra : rebase_source : ffccc53b6b1055d7cfeb281ee145b897807a7810
2017-09-13 11:59:35 +08:00
Bill McCloskey
587e22d043 Bug 1333962 - Add nsILabelableRunnable to label runnables like vsync (r=kanru)
MozReview-Commit-ID: FdvqV0LfFsz
2017-08-25 10:28:23 -07:00
Jan Varga
72d235da4a Bug 1283609 - Part 1: Add an IToplevelProtocol::Open overload that takes an nsIEventTarget; r=billm 2017-08-03 11:21:44 +02:00
Nathan Froyd
f8bedda41c Bug 1384713 - remove unused *MsgStartChild constants; r=billm
We only ever use these for passing them into Endpoint construction.
Let's remove them.  Removing them also shows that the corresponding
field in Endpoint is essentially read-only, so we can completely avoid
passing in protocol IDs to Endpoint.
2017-07-27 13:32:15 -04:00
Andrea Marchesini
dd8eddb26f Bug 1366316 - Separate thread for IPCBlobInputStream actors - part 1 - actor migration, r=smaug 2017-05-31 07:41:10 +02:00
Bill McCloskey
b71d032b99 Bug 1363877 - Label IPC shmem messages as SystemGroup (r=dvander)
MozReview-Commit-ID: 3I5ny0wxVHI
2017-05-19 16:38:12 -07:00
Bill McCloskey
8adfa773bb Revert "Bug 1363877 - Label IPC shmem messages as SystemGroup (r=dvander)" for valgrind failures
This reverts commit 1f7a7e259501b47a014959049e2ed069fe2fd9b8.
2017-05-17 12:58:35 -07:00
Bill McCloskey
2f2e996bf5 Bug 1363877 - Label IPC shmem messages as SystemGroup (r=dvander)
MozReview-Commit-ID: 3I5ny0wxVHI
2017-05-17 11:47:40 -07:00
Carsten "Tomcat" Book
fdc689ba16 merge mozilla-inbound to mozilla-central a=merge 2017-05-05 15:17:26 +02:00
Andreas Farre
7cd708c02f Bug 1322184 - Measure time spent in content JS that causes delay in paint. r=billm, data-r=bsmedberg
MozReview-Commit-ID: Iz31CKSnDdc

--HG--
extra : rebase_source : e0db2419ee2ef868d2f4d1b47d45547e55bd2036
2017-05-02 08:10:00 -04:00
Kevin Chen
aa4fe616d0 Bug 1343754 - Add a function for replacing event target for actor and label PTexture; r=bevistseng,billm,nical
MozReview-Commit-ID: KGVBWsexkqC

--HG--
extra : rebase_source : 2ae5e2aa2e54cb2c368310ebdb1fdcbcae3092f4
2017-03-21 03:57:56 +00:00
Sebastian Hengst
0d8a182804 Backed out changeset 25f2e9e2068d (bug 1343754) for crashing e.g. in dom/workers/test/serviceworkers/test_fetch_integrity.html. r=backout 2017-05-03 12:59:36 +02:00
Kevin Chen
bdb02a828a Bug 1343754 - Add a function for replacing event target for actor and label PTexture; r=bevistseng,billm,nical
MozReview-Commit-ID: KGVBWsexkqC

--HG--
extra : rebase_source : 5ac2edced51462fd013f0efba0e434d6a2fc7863
2017-03-21 03:57:56 +00:00
Kan-Ru Chen
ffab50c6f8 Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang
This patch implements async returns for IPDL using MozPromises. There
are following changes:

* Initialize AbstractThreads for MessageLoops
* Record promises and their reject functions
  * When async message returns, call their resolve functions
  * When send error or channel close, call their reject functions
* Implement "unresolved-ipc-promises" count for about:memory
* Test cases

See bug attachment for generated code from test cases

MozReview-Commit-ID: 7xmg8gwDGaW

--HG--
rename : ipc/ipdl/test/ipdl/error/AsyncReturn.ipdl => ipc/ipdl/test/ipdl/ok/AsyncReturn.ipdl
extra : rebase_source : 9a5821d6c0e5f7152b8152a17a409b94e8258dc3
2017-03-16 17:36:15 +08:00
Sebastian Hengst
45fe002ab2 Backed out changeset 325bf1bf5a1f (bug 1313200) for Android and reftest bustage. r=backout
--HG--
rename : ipc/ipdl/test/ipdl/ok/AsyncReturn.ipdl => ipc/ipdl/test/ipdl/error/AsyncReturn.ipdl
2017-04-18 18:24:56 +02:00
Kan-Ru Chen
625b54086e Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang
This patch implements async returns for IPDL using MozPromises. There
are following changes:

* Initialize AbstractThreads for MessageLoops
* Record promises and their reject functions
  * When async message returns, call their resolve functions
  * When send error or channel close, call their reject functions
* Implement "unresolved-ipc-promises" count for about:memory
* Test cases

See bug attachment for generated code from test cases

MozReview-Commit-ID: 7xmg8gwDGaW

--HG--
rename : ipc/ipdl/test/ipdl/error/AsyncReturn.ipdl => ipc/ipdl/test/ipdl/ok/AsyncReturn.ipdl
extra : rebase_source : 55c4f68a3f8b7d0df5ca9f9c45b9a205b337282d
2017-03-16 17:36:15 +08:00
Bill McCloskey
5203251704 Bug 1333968 - Add GetSpecificMessageEventTarget method to change the event target for specific IPC messages (r=dvander)
MozReview-Commit-ID: EIyfNgKWCRo
2017-04-11 12:59:13 -07:00
Andrew McCreight
b46bfc918b Bug 1345978, part 2 - Check build ids early in content startup. r=billm
If Firefox is updated while it is running, the content process can end
up being a different version than the parent process. This can cause
odd crashes, that will happen repeatedly until the user restarts
Firefox. To handle this better, this patch adds a special build ID
message that is sent early in content process startup. The parent
process intentionally crashes if the build ID for the child process
does not match that of the parent process.

MozReview-Commit-ID: 7D3ggkaLxNS

--HG--
extra : rebase_source : 1f8d917ce01919524f949dd5bedfbbbd557f7ed3
2017-03-10 17:01:38 -08:00
Andrew McCreight
50ab94e943 Bug 1345897 - Use a separate error function for sentinel errors. r=kanru
Using a separate error function will distinguish mismatched sentinels
from other errors, such as array length problems.

MozReview-Commit-ID: Gl8swNhqLns

--HG--
extra : rebase_source : 494759b105086c6c26f3ac53fb644bbf51c12800
2017-03-09 13:37:55 -08:00
Bevis Tseng
8d2b101ac7 Bug 1339014 - Add IProtocol::GetActorEventTarget() to Retrieve the EventTarget of the Actor if Set. r=billm
MozReview-Commit-ID: Czg5hxJBcYN

--HG--
extra : rebase_source : f4d1dbc63f6092c6e02f742ee490bb276da88f9b
2017-02-13 14:04:58 +08:00
Christoph Diehl
de351bcbec Bug 1337697 - Define MOZ_IPC_MESSAGE_LOG in another spot for builds with --enable-fuzzing. r=billm
--HG--
extra : rebase_source : a72bdb71132dca122d27406d5eea77716a7c8c87
2017-02-14 12:38:22 +01:00
Christoph Diehl
b3e16e6212 Bug 1337697 - Define MOZ_IPC_MESSAGE_LOG in builds with --enable-fuzzing. r=billm
--HG--
extra : rebase_source : 77a6deca7a5b4438eeac7d950e4653691888270f
2017-02-08 01:08:00 -05:00
Bill McCloskey
563f66dae7 Bug 1318506 - Assign a TabGroup to every PBrowser (r=mystor,ehsan)
Every new PBrowser, whether it's created by the parent or the child, needs
to get a TabGroup assigned to it. That way IPC messages for the PBrowser will
be dispatched to that TabGroup.

For new PBrowsers created by the child, we just create a new TabGroup or reuse
the opener's TabGroup.

For PBrowsers created by the parent, the child needs to intercept the
PBrowserConstructor message and assign a TabGroup immediately. PBrowsers created
by the parent never have an opener so we can always create a new TabGroup.

In both cases, the nsGlobalWindow::TabGroupOuter logic needs to be updated to
read the TabGroup out of the IPC code. Otherwise the DOM and IPC code will get
out of sync about TabGroups.

MozReview-Commit-ID: D5iEdgirfvK
2016-12-23 11:48:13 -08:00
Andrew McCreight
888e432b17 Bug 1323468, part 2 - Pass the message id directly to Transition and eliminate Trigger. r=kanru
MozReview-Commit-ID: GU3lXP3eRh6

--HG--
extra : rebase_source : c01247a988cc80cf2739c10a44dc0a971495e528
2016-12-14 10:09:47 -08:00
Bill McCloskey
92bc2d9707 Bug 1317844 - Allow an event target to be specified for each IPC actor (r=dvander)
MozReview-Commit-ID: 1xuWFTS8skZ
2016-11-21 17:03:39 -08:00
Bill McCloskey
ce28731f8b Revert "Bug 1317844 - Allow an event target to be specified for each IPC actor (r=dvander)"
This reverts commit 30396b9e84304ad7ee7d5a253ec886325a0f0cbe.
2016-11-21 16:49:44 -08:00
Bill McCloskey
60edaca23d Bug 1317844 - Allow an event target to be specified for each IPC actor (r=dvander)
MozReview-Commit-ID: 1xuWFTS8skZ
2016-11-21 16:43:15 -08:00
Bill McCloskey
a8bd0983dc Bug 1317844 - Convert IDMap so it can store nsCOMPtr (r=dvander)
MozReview-Commit-ID: 5fCM4u1QZLE
2016-11-21 16:43:05 -08:00