Commit Graph

634 Commits

Author SHA1 Message Date
Bill McCloskey
c09a3298a5 Bug 1248750 - Eliminate intentional IPC crashes (r=dvander) 2016-03-06 14:38:07 -08:00
Bill McCloskey
85f6f24bff Back out bug 1248750 on a CLOSED TREE 2016-03-04 16:04:41 -08:00
Bill McCloskey
35c2982ddf Bug 1248750 - Eliminate intentional IPC crashes (r=dvander) 2016-03-04 14:51:08 -08:00
Bill McCloskey
d69b7b2ee8 Bug 1240985 - IPC fuzzer (r=gabor) 2016-03-04 14:51:08 -08:00
Lee Salzman
e26c137a89 Bug 1245241 - part 3 - remove unused AdoptShmem from IPDL. r=billm 2016-02-18 10:56:15 -05:00
Lee Salzman
f60663a2ce Bug 1245241 - part 2 - remove TYPE_SYSV Shmems from IPDL. r=billm 2016-02-18 10:56:15 -05:00
Bill McCloskey
c566d4123c Bug 1210099 - Use diagnostic assert for union discriminator checks (r=jld) 2016-02-04 22:30:06 -08:00
Nicolas Silva
8bd23218d3 Bug 1208226 - Don't crash when failing to map a segment of shared memory. r=sotaro, billm 2016-02-01 16:11:00 +01:00
Bill McCloskey
8916b1d998 Bug 1240871 - Don't allow implicit "async" in IPDL (r=mccr8,billm) 2016-01-28 20:56:37 -08:00
Nicholas Nethercote
508aa6646a Bug 1239864 (part 9) - Use the new rect iterators in layout/ and ipc/. r=dholbert. 2016-01-18 17:20:59 -08:00
Gregory Szorc
d582b3e09c Bug 1239207 - Don't process IPDL when not compiling; r=glandium
IPDL processing takes ~9.4s on my i7-6700K and is the long pole in the
"export" tier for clobber --disable-compile-environment builds. IPDL
shouldn't be needed for these builds.

Disabling IPDL makes artifact builds ~4s faster on my machine.
2016-01-14 23:11:12 -08:00
Nicholas Nethercote
84b71404df Bug 1237151 (part 3) - Remove ignored qualifiers in all remaining code. r=froydnj. 2016-01-05 17:08:45 -08:00
Bill McCloskey
0c323643c3 Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
Randell Jesup
3da9775a07 Bug 1226200: Don't assume a TCPSocket has only one managee (and rename LoneManagedOrNull) r=jdm 2015-12-22 10:14:23 -05:00
Birunthan Mohanathas
94998cf5fe Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Aaron Klotz
ace4a6c398 Bug 1217250 - Fix some IPDL tests that were broken by bug 1212027; r=froydnj 2015-10-21 20:44:34 -04:00
Nathan Froyd
e4e2da55c9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
b739a8d30c Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
Nathan Froyd
62eb1c8109 Bug 1212027 - part 4 - use class interfaces when destroying managees; r=jld
Similar to the last patch, we copy any sub-protocols a protocol owns
before destroying the sub-protocols.  We do this to ensure a stable
iteration over the sub-protocols, as destroying a sub-protocol may
trigger other sub-protocol deletions.  Let's permit an existing
interface method to do the copying for us, so if the details of how we
store sub-protocols change, this call site is insulated from the
details.
2015-10-07 00:02:27 -04:00
Nathan Froyd
8424392b52 Bug 1212027 - part 3 - use class interfaces when cloning managees; r=jld
In $PROTOCOL::CloneManages, we reach directly into the other protocol's
sub-protocol arrays to copy them.  It would be better, from a
fewer-places-to-modify-when-things-change point of view if we used the
$PROTOCOL::Managed$SUBPROTOCOL array getter that already exists for this
purpose.  A good compiler should be able to remove the function call
overhead...but cloning managees is probably expensive anyway, so a
function call here doesn't matter much.

It's not immediately obvious to me why we clone and then iterate over
the clone, rather than iterating directly, but perhaps there are subtle
IPDL dragons lurking hereabouts.
2015-10-06 23:59:32 -04:00
Nathan Froyd
801db98dac Bug 1212027 - part 2 - add a C++ AST type for 'auto'; r=jld
This type will come in handy when we have to add iteration over
hashtables, since it would be a pain to write out the iterator type.
2015-10-06 21:33:13 -04:00
Nathan Froyd
315db35974 Bug 1212027 - part 1 - rename ipdl lowering helpers to reflect intent, not function; r=jld
The functions:

- _callCxxArrayInsertSorted
- _callCxxArrayRemoveSorted
- _callCxxArrayClear
- _cxxArrayHasElementSorted

are only ever used to touch the managed sub-protocol arrays of a
protocol.  It would be better if they reflected the *intent* of what
they were doing, rather than what C++ function they were calling, since
we're about to change that.
2015-10-06 21:20:07 -04:00
George Wright
5c74928ed3 Bug 1207921 - Call makeReply before dtorEpilogue so that we don't end up with a nullptr deref r=billm 2015-09-28 09:17:05 -04:00
Chris Peterson
dd2fcb9b7d Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
Andrea Marchesini
edb0027da6 Bug 1203426 - Rename StructuredCloneIPCHelper to StructuredCloneData, r=smaug 2015-09-10 21:50:58 +01:00
Jed Davis
6f5e519853 Bug 1201329 - Use AlignedStorage2 instead of char[] for IPDL union members. r=billm
In addition to fixing the alignment, this helps our static analysis
reason about them; see bug for more info.
2015-09-03 21:56:59 -07:00
Nicholas Nethercote
69d088e45f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Bobby Holley
59c4d9cf6c Bug 1188696 - Hoist nsRefPtr.h into MFBT. r=froydnj 2015-07-29 10:44:59 -07:00
David Anderson
6a1a144862 Add default initializers for primitive fields in IPDL structs. (bug 1154522, r=billm) 2015-07-28 00:02:10 -07:00
Jeff Muizelaar
d692ad7be8 Bug 1186025. Optimize the usage of regions. r=mstange
This eliminates a bad idiom in some places.
2015-07-21 10:54:44 -04:00
Bill McCloskey
d2d832286f Bug 1128454 - Fix IPDL test (r=jimm) 2015-07-15 14:30:05 -07:00
Jim Mathies
f7fdc6ece7 Bug 1128454 - Add crash report annotations for plugin bridge operation failures. r=billm 2015-07-09 19:07:49 -05:00
Aaron Klotz
507071473d Bug 1170231: Part 2 - Regression test for IPC race mediation deadlock; r=dvander 2015-06-07 22:08:56 -06:00
Bill McCloskey
440fabe306 Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
Bill McCloskey
bb04cd7f51 Bug 1177013 - CancelCurrentTransaction IPC support (r=dvander) 2015-07-06 19:58:44 -07:00
Phil Ringnalda
cae35eaf19 Back out 12 changesets (bug 1177013) on suspicion of causing b2g emulator debug test bustage
CLOSED TREE

Backed out changeset 912aae0815f8 (bug 1177013)
Backed out changeset 3b6448172e50 (bug 1177013)
Backed out changeset 2af18bef5703 (bug 1177013)
Backed out changeset e6bf35115c11 (bug 1177013)
Backed out changeset 4d7f5205b60b (bug 1177013)
Backed out changeset f7de893911bc (bug 1177013)
Backed out changeset de79eba232f0 (bug 1177013)
Backed out changeset 978a77b60f2a (bug 1177013)
Backed out changeset f5b52fa19511 (bug 1177013)
Backed out changeset e14a7b70b6fa (bug 1177013)
Backed out changeset d0f5a3474659 (bug 1177013)
Backed out changeset bff9f07dad52 (bug 1177013)
2015-07-02 22:08:54 -07:00
Bill McCloskey
be3e54cc18 Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-02 17:18:11 -07:00
Bill McCloskey
08eb62bc83 Bug 1177013 - CancelCurrentTransaction IPC support (r=dvander) 2015-07-02 17:18:10 -07:00
Botond Ballo
0eda66866d Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
Andrew McCreight
6655660de7 Bug 1169382 - Don't generate commented out NS_INTERFACE_CLASS or NS_ABSTRACT_CLASS in IPDL. r=billm 2015-06-06 14:37:59 -07:00
Mike Hommey
e3f13a0ddb Bug 991983 - Use objdir-relative SOURCES instead of GENERATED_SOURCES. r=gps 2015-05-28 07:34:16 +09:00
Phil Ringnalda
642204bc61 Back out 7842a044a183 (bug 1167431) for widespread bustage
CLOSED TREE
2015-05-22 18:53:41 -07:00
Ben Turner
9fdd41fd60 Bug 1167431 - 'Properly clean up actors whose RecvFooConstructor method returns false', r=billm. 2015-05-22 16:10:02 -07:00
Birunthan Mohanathas
63dbcb194c Bug 968520 - Add mozilla::fallible to Fallible{Auto,}TArray::SetLength calls. r=froydnj 2015-05-18 13:50:35 -07:00
Blake Kaplan
869a3c68b9 Bug 1155494 - Add a 'compressall' message flag. f=handyman r=billm (parts of this patch were written by handyman with r=billm) 2015-05-05 16:20:42 -07:00
Nathan Froyd
37f53aa9ed Bug 1158905 - remove dead code from protocol Transition functions; r=bent
PFoo::Transition currently looks something like:

bool
Transition(
        State from,
        mozilla::ipc::Trigger trigger,
        State* next)
{
    switch (from) {
    ...
    default:
        NS_RUNTIMEABORT("corrupted actor state");
        return false;
    }
    (*(next)) = __Error;
    return false;
}

Coverity complains that the assignment (*(next)) = __Error will never be
reached, and rightfully so.  We can remove this fallthrough block when
there are no states declared in the individual protocol.
2015-04-27 13:29:37 -04:00
Nathan Froyd
79a4c75f5a Bug 1158896 - prevent dead code from being generated in lower.py; r=bent
Coverity was complaining that we have things like:

    if ((!(actor))) {
        return false;
    }

    if ((!(actor))) {
        return false;
    }

in the generated code, as the second return will clearly never be hit.  To
address this, let's remove a redundant call to dtorPrologue.
2015-04-27 13:08:12 -04:00
Jim Blandy
b818a4adbe Bug 1145051: Use MOZ_WARN_UNUSED_RESULT instead of NS_WARN_UNUSED_RESULT. r=glandium 2015-03-19 00:46:40 -07:00
Bill McCloskey
5e2fa02573 Bug 1128457 - Change handling of urgent messages during timeout (r=dvander) 2015-04-13 18:11:49 -07:00
Ben Turner
fe285135e7 Bug 1135344 - Don't let IPDL use names that are reserved for compilers, r=froydnj. 2015-04-09 11:35:18 -07:00