Commit Graph

1747 Commits

Author SHA1 Message Date
Nathan Froyd
7289391ff5 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
Eric Chou
d743b77e70 Bug 923369 - Return true when RawDBusConnection::SendWithError() executed without any error, r=tzimmerman, r=qdot 2013-10-05 14:35:00 +08:00
Ms2ger
ae8c899faf Merge m-c to inbound. 2013-10-03 11:09:17 +02:00
Ms2ger
df62fb8b0f Bug 900980 - Part a: Move unconditional assignments to EXPORT_LIBRARY to moz.build; rs=gps 2013-10-03 09:11:13 +02:00
Ms2ger
17e959d672 Bug 912099 - Part b: Make sure CPP_SOURCES only points to existing files in ipc/chromium; r=mshal 2013-10-03 09:10:00 +02:00
Ryan VanderMeulen
39c9f02fea Merge m-c to inbound. 2013-10-01 17:23:59 -04:00
Ed Morley
1bc08e0439 Merge mozilla-central and b2g-inbound 2013-10-01 12:00:25 +01:00
Thomas Zimmermann
b951e3bea6 Bug 919913: Introduce DBusReplyCallback, r=qdot,echou
DBusReplyCallback replaces the removed DBusCallback as type for
reply-handler functions. Bluetooth, the only user of DBus, has
been updated as well.
2013-10-01 10:20:55 +02:00
Thomas Zimmermann
b5e7a17af5 Bug 919913: Cleanup DBusUtils, r=qdot
This patch cleans up the DBus utilitys and helper classes. All functions
for sending have been removed. Their users have been converted to the
new methods in RawDBusConnection. Include statements have been cleaned
up as well. Some methods of DBusMessageRefPtr have been moved from the
header to the source file to prevent inclusion of the DBus API from within
the header file.
2013-10-01 10:20:39 +02:00
Thomas Zimmermann
59b461412b Bug 919913: Add send methods to RawDBusConnection, r=qdot
This patch adds methods for sending DBus messages to the class
RawDBusConnection. There are 3 types of interfaces.

 - Send             Sends a message over DBus. No error checking or
                    handling of replies is performed. These methods
                    do not block the sending thread.

 - SendWithReply    Sends a message over DBus and runs a call-back
                    function for the reply. This should be the default
                    case for most scenarios. These methods do not
                    block the sending thread.

 - SendWithError    Sends a message over DBus and waits for the reply
                    or an error. This interface has only been added for
                    some existing code that can safely block the sending
                    thread. Don't use it in new code.

These 3 types of interfaces represent what is currently used of the
existing send functions in DBusUtils. When all users have been converted
to the new methods, the interfaces in DBusUtils can be removed.
2013-10-01 10:20:21 +02:00
Mark Hammond
8385e334b6 Bug 920397 part 3 - Ensure PContentParent doesn't close process handles multiple times. r=bsmedberg 2013-10-01 10:56:16 +10:00
Mark Hammond
9a336633c1 Bug 920397 part 2 - MessageChannel::~MessageChannel() now asserts that closing the handle succeeded. r=bsmedberg 2013-10-01 10:56:16 +10:00
Mark Hammond
91247a80e1 Bug 920397 part 1 - base::CloseProcessHandle() checks result in debug builds and is used everywhere a process handle is closed. r=bsmedberg 2013-10-01 10:56:15 +10:00
David Anderson
9579f654ae 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
ec406ac440 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
Ryan VanderMeulen
2a773817b4 Merge m-c to inbound. 2013-09-30 16:51:06 -04:00
Benjamin Smedberg
13993a098f Bug 920695 part A - move xpcshell code into libxul and make the xpcshell binary just a stub, r=bholley
--HG--
rename : js/xpconnect/shell/xpcshell.cpp => js/xpconnect/src/XPCShellImpl.cpp
rename : js/xpconnect/shell/jsshell.msg => js/xpconnect/src/jsshell.msg
extra : rebase_source : 9a2ab7508e3cb7a6bfec6b1e98f49799221d1376
2013-09-30 16:09:28 -04:00
Vicamo Yang
23ddf2938b Bug 919982: B2G RIL - read Gonk property "ro.moz.ril.numclients" instead. r=hsinyi 2013-09-30 17:24:54 +08:00
Nathan Froyd
afbaf51de8 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
9126a16e06 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
9af725998a Introduce new RPC messaging semantics (bug 910493 part 1, r=cjones). 2013-10-01 09:15:03 -07:00
David Anderson
8cd94ee096 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
Ryan VanderMeulen
0cfa34ad65 Backed out 6 changesets (bug 913985) for suspicion of causing intermittent Android crashes on a CLOSED TREE.
Backed out changeset de21920d2b8e (bug 913985)
Backed out changeset f0f5497d65bb (bug 913985)
Backed out changeset 1e16ca4ad801 (bug 913985)
Backed out changeset 9c069a0820ea (bug 913985)
Backed out changeset 274df3abc991 (bug 913985)
Backed out changeset 05fe8b17516a (bug 913985)

--HG--
rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java
rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java
rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java
rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java
rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
2013-09-27 17:02:09 -04:00
Nathan Froyd
ddb736dd1b 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
1d1dd733fb 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
6bdac65643 Bug 914826 - part 3 - forward-declare nsIFile for GetMinidump() declaration; r=ehsan 2013-09-10 15:35:51 -04:00
Nathan Froyd
821302bd95 Bug 914826 - part 2 - rename builtinIncludes to builtinHeaderIncludes; r=ehsan 2013-09-10 15:34:44 -04:00
Nathan Froyd
4ff7ade093 Bug 914826 - part 1 - use static_assert instead of COMPILE_ASSERT in IPCMessageStart.h; r=ehsan 2013-09-10 15:07:10 -04:00
Chris Kitching
9eed6c7f16 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Kartikaya Gupta
9a58f0b9f9 Back out d9bdfdfda06e to dd17e0758a00 (bug 913985) due to incorrect author on some of the patches. r=backout
--HG--
rename : build/annotationProcessors/AnnotationInfo.java => build/annotationProcessors/MethodWithAnnotationInfo.java
rename : build/annotationProcessors/utils/AlphabeticAnnotatableEntityComparator.java => build/annotationProcessors/utils/AlphabeticMethodComparator.java
rename : build/annotationProcessors/utils/GeneratableElementIterator.java => build/annotationProcessors/utils/GeneratableEntryPointIterator.java
rename : mobile/android/base/mozglue/generatorannotations/WrapElementForJNI.java => mobile/android/base/mozglue/GeneratableAndroidBridgeTarget.java
rename : mobile/android/base/mozglue/generatorannotations/OptionalGeneratedParameter.java => mobile/android/base/mozglue/OptionalGeneratedParameter.java
2013-09-27 10:25:23 -04:00
Chris Kitching
0d37cfdd60 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-09-27 10:10:37 -04:00
Gregory Szorc
2b2720f0c8 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
Benoit Girard
69db6d5c6f Bug 919712 - Add labels in IPC message wait. r=benjamin 2013-09-24 11:40:01 -04:00
David Zbarsky
68058a840f 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
Ehsan Akhgari
dee6c12c6f Bug 918923 - Part 2: Switch to #including nsString.h in code using the internal strings API; r=bsmedberg 2013-09-23 13:25:00 -04:00
Mike Shal
b3030c3bb0 Bug 920915 - Use correct manifest dependencies; r=gps 2013-09-26 15:27:17 -04:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
cee2c827a4 Bug 771765 - Support template content process, part 8: process initialization flow changes. r=khuey
Changes initialization code for the template process:
* Let the process run for NUWA_PREPARATION_TIME ms and then start freezing the threads.
* Delay android binder thread pool creation after the content process is forked from the template and other thread recreation has finished.
* Poke the app shell after the content process is forked from the template.
2013-06-03 18:14:46 +08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
e1fe721d99 Bug 771765 - Support template content process, part 7: Don't schedule timer in the message pump if template process is ready. r=khuey 2013-06-03 18:14:44 +08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
025fc12dba Bug 771765 - Support template content process, part 6: support re-creation of the threads created in the template process. r=khuey, r=jorendorff
The threads that are frozen/recreated include:
* ImageBridgeChildThread.
* Image decoding thread pool.
* IPC thread (checkpointed, but not frozen).
* GC Helper thread.
* XPC runtime watchdog thread.
* Socket transport service thread/thread pool.
* Memory pressure watcher.
* Timer thread.
* DOM promise worker.
2013-06-03 18:14:42 +08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
46e38d15e3 Bug 771765 - Support template content process, part 4: Clone IPC protocol objects that will be up when the template process is ready. r=khuey, r=bent 2013-06-03 18:14:37 +08:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
1e916930c1 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
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
b4b97e6a1b Bug 771765 - Support template content process, part 2: IPC and glue changes. r=bent
Changes include:
* Getting/resetting platform thread ID.
* Creating an IPC channel with existing file descriptor sent from the template process.
* Child process host with existing process forked from the template.
2013-05-31 21:16:54 +08:00
Nathan Froyd
02047ceace Bug 909922 - don't pragma pack ipc message headers; r=bent
The IPC::Message header is surrounded by:

#pragma pack(push,2)
...
#pragma pack(pop)

which (at least on GCC) specifies that structure members defined lexically
within the pragma should be two-byte aligned, rather than the ABI's declared
alignment.

But for IPC::Message::Header, this is a silly requirement, as everything there
is four bytes; there's no reason to pack the members any tighter.  And packing
tighter means that strict alignment platforms (like ARM) need to use more
complex code for something as simple as storing to one of the members--like
when we set a message's request ID, over and over and over.  The current code
for setting a message's request ID on ARM looks like:

     264:	6863      	ldr	r3, [r4, #4]
     266:	696a      	ldr	r2, [r5, #20]
     268:	809a      	strh	r2, [r3, #4]
     26a:	0c12      	lsrs	r2, r2, #16
     26c:	80da      	strh	r2, [r3, #6]

With the patch, it looks like:

     264:	6863      	ldr	r3, [r4, #4]
     266:	696a      	ldr	r2, [r5, #20]
     268:	605a      	str	r2, [r3, #4]

Only four bytes, but multiplied over several hundred set_routing_id calls, it
saves some code size and runtime.  I verified that the header's length doesn't
change by looking at debug information.
2013-08-27 16:32:44 -04:00
Ryan VanderMeulen
0c7227eaf3 Merge m-c to b2g-inbound. 2013-09-12 20:41:54 -04:00
Benjamin Smedberg
15171fd2c9 Bug 800347 - Try clearing RPCChannel in the destructor so that the dequeue task is cancelled properly, r=dvander 2013-09-12 14:24:17 -04:00
Jed Davis
9c9b491acd Bug 915129 - Don't link in epoll_sub.c from libevent on Android or B2G. r=bent 2013-09-12 11:08:50 -04:00
Shelly Lin
388e313edf Bug 911009 - Add error handling for state of ChannelError when opening a ProcessLink. r=cjones 2013-09-06 10:53:15 +08:00
Mark Hammond
155cea62e2 Bug 914902 - remove printf as child process closes. r=cjones 2013-09-12 09:14:34 +10:00
Nicholas Nethercote
fd238cabbe Bug 910517 (3rd attempt) - Remove nsIMemoryReporter, and rename nsIMemoryMultiReporter as nsIMemoryReporter. r=mmcr8.
--HG--
rename : content/canvas/src/WebGLMemoryMultiReporterWrapper.h => content/canvas/src/WebGLMemoryReporterWrapper.h
extra : rebase_source : 2b2a1b2667d6562fcf803ec48b4a8c10fdd519a3
2013-08-27 16:24:51 -07:00
Ms2ger
e906ac3347 Bug 913953 - Part ab: Remove unused WriteInto function; r=ehsan 2013-09-10 09:03:37 +02:00