Commit Graph

128 Commits

Author SHA1 Message Date
Bill McCloskey
61ecb2775a Bug 792652 - Move TakeMinidump to IToplevelProtocol (r=dvander) 2016-11-08 15:22:52 -08:00
Bill McCloskey
bf01dc0da8 Bug 792652 - Move some channel methods to IToplevelProtocol (r=dvander)
Move Open, Close, SetReplyTimeoutMs to IToplevelProtocol.
2016-11-08 15:22:51 -08:00
Bill McCloskey
64691e0367 Bug 792652 - Move over toplevel process ID field (r=dvander)
Moves some state to IToplevelProtocol.
2016-11-08 15:22:49 -08:00
Bill McCloskey
c4eb21cc09 Bug 792652 - Remove pointless OnFoo methods (r=dvander)
A bunch of these methods just delegate from OnFoo to Foo. Not
sure why we have OnFoo.
2016-11-08 15:22:48 -08:00
Bill McCloskey
9ef76a1cf9 Bug 792652 - Move shmem methods to ProtocolUtils (r=dvander)
This patch moves some shmem management code into IProtocol. Someday
maybe we can get rid of IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead.
2016-11-08 15:22:46 -08:00
Bill McCloskey
ce9b0838cc Bug 792652 - Move FatalError to IProtocol (r=dvander)
This patch moves FatalError to IProtocol. I had to make a few changes.
- I added a ProtocolName() method to find the name of the protocol.
- I gave the two-argument version of FatalError its own name. Otherwise
  C++ doesn't like there to be two virtual methods with the same name
  in cases where one is overridden and the other isn't (as happens
  in IToplevelProtocol).
2016-11-08 15:22:45 -08:00
Bill McCloskey
2ae61c69e3 Bug 792652 - Add mSide to IProtocol (r=dvander)
This patch adds a field to hold ParentSide/ChildSide state. Useful for
later changes.
2016-11-08 15:22:43 -08:00
Bill McCloskey
d35cfa10db Bug 792652 - Stop generating some simple sub-protocol methods (r=dvander)
This moves some of the generated methods in subprotocols that simply defer
to the parent protocol to IProtocol. These methods are still overridden in
the toplevel protocol.
2016-11-08 15:22:39 -08:00
Bill McCloskey
f4301a8121 Bug 792652 - Simplify IPDL type hierarchy (r=dvander)
Currently all our protocols inherit from IProtocolManager<IProtocol>. I have
no idea why. This patch switches everything over to IProtocol, without any
templates. I had to move ReadActor to the .cpp file to avoid redefinition
errors.
2016-11-08 15:22:34 -08:00
Bill McCloskey
e1fff6f752 Bug 792652 - Get rid of CloneProtocol (r=dvander)
CloneProtocol is leftover code from Nuwa. We can remove it now.
2016-11-08 15:22:33 -08:00
Wes Kocher
9ae70893b6 Backed out 18 changesets (bug 792652) for build bustage on linux64 a=backout CLOSED TREE
Backed out changeset 90eaf6aec002 (bug 792652)
Backed out changeset ddd915ab4a48 (bug 792652)
Backed out changeset 95eff6c45cae (bug 792652)
Backed out changeset 75855b5a9ab9 (bug 792652)
Backed out changeset b658ebaad5d7 (bug 792652)
Backed out changeset 2ba36b8ac60c (bug 792652)
Backed out changeset 94fcd3bf3f34 (bug 792652)
Backed out changeset cf9c4164eb43 (bug 792652)
Backed out changeset 59e6d0a4f35b (bug 792652)
Backed out changeset bdf86b8b9c43 (bug 792652)
Backed out changeset 8edf4b247250 (bug 792652)
Backed out changeset 63a3c8e4016e (bug 792652)
Backed out changeset e3e496eab991 (bug 792652)
Backed out changeset 5a1e3136323a (bug 792652)
Backed out changeset dbbe3a8c00e7 (bug 792652)
Backed out changeset 1829d5358808 (bug 792652)
Backed out changeset 004cd692ba6d (bug 792652)
Backed out changeset 92e7fee81fa2 (bug 792652)
2016-11-08 12:05:28 -08:00
Bill McCloskey
638e680ff4 Bug 792652 - Move over toplevel shmem code (r=dvander) 2016-11-08 11:32:34 -08:00
Bill McCloskey
493bafe0c7 Bug 792652 - Move toplevel actor map to IToplevelProtocol (r=dvander) 2016-11-08 11:32:34 -08:00
Bill McCloskey
4f7dc70222 Bug 792652 - Move TakeMinidump to IToplevelProtocol (r=dvander) 2016-11-08 11:32:33 -08:00
Bill McCloskey
237e272eb2 Bug 792652 - Move some channel methods to IToplevelProtocol (r=dvander)
Move Open, Close, SetReplyTimeoutMs to IToplevelProtocol.
2016-11-08 11:32:32 -08:00
Bill McCloskey
44f8a78005 Bug 792652 - Move over toplevel process ID field (r=dvander)
Moves some state to IToplevelProtocol.
2016-11-08 11:32:32 -08:00
Bill McCloskey
6c4feb9e44 Bug 792652 - Remove pointless OnFoo methods (r=dvander)
A bunch of these methods just delegate from OnFoo to Foo. Not
sure why we have OnFoo.
2016-11-08 11:32:31 -08:00
Bill McCloskey
1954722e31 Bug 792652 - Move shmem methods to ProtocolUtils (r=dvander)
This patch moves some shmem management code into IProtocol. Someday
maybe we can get rid of IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead.
2016-11-08 11:32:31 -08:00
Bill McCloskey
cb1c1ac732 Bug 792652 - Move FatalError to IProtocol (r=dvander)
This patch moves FatalError to IProtocol. I had to make a few changes.
- I added a ProtocolName() method to find the name of the protocol.
- I gave the two-argument version of FatalError its own name. Otherwise
  C++ doesn't like there to be two virtual methods with the same name
  in cases where one is overridden and the other isn't (as happens
  in IToplevelProtocol).
2016-11-08 11:32:30 -08:00
Bill McCloskey
0b64dccd90 Bug 792652 - Add mSide to IProtocol (r=dvander)
This patch adds a field to hold ParentSide/ChildSide state. Useful for
later changes.
2016-11-08 11:32:30 -08:00
Bill McCloskey
ea0ae3f3c5 Bug 792652 - Stop generating some simple sub-protocol methods (r=dvander)
This moves some of the generated methods in subprotocols that simply defer
to the parent protocol to IProtocol. These methods are still overridden in
the toplevel protocol.
2016-11-08 11:32:27 -08:00
Bill McCloskey
bddad17826 Bug 792652 - Simplify IPDL type hierarchy (r=dvander)
Currently all our protocols inherit from IProtocolManager<IProtocol>. I have
no idea why. This patch switches everything over to IProtocol, without any
templates. I had to move ReadActor to the .cpp file to avoid redefinition
errors.
2016-11-08 11:32:24 -08:00
Bill McCloskey
2607ce3012 Bug 792652 - Get rid of CloneProtocol (r=dvander)
CloneProtocol is leftover code from Nuwa. We can remove it now.
2016-11-08 11:32:23 -08:00
Kan-Ru Chen
f8d9106f36 Bug 1309799 - Generate StringFromIPCMessageType and use it in MessageChannel::MaybeHandleError. r=billm
MozReview-Commit-ID: HSuAAM0JdjS
2016-10-13 14:18:45 +08:00
David Anderson
7081d6e933 Add a PCrashReporter alternative that uses shmem instead of IPDL. (bug 1278717 part 1, r=billm) 2016-10-11 14:25:17 -07:00
Bill McCloskey
efff0482ee Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
Bill McCloskey
71303baeea Revert "Bug 1306708 - Rename prio to nested in IPDL (r=dvander)" on a CLOSED TREE
This reverts commit b1460c626078afbb9290e7d9ecaf3af605d5e893.
2016-10-04 15:55:19 -07:00
Bill McCloskey
308f9f039b Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 15:28:14 -07:00
Nathan Froyd
376097fd2d Bug 1299594 - part 3 - remove gProtocolMutex; r=billm
It no longer protects any global state, and is therefore pure overhead.
2016-09-02 16:13:50 -04:00
Nathan Froyd
69eb371b3e Bug 1299594 - part 2 - remove opened actor tracking from IToplevelProtocol; r=billm
The only thing we needed opened actor tracking for was the ability to
clone all the actors.  But now that we no longer have support for
cloning actors, we no longer need to track the actors that we've cloned,
which makes a number of things significantly simpler.
2016-09-02 16:13:50 -04:00
Nathan Froyd
5e666924f7 Bug 1299594 - part 1 - remove CloneManagees/CloneToplevel code from IPDL; r=billm
CloneOpenedToplevels, which is never called, is the only interesting
caller of CloneToplevel.  And CloneToplevel, in turn, is the only
interesting caller of CloneManagees.  Which means we can ditch all this
code for a decent amount of space savings, both in code and writable
static data (no more useless virtual function entries in vtables).
2016-09-02 16:13:50 -04:00
Nathan Froyd
41dc439596 Bug 1297801 - part 1 - commonize the managee->array functions in IPDL generated code; r=billm
There's no reason to generate identical code for every kind of managed
protocol; we can have a single instance that operates on void* and cast
our way to victory.  This change saves ~60K of text on x86-64 Linux.
2016-08-29 20:41:22 -04:00
David Anderson
26c87309b0 Add crash-report instrumentation to diagnose bug 1293580. r=billm 2016-08-22 22:52:04 -07:00
Cervantes Yu
34117e5c58 Bug 1295544 - Typo fix of MOZ_CRASHREPORTER build config. r=krizsa
MozReview-Commit-ID: 73DSJTef14E
2016-08-16 19:32:30 +08:00
Kyle Huey
a14a729d99 Bug 1274431: Fix some non-unified build issues. r=jld 2016-08-05 12:00:19 -07:00
Cervantes Yu
d90272221a Bug 1266440 - Remove diagnostic funciton mozilla::ipc::AnnotateProcessInformation() that contains PII. r=krizsa
MozReview-Commit-ID: AJyNT68zJlF
2016-08-01 18:41:09 +08:00
David Anderson
ad7d54327f Clean up Transport memory management in IPDL. (bug 1283744, r=billm) 2016-07-06 18:51:20 -07:00
Jonathan Watt
9c5b8de022 Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Andrew McCreight
0514236009 Bug 1276318, part 2 - Fix mode lines in ipc/glue. r=billm
MessageChannel.{h,cpp}, MessageLink.{h,cpp}, and ProtocolUtils.h are
using 4-space indent so I left those alone.
2016-05-27 14:54:31 -07:00
Bill McCloskey
85799ac803 Bug 1262671 - void** -> PickleIterator (r=froydnj) 2016-05-27 09:57:38 -07:00
Nathan Froyd
fb4b52fae7 Bug 1262937 - part 8 - factor out array length deserialization errors; r=jld 2016-05-21 04:07:56 -04:00
Nathan Froyd
28adf3a695 Bug 1262937 - part 7 - factor out union type deserialization errors; r=jld 2016-05-21 04:07:56 -04:00
Nathan Froyd
32b0d9cf03 Bug 1262937 - part 5 - factor out actor reading code to a common base class; r=jld
Actor reading from IPC message is codegen'd with a lot of repeated code.
We can improve that by moving the core actor reading code out of
subclasses into IProtocolmanager.  While we still need to codegen a bit
of code to cast the read actor to the proper type, the code overall is
smaller.  The lone downside is that if we do encounter an error reading
the actor id out of the message, the precision of our crash messages is
reduced somewhat: we no longer have the protocol name doing the reading,
nor do we get crash report annotations, since we can't tell whether
we're in the parent or child process.
2016-05-21 04:07:56 -04:00
Cervantes Yu
3651671c5a Bug 1258317 - Part 2: Remove unused privilege in mozilla::ipc::TransferHandleTorProcess(). r=krizsa
Also fix a handle leak in mozilla::ipc::AnnotateProcessInformation().

MozReview-Commit-ID: DuepDytfoD2
2016-05-06 19:01:29 +08:00
Jacek Caban
516196e9fb Bug 1258317 - cross compilation fixup. 2016-04-23 13:04:59 +02:00
Cervantes Yu
b5470f3f67 Bug 1258317 - Part 1: Annotate the crash report with process information on failure to transfer an IPC transport to another process. r=krizsa
MozReview-Commit-ID: LE2FnrQgzze
2016-04-19 19:08:55 +08:00
Nathan Froyd
a532bafa67 Bug 1262463 - part 3 - out-of-line NS_RUNTIMEABORT calls in IPDL-generated code; r=jld
We do this for the same reasons outlined in part 1: calls to
NS_RUNTIMEABORT are rather large and we generate a lot of them (~1000
left after part 1).  This patch reduces .text size by ~20K on x86-64
Linux.
2016-04-06 10:53:06 -04:00
Nathan Froyd
7b4e3f49e0 Bug 1262463 - part 2 - don't pass the other process pid into FatalError; r=jld
We don't do anything with it in terms of error reporting, we pass in 0
in the child process, and if you're in a debugger, presumably you can
figure out the other process's PID yourself.
2016-04-06 10:31:21 -04:00
Nathan Froyd
05fdd363cb Bug 1259428 - part 1 - don't call Log methods of generated method classes; r=jld
The first step to eliminating all the generated Message subclasses the
IPDL compiler spits out is to move the functionality of their Log
methods someplace else.  In addition to eliminating the need for the Log
methods, this change has the welcome effect of moving a bunch of code
that would be generated hundreds of times into a single place, which
should reduce code size a bit (debug builds only).  We don't actually
remove the generation of the Log methods; that change will be done for a
future patch.
2016-03-25 17:02:38 -04:00
Cervantes Yu
2f0afa5dd9 Bug 1258663 - Crash annotate system call failures in the IPC transport. r=gabor 2016-04-01 14:33:52 +08:00