Commit Graph

178 Commits

Author SHA1 Message Date
André Bargull
13e2e185a4 Bug 1467438 - Part 4: Remove ScopedJSFreePtr, ScopedJSDeletePtr, and ScopedReleasePtr. r=sfink 2018-06-07 12:33:40 -07:00
Andi-Bogdan Postelnicu
ad14abb338 Bug 1453795 - IPC - Initialize member fields in classes/ structures. r=jmathies 2018-06-14 08:48:43 +03:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Stephen A Pohl
1630ce50b3 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-05-08 10:31:44 -04:00
Alex Gaynor
e7a99f8281 Bug 1457536 - refactor Transition in IPC to make it more amenable to fuzing; r=froydnj
Instead of crashing the process inside Transition on a bad state transition,
propagate an error up the stack (and crash higher up).

MozReview-Commit-ID: JJmAeq6xSfe
2018-05-03 12:08:48 -04:00
Alex Gaynor
9119fee5d7 Bug 1323532 - Part 2 - don't codegen Transition functions in ipdl, just statically define the two variants we need; r=froydnj
MozReview-Commit-ID: GdATc0Wdsxi
2018-04-30 17:10:27 -04:00
Alex Gaynor
0d459850aa 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
2018-04-30 15:22:18 -04:00
Nathan Froyd
d5d9b2d583 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
1aad33a3a3 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
e1afd1ee23 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
21ff1b6664 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
699f426c14 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
5286ec0679 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
182d281adc 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
d91e9954eb 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
6095241db8 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Andreea Pavel
d6cc32512b 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
5f1593e99c 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
a7e561f5ea 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
2018-02-16 10:24:21 -05:00
Alex Gaynor
3cc51bb878 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
2018-02-22 10:36:55 -05:00
Alex Gaynor
04900e278c Bug 1445249 - Part 2 - avoid calling OtherPid() where it might return an invalid pid on android; r=jld
MozReview-Commit-ID: EXio3oNJy4U
2018-03-13 12:54:35 -04:00
Chris Peterson
677bf4030c Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe
2017-11-05 19:37:28 -08:00
Jeff Muizelaar
93643aa1d7 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
8a2f4eadb6 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn
2017-10-10 12:06:35 +02:00
shindli
f90a73f3c0 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
10b487f193 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from ipc; r=billm
MozReview-Commit-ID: 4mDW7cJqHDn
2017-10-10 12:06:35 +02:00
Arthur Edelstein
f7d1f492d8 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
5edce28713 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
2017-09-14 16:08:57 +08:00
Bevis Tseng
5a549f7a6b Bug 1399707 - Make entries in TabChild::sActiveTabs and EventLoopActivation::mEventGroups unique. r=billm 2017-09-13 11:59:35 +08:00
Bill McCloskey
2f978036c6 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
e704f1ba01 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
943c7f2733 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
f3061eed89 Bug 1366316 - Separate thread for IPCBlobInputStream actors - part 1 - actor migration, r=smaug 2017-05-31 07:41:10 +02:00
Bill McCloskey
c6f3c8f6aa Bug 1363877 - Label IPC shmem messages as SystemGroup (r=dvander)
MozReview-Commit-ID: 3I5ny0wxVHI
2017-05-19 16:38:12 -07:00
Bill McCloskey
4285635b81 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
c76b296a27 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
31f9a8236d merge mozilla-inbound to mozilla-central a=merge 2017-05-05 15:17:26 +02:00
Andreas Farre
09ee357119 Bug 1322184 - Measure time spent in content JS that causes delay in paint. r=billm, data-r=bsmedberg
MozReview-Commit-ID: Iz31CKSnDdc
2017-05-02 08:10:00 -04:00
Kevin Chen
007f189a47 Bug 1343754 - Add a function for replacing event target for actor and label PTexture; r=bevistseng,billm,nical
MozReview-Commit-ID: KGVBWsexkqC
2017-03-21 03:57:56 +00:00
Sebastian Hengst
0b131f5c2a 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
d08e1cb76d Bug 1343754 - Add a function for replacing event target for actor and label PTexture; r=bevistseng,billm,nical
MozReview-Commit-ID: KGVBWsexkqC
2017-03-21 03:57:56 +00:00
Kan-Ru Chen
bcafbd9c83 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
2017-03-16 17:36:15 +08:00
Sebastian Hengst
83f0f3f4ce Backed out changeset 325bf1bf5a1f (bug 1313200) for Android and reftest bustage. r=backout 2017-04-18 18:24:56 +02:00
Kan-Ru Chen
1941561696 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
2017-03-16 17:36:15 +08:00
Bill McCloskey
1f66e062b6 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
c4334372ad 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
2017-03-10 17:01:38 -08:00
Andrew McCreight
1922b09c8c 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
2017-03-09 13:37:55 -08:00
Bevis Tseng
4e1106d1ce Bug 1339014 - Add IProtocol::GetActorEventTarget() to Retrieve the EventTarget of the Actor if Set. r=billm
MozReview-Commit-ID: Czg5hxJBcYN
2017-02-13 14:04:58 +08:00
Christoph Diehl
e76f4e3d31 Bug 1337697 - Define MOZ_IPC_MESSAGE_LOG in another spot for builds with --enable-fuzzing. r=billm 2017-02-14 12:38:22 +01:00
Christoph Diehl
b562d02b05 Bug 1337697 - Define MOZ_IPC_MESSAGE_LOG in builds with --enable-fuzzing. r=billm 2017-02-08 01:08:00 -05:00