Commit Graph

608 Commits

Author SHA1 Message Date
Nathan Froyd
357e2a0e8c Bug 1096487 - part 1 - make ipdl message constructors set their priority directly; r=bent
The default constructor for ipdl-generated messages looks like:

    MOZ_IMPLICIT Msg_AsyncMessage() :
        IPC::Message(MSG_ROUTING_NONE, ID, IPC::Message::PRIORITY_NORMAL, COMPRESSION_NONE, "PContent::Msg_AsyncMessage")
    {
    }

IPC::Message::PRIORITY_NORMAL is 1, so any set_priority(1) calls are
just redudant.

Additionally, the priorities for messages are known at code generation
time, so we are always able to provide the right constants to the
message constructor, rather than using set_priority calls later.
2014-11-10 12:32:15 -05:00
Nathan Froyd
d676b698ca Bug 1096501 - include nsRefPtr.h instead of nsAutoPtr.h in ipdl generated files; r=bent 2014-11-10 14:18:09 -05:00
Akshendra Pratap Singh
938aa11999 Bug 1074211: Output a warning message when a IPDL constructor returns a null value; r=bent 2014-10-15 15:30:00 -07:00
Mike Hommey
47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Bill McCloskey
43b7a1a0c8 Bug 641685 - Make sure generated code for IPDL bridged includes all necessary forward decls (r=bsmedberg) 2014-10-29 08:04:51 -07:00
Bill McCloskey
2ab547d3ab Bug 1049879 - Remove urgent and rpc message types and replace with message priorities (r=dvander,bent,ehsan) 2014-10-07 21:32:45 -07:00
Carsten "Tomcat" Book
4985d0ee76 Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
Bill McCloskey
281cb8db91 Bug 1049879 - Remove urgent and rpc message types and replace with message priorities (r=dvander,bent,ehsan) 2014-10-07 21:32:45 -07:00
Mike Hommey
ed70c5f377 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
David Major
36c74581b8 Bug 1023941 - Part 5: Loader hook to redirect the missing import. r=bsmedberg
--HG--
extra : rebase_source : 7cf2e857f51dcfcc95bb806d49ef13b794f5ba5b
2014-08-28 14:53:38 +12:00
Bill McCloskey
4cedc603cb Bug 1050604 - Get IPDL tests passing again (r=bent) 2014-08-20 12:49:11 -07:00
Bill McCloskey
be42be0ea4 Bug 1051128 - Allow filtering the IPC log by toplevel protocol name (r=bent) 2014-08-20 12:49:11 -07:00
Andrew McCreight
4790cd3937 Bug 1024795, part 4 - Use a default value for initializing unions, except for nsTArray. r=bent
This restores the initialization behavior prior to bug 819791, except for the one case that bug requires.
2014-08-13 11:36:15 -07:00
Andrew McCreight
7805ea0edf Bug 1024795, part 3 - Generate nsTArray instead of InfallibleTArray in lower.py. r=bent 2014-08-13 11:36:15 -07:00
Andrew McCreight
8c72cba1bb Bug 1024795, part 2 - static_cast isn't needed for nullptr in IPDL codegen. r=bent
Since bug 1038523, lower.py generates nullptr for NULL, so this cast isn't needed.
2014-08-13 11:36:14 -07:00
Andrew McCreight
b341e821c2 Bug 1024795, part 1 - Remove trailing whitespace from lower.py. r=bent 2014-08-13 11:36:14 -07:00
Andrew McCreight
46562a3c3a Bug 1047717 - Don't generate trailing whitespace for IPDL CppDirective's with no |rest|. r=bent 2014-08-06 11:12:00 -04:00
Mike Hommey
89777800f9 Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00
Nathan Froyd
12c76f15f7 Bug 1042878 - part 2 - move MOZ_CAIRO_CFLAGS et al additions to C*FLAGS into moz.build; r=glandium 2014-07-24 11:55:33 -04:00
Mike Hommey
5f6ba110e6 Bug 1043802 - Remove TOOLS_DIRS and TEST_TOOLS_DIRS. r=gps 2014-07-29 08:55:55 +09:00
Ehsan Akhgari
1266d7384c Bug 1045041 - Mark non-explicit classes created by IPDL to be MOZ_IMPLICIT; r=froydnj 2014-07-28 10:57:17 -04:00
Andrew McCreight
c95e487200 Bug 1038966, part 3 - Shmem should use refcounted pointer classes when creating SharedMemory. r=bent 2014-07-25 16:41:25 -07:00
Andrew McCreight
018402f71c Bug 1038966, part 2 - Rename autoptr methods to refptr in lower.py. r=bent
Rename these before changing the definition to reduce the noise in the next patch.
2014-07-25 16:41:25 -07:00
Andrew McCreight
87758937e7 Bug 1038966, part 1 - AllocShmem and AllocUnsafeShmem do not need to use nsAutoPtr. r=bent
Also clean up the generated code a bit.
2014-07-25 16:41:25 -07:00
Mike Hommey
7cab62150a Bug 1041936 part 2 - Directly use the static library "xul" to link into "xul-gtest" instead of having an intermediate library "xul" used by "xul-shared" and "xul-gtest". r=gps 2014-07-23 13:33:09 +09:00
Mike Hommey
95063176fa Bug 1036894 part 9 - Replace all EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS with EXTRA_LIBS, OS_LIBS or OS_LDFLAGS, appropriately. r=gps
OS_LIBS for libraries that are not part of the gecko tree, EXTRA_LIBS for
libraries, such as NSPR, that are in the tree, but are not handled by
moz.build just yet. Those EXTRA_LIBS may also come from a system library.
However, in cases where the expanded variables are always empty for the
in-tree case, OS_LIBS is used (as for, e.g. MOZ_ZLIB_LIBS). OS_LDFLAGS is
used exclusively for non-library linker flags.

Always pass EXTRA_LIBS before OS_LIBS on linker command lines.

Forbid EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS in Makefiles.
2014-07-23 13:31:02 +09:00
Mike Hommey
5fab42fcaf Bug 1036894 part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps 2014-07-23 13:30:52 +09:00
Andrew McCreight
34feea774d Bug 1038523 - Make IPDL generate nullptr for ExprLiteral.NULL. r=bent 2014-07-15 12:46:52 -07:00
Chris Lord
5c57498fbc Bug 1012639 - Fix OtherProcess sometimes being the current process handle. r=bent 2014-06-11 14:51:12 +01:00
"Kan-Ru Chen (陳侃如)"
9ed870c153 Bug 879475 - Part 005. Implement ContentBridge r=jlebar
Based on original patch by David Zbarsky <dzbarsky@gmail.com>
2014-06-11 13:44:13 +08:00
Victor Porof
9ce7e9c089 Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Josh Aas
8201d48ae1 Bug 1014384: Fix 'IPDL code generator generates implementation stubs for pure virtual methods'. r=bent 2014-05-29 00:45:36 -05:00
Chris Peterson
17896eb5d7 Bug 990764 - Replace MOZ_ASSUME_UNREACHABLE in ipdl. r=bsmedberg 2014-04-27 18:56:03 -07:00
Ben Turner
04d9f7cc95 Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
Josh Aas
2e276ecf5f Bug 1004196: Make all IPDL argument names be of form "aFoo" instead of "foo”. r=bent 2014-05-05 17:00:55 -05:00
Josh Aas
d9aa92298d Bug 960774: Make ActorDestroy pure virtual on the parent side, require implementation. r=bent 2014-05-02 14:49:02 -05:00
Bill McCloskey
7b13759de7 Bug 986317 - Stop exposing urgent semantics in IPDL files (r=bent) 2014-04-03 13:29:11 -07:00
Benoit Jacob
c2a3a79571 Bug 968244 - Make IPDL-generated code not crash on bad shmems - r=bent 2014-02-25 08:57:10 -05:00
Benoit Jacob
4a8e65915b Bug 974356 - 1/4 - Initialize mOtherProcess to an invalid handle value - r=bent 2014-02-25 08:12:49 -05:00
Ehsan Akhgari
39fc9361f6 Bug 975740 - Port WIN32_EXE_LDFLAGS to moz.build; r=mshal 2014-02-24 08:30:25 -05:00
Ehsan Akhgari
9e38fc2acd Bug 973393 - Move the LOCAL_INCLUDES in ipc to moz.build; r=glandium 2014-02-18 02:12:54 -05:00
Ms2ger
33da18c67e Bug 968856 - Move unconditional LOCAL_INCLUDES into moz.build; r=mshal 2014-02-15 21:24:59 +01:00
Ehsan Akhgari
3fa869d1f3 Bug 967167 - Use fallible memory allocation when reading IPDL array types to make sure that we don't OOM for very large arrays; r=bent 2014-02-06 08:35:28 -05:00
Nathan Froyd
8d6641d961 Bug 967297 - consider ipdl modules as inputs to the ipdl build process; r=glandium 2014-02-06 00:21:46 -05:00
Ted Clancy
c895425120 Bug 962344 - Log messages in IPDL should contain from/to information; Log message should go to logcat on Gonk devices. r=bent 2014-02-03 14:11:50 +01:00
Bill McCloskey
40ff701ba0 Bug 910962 - Make DeallocShmem not assert when child has crashed (r=bsmedberg) 2014-01-31 10:43:44 -08:00
Nathan Froyd
de72954248 Bug 952941 - delete no-longer-used includedActorUsings field; r=ehsan 2013-09-27 17:15:02 -04:00
Cervantes Yu
38d6789b0d Bug 938470 - Part 2: IPC actor should clone actors created on the parent side for the Nuwa process. r=bent 2013-12-05 20:10:04 +08:00
Ben Turner
9de016148a Bug 947575 - Fix IPDL unit tests on windows, r=bsmedberg.
--HG--
extra : transplant_source : %04B6%5C%3A%ED3E%06o%90%1Bx%60%96b.%0F%27P
2013-11-21 16:51:26 -08:00
David Anderson
bc3a485edc Remove bogus assert in RPC calls (bug 937216, r=cjones). 2013-12-05 15:06:29 -08:00
Mike Hommey
62a0ecdaf3 Bug 942031 - Don't link against the js engine when there's no need to. r=mshal 2013-11-24 08:18:50 +09:00
Nathan Froyd
155da715db Bug 939109 - remove stray debugging statement; r=ehsan 2013-11-15 10:15:53 -05:00
Mike Hommey
2812d11fce Bug 939632 - Remove LIBRARY_NAME for leaf libraries. r=gps
Landing on a CLOSED TREE.
2013-11-19 11:50:54 +09:00
Mike Hommey
e06d795c71 Bug 939074 - Remove most LIBXUL_LIBRARY. rs=gps 2013-11-19 11:48:10 +09:00
Mike Hommey
e80e877ab7 Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
Mike Hommey
ffe0380912 Bug 935881 - Use FINAL_LIBRARY for all (fake) libraries that end up linked in a single other library. r=gps 2013-11-19 11:47:14 +09:00
Nathan Froyd
0778377b21 Bug 918651 - part 10 - remove the |USING CxxType| rule from the IPDL grammar; r=ehsan 2013-10-18 15:04:07 -04:00
Nathan Froyd
ec839c62b4 Bug 918651 - part 8 - remove redundant includes from IPDL files; r=ehsan
These include statements have been made redundant by all the qualifications
to the using statements.
2013-10-18 13:34:08 -04:00
Nathan Froyd
f478d39678 Bug 918651 - part 7 - place includes intelligently in generated IPDL files; r=bent
This is where the magic starts to happen.  We move includes from the base
protocol header (${NAME}.h) to the parent and child headers (${NAME}Parent.h
and ${NAME}Child.h) to follow good include hygiene.

For the base protocol header, we examine the set of types used by struct and
union definitions to determine which headers we need to include.

For parent and child headers, we forward declare what we can and include
appropriate headers otherwise.  For forward-declared types, we include the
appropriate headers in the parent and child source files.
2013-10-01 12:55:42 -04:00
Nathan Froyd
e5d5df0e6c Bug 918651 - part 6 - add unqualifiedTypedefs parameter to _ComputeTypeDeps; r=ehsan
When computing what set of includes a header file needs, we need to know
about all types that protocol-defined types use, not just qualified
ones: both global-scope names and same-namespace-as-protocol names are
valid to use without any sort of qualification.  This flag would normally
not be used in generating actual C++ code and therefore defaults to False.
2013-10-18 12:08:10 -04:00
Nathan Froyd
ebcc1e1abf Bug 918651 - part 5 - qualify all IPDL using statements with required header; r=ehsan 2013-10-01 15:25:07 -04:00
Nathan Froyd
f4c2384809 Bug 918651 - part 4 - add keyword arguments to _makeForwardDeclForQClass; r=ehsan
We're going to need these later when we hand-roll our own forward declarations
for classes and structs.
2013-10-01 12:02:57 -04:00
Nathan Froyd
f177ad89af Bug 918651 - part 3 - add optional |from header| qualification to using statements in ipdl; r=bent 2013-09-23 21:20:18 -04:00
Nathan Froyd
0726779150 Bug 918651 - part 2 - don't munge the translation unit's headers; r=ehsan
Keep the builtin headers separate from the translation unit's headers.
We do this so when we start twiddling with the translation unit's headers,
we don't have to handle cases where those headers are actually builtin
headers.
2013-10-01 11:42:50 -04:00
Nathan Froyd
c41a24510b Bug 918651 - part 1 - remove unnecessary using statements from IPDL files; r=ehsan 2013-10-18 14:48:13 -04:00
Mike Hommey
4a02ac1e8a Bug 864774 part 3 - Move some more CPPSRCS to moz.build. r=mshal 2013-10-30 07:51:03 +09:00
Mike Hommey
2eefafb740 Bug 930896 - Keep track of files generated by a build backend. r=gps 2013-10-29 08:00:30 +09:00
Mike Hommey
91d475fc4c Bug 930350 - Fix --enable-ipdl-tests build. r=gps. DONTBUILD because NPOTB 2013-10-25 08:39:45 +09:00
Mike Hommey
b000a846c2 Bug 929905 - Consolidate sources in moz.build. r=gps 2013-10-25 08:23:05 +09:00
Brian O'Keefe
9c9d71fddb Bug 928709 - Convert chromium-config.mk to mozbuild, r=mshal 2013-10-02 13:17:55 -04:00
Mike Hommey
59a17d0f20 Bug 921492 - Make StrictOrderingOnAppendList use actual alphabetical sorting. r=mshal,r=gps 2013-10-24 08:05:43 +09:00
Daniel Holbert
2adafde9f1 Bug 925243: Mark ipc/ipdl as FAIL_ON_WARNINGS. r=ehsan 2013-10-10 13:44:13 -07:00
Cervantes Yu
0ff90ed38b Bug 922461: fix unused variable in CloneManagees() of actors that doesn't manage other protocols. r=bent 2013-10-10 09:17:01 -07:00
Nathan Froyd
7cdd45a716 Bug 924410 - don't generate typedefs in Message subclasses; r=ehsan
There's no reason for them to be there, since Message subclasses are nothing
more than a constructor and a logging method.
2013-10-01 12:50:18 -04:00
Ms2ger
f4153f40d4 Bug 900980 - Part a: Move unconditional assignments to EXPORT_LIBRARY to moz.build; rs=gps 2013-10-03 09:11:13 +02:00
Nathan Froyd
53115a9178 Bug 921563 - part 2 - delete typedefs and using statements from global scope in IPDL C++ files; r=gps 2013-09-27 13:14:47 -04:00
Nathan Froyd
27eba83426 Bug 921563 - part 1 - declare return types in IPDL C++ with C++0x late return syntax; r=gps
Every IPDL C++ class contains a bunch of typedefs.

Every IPDL C++ source file contains a bunch of typedefs and using statements
for the exact same types.

Why is that?

Because the class itself is not in scope for name lookup of return types of C++
methods.  This limitation is annoying, but it makes sense.  The typedefs and
using statements therefore exist so we can be a little sloppy about return
types.

Let's stop being sloppy and polluting the global namespace inside these
files.  Less pollution makes it easier to smash the IPDL files together for
unified compilation.  One could do this by qualifying all necessary return
types...or we could just use the C++0x late return syntax, which guarantees the
class *is* in scope for name lookup.  I like this version a lot better.
2013-09-27 13:50:20 -04:00
David Anderson
47ae6f0cc8 Introduce new RPC messaging semantics (bug 910493 part 1, r=cjones). 2013-10-01 09:15:03 -07:00
David Anderson
437f6053a9 Rename IPDL's RPC to Interrupt (bug 910020, r=bent).
--HG--
rename : ipc/ipdl/test/cxx/PTestRPCErrorCleanup.ipdl => ipc/ipdl/test/cxx/PTestInterruptErrorCleanup.ipdl
rename : ipc/ipdl/test/cxx/PTestRPCRaces.ipdl => ipc/ipdl/test/cxx/PTestInterruptRaces.ipdl
rename : ipc/ipdl/test/cxx/PTestRPCShutdownRace.ipdl => ipc/ipdl/test/cxx/PTestInterruptShutdownRace.ipdl
rename : ipc/ipdl/test/cxx/PTestRacyRPCReplies.ipdl => ipc/ipdl/test/cxx/PTestRacyInterruptReplies.ipdl
rename : ipc/ipdl/test/cxx/TestRPCErrorCleanup.cpp => ipc/ipdl/test/cxx/TestInterruptErrorCleanup.cpp
rename : ipc/ipdl/test/cxx/TestRPCErrorCleanup.h => ipc/ipdl/test/cxx/TestInterruptErrorCleanup.h
rename : ipc/ipdl/test/cxx/TestRPCRaces.cpp => ipc/ipdl/test/cxx/TestInterruptRaces.cpp
rename : ipc/ipdl/test/cxx/TestRPCRaces.h => ipc/ipdl/test/cxx/TestInterruptRaces.h
rename : ipc/ipdl/test/cxx/TestRPCShutdownRace.cpp => ipc/ipdl/test/cxx/TestInterruptShutdownRace.cpp
rename : ipc/ipdl/test/cxx/TestRPCShutdownRace.h => ipc/ipdl/test/cxx/TestInterruptShutdownRace.h
rename : ipc/ipdl/test/cxx/TestRacyRPCReplies.cpp => ipc/ipdl/test/cxx/TestRacyInterruptReplies.cpp
rename : ipc/ipdl/test/cxx/TestRacyRPCReplies.h => ipc/ipdl/test/cxx/TestRacyInterruptReplies.h
rename : ipc/ipdl/test/ipdl/error/rpcMessageCompress.ipdl => ipc/ipdl/test/ipdl/error/intrMessageCompress.ipdl
rename : ipc/ipdl/test/ipdl/error/tooWeakRPCAsync.ipdl => ipc/ipdl/test/ipdl/error/tooWeakInterruptAsync.ipdl
rename : ipc/ipdl/test/ipdl/ok/rpcProtocol.ipdl => ipc/ipdl/test/ipdl/ok/intrProtocol.ipdl
2013-09-30 17:27:45 -07:00
Cervantes Yu
0a6a25b7c4 Bug 771765 - Support template content process, part 9: allocating a toplevel protocol should return itself. r=dzbarsky
Reverse the effect in bug 879475 part 14 since we need to keep track of open protocols in the Nuwa process.
2013-09-26 12:19:09 +08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
42fe4d9b7d Bug 771765 - Support template content process, part 3: IPC glue and IPDL codegen to support protocol cloning. r=bent 2013-05-31 21:16:57 +08:00
David Anderson
fd2cf49aa1 Combine AsyncChannel, SyncChannel, and RPCChannel into one class (bug 901789, r=cjones,bent).
--HG--
rename : ipc/glue/RPCChannel.cpp => ipc/glue/MessageChannel.cpp
rename : ipc/glue/RPCChannel.h => ipc/glue/MessageChannel.h
2013-09-27 18:42:08 -07:00
Nathan Froyd
5ce2711c7a Bug 914826 - part 6 - don't include basictypes.h or nscore.h in ipdl headers; r=ehsan 2013-09-10 15:55:39 -04:00
Nathan Froyd
12fa756043 Bug 914826 - part 5 - provide for cpp-only include files, starting with nsIFile.h and GeckoProfiler.h; r=ehsan 2013-09-10 15:45:16 -04:00
Nathan Froyd
44d376b745 Bug 914826 - part 3 - forward-declare nsIFile for GetMinidump() declaration; r=ehsan 2013-09-10 15:35:51 -04:00
Nathan Froyd
a4908f9bf1 Bug 914826 - part 2 - rename builtinIncludes to builtinHeaderIncludes; r=ehsan 2013-09-10 15:34:44 -04:00
Nathan Froyd
515c39f6fa Bug 914826 - part 1 - use static_assert instead of COMPILE_ASSERT in IPCMessageStart.h; r=ehsan 2013-09-10 15:07:10 -04:00
Gregory Szorc
d03c8a0359 Bug 921070 - Remove precompile tier; r=glandium
It made sense at the time. We now have inverted tiers and will soon have
derecursified building. This doesn't make sense any more.
2013-09-26 16:05:10 -07:00
David Zbarsky
9eca84e4d8 Bug 879475: Allocing an actor for a bridged or opened protocol should return bool r=jlebar
Conflicts:
	dom/ipc/ContentChild.cpp
	dom/ipc/ContentChild.h
2013-09-23 17:54:25 -04:00
Mike Hommey
f8bc7fa754 Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
Brian O'Keefe
261614859f Bug 875934 - Move LIBRARY_NAME to moz.build, batch 4; r=mshal 2013-08-15 09:12:40 -04:00
Brian O'Keefe
d118b95a0d Bug 875934 - Move LIBRARY_NAME to moz.build, batch 3; r=mshal 2013-08-15 09:02:09 -04:00
David Anderson
16668a7bf4 Don't deadlock on a child process for a CPOW (bug 905896, r=cjones). 2013-08-26 21:56:57 -07:00
Birunthan Mohanathas
8923c06ee9 Bug 784739 - Switch from NULL to nullptr in ipc/. r=ehsan 2013-08-23 15:51:44 -04:00
Nathan Froyd
05b3cb417a Bug 908208 - part 3 - move guts of FatalError out-of-line to ProtocolUtils.cpp; r=bent 2013-08-22 10:39:32 -04:00
Nathan Froyd
5555ce97f3 Bug 908208 - part 2 - declare FatalError as MOZ_NEVER_INLINE rather than virtual; r=bent 2013-08-22 10:06:50 -04:00
Nathan Froyd
f4d8955973 Bug 908208 - part 1 - add support for MOZ_NEVER_INLINE to MethodDecl; r=bent 2013-08-22 10:06:21 -04:00
Ms2ger
1c4d224f0e Bug 883284 - Part d: Move LIBXUL_LIBRARY into moz.build (f-j); r=bsmedberg 2013-08-22 08:56:00 +02:00
David Zbarsky
9117aef526 Bug 879475 - Rename the MsgStart messages to MsgStartChild for child protocols r=jlebar 2013-08-20 15:46:41 -04:00
David Zbarsky
7ea8d07357 Bug 885653 - Add support for IPDL bridges that connect two of the same protocol r=jlebar 2013-08-20 15:46:41 -04:00