Commit Graph

267 Commits

Author SHA1 Message Date
Chris Jones
0564ad103d bug 523143: switch protocols using nsTArray to native IPDL arrays 2009-10-19 14:10:52 -05:00
Chris Jones
373c019990 bug 521324: call the multi-threaded GLib initialization function. r=karlt 2009-10-19 11:28:42 -05:00
Chris Jones
f118b1b109 pre-emptive windows build fix. no hablas STDint 2009-10-16 19:33:19 -05:00
Chris Jones
e1e761401a bug 506171: rewrite lower.py and add native IPDL arrays. 2009-10-16 18:31:53 -05:00
Chris Jones
86f7da7536 temporarily un-apply some lower.py fixes that have been subsumed by bug 506171 2009-10-16 18:27:43 -05:00
Chris Jones
78353e5860 fix bugs that were preventing IPDL C++ unit tests from running on win32 2009-10-13 23:08:24 -05:00
Chris Jones
de0b8a6c7f add basic IPC latency tests 2009-10-13 17:36:28 -05:00
Chris Jones
a0897fc29d bug 521845: expand protocol space by 4x (temporarily) 2009-10-12 14:04:40 -05:00
Chris Jones
024372f081 fix bugs in RPC race resolution 2009-10-09 01:21:39 -05:00
Chris Jones
264a18bfdc hack around lack of C99 format specifiers on Windows 2009-10-08 18:07:24 -05:00
Chris Jones
0f4bfc1b8d followup to RPC race resolution --- convert RPC_DEBUGABORT into RPC_ASSERT, and pre-emptively fix potential spurious race detector alarms 2009-10-08 17:41:18 -05:00
Chris Jones
6c79e4bbd2 add racy RPC resolution. also add better debugging info and fix two shared-memory-race bugs. 2009-10-08 16:44:43 -05:00
Ben Turner
d8f6fca3ab Add threadsafety assertions to plugin code 2009-10-08 12:11:13 -07:00
Ben Turner
63699d2cd3 Two tiny IPDL fixes. 2009-10-07 16:52:41 -07:00
Chris Jones
8bd9efc8e7 bug 518425: C++ unit test for bug 2009-10-06 13:05:47 -05:00
Chris Jones
826a18e082 bug 518126, part 2: add infrastructure for C++ tests of IPDL-generated code. r=ted,bsmedberg 2009-10-06 13:02:26 -05:00
Ben Turner
fe26eff4e3 More bustage fix 2009-10-05 18:43:46 -07:00
Chris Jones
fb35538a29 bug 518425, part 2: lessen routing ID collisions 2009-09-24 13:38:04 -05:00
Chris Jones
714b015109 bug 518126: part 1 --- test the IPDL compiler in isolation. r=bsmedberg 2009-09-23 11:00:37 -05:00
Chris Jones
4c587f8e45 bug 517977: require actor impls to override AllocPFoo/DeallocPFoo instead of PFooConstructor/PFooDestructor 2009-09-22 12:31:11 -05:00
Chris Jones
89fff610ce bug 518032: fix messed-up dtor code gen 2009-09-22 11:03:54 -05:00
Chris Jones
3ecb69991d fix sync/RPC deadlock bug that came to me in a dream. r=mr.sandman 2009-09-22 10:23:29 -05:00
Chris Jones
d484a65e38 bug 517923: support serializing ns*Strings that represent NULL, use this mechanism in PluginInstanceParent/PluginModuleChild. also add basic crash-handling to *Channel code and some NS_OVERRIDE annotations. 2009-09-21 21:02:15 -05:00
Chris Jones
90a2666dff fix lingering cruft from the nsresult-to-bool conversion 2009-09-18 16:35:53 -05:00
Chris Jones
20d86c434b make actor param/return types nullable. use decl initializers where possible for more concise code 2009-09-18 12:28:37 -05:00
Chris Jones
fef237688e fix bug in IPDL race detector causing it not to detect certain patterns involving async messages where parent/child state machines could get more than 1 state out of sync 2009-09-18 11:10:48 -05:00
Chris Jones
03947f0bf3 switch message handler nsresult return types to bool. appears to break test plugin, will be temporary 2009-09-17 18:09:20 -05:00
Ben Turner
5927a0e5fb Landing the first part of NPRuntime support for plugin-side objects. Not hooked up yet. 2009-09-17 15:15:12 -07:00
Jason Duell
7b9643e8c3 Necko init patch, with modeline fixes 2009-08-18 12:05:15 -07:00
Chris Jones
8ef0c1d0d8 bug 516798: fix busted actor-as-return-value handling in IPDL 2009-09-16 21:49:41 -05:00
Chris Jones
d50f580e04 fix mismatched expectations of generated vars arrays 2009-09-16 17:41:04 -05:00
Ben Turner
6767c1e151 Initialize managers asap in child actors 2009-09-16 15:01:00 -07:00
Ben Turner
cce28b953f Further fixes for unions 2009-09-14 19:26:17 -07:00
Ben Turner
ebf1496aa4 Fix union type stuff for linux too 2009-09-14 17:55:00 -07:00
Ben Turner
c3980cd06f Fix union type constructors to be explicit to avoid msvc choosing cheaper code paths 2009-09-14 14:44:06 -07:00
Ben Turner
b9c58a3347 Fix mem corruption from our different use of ChildProcessHost when child processes crash 2009-09-14 13:02:32 -07:00
Ben Turner
4c2446fda0 Fix recursive locking when unblocking an RPC channel for a sync message and add minimal error handling for sync messages. 2009-09-14 13:00:31 -07:00
Ben Turner
c8cd3d9e05 Fix nsTArray deserialization 2009-09-14 12:58:33 -07:00
Chris Jones
4adeb30006 modify the generated C++ enum representing the constituent types of IPDL unions so that they can represent a "not assigned" state 2009-09-12 17:18:56 -05:00
Chris Jones
af6b29815d fix the internal C++ union of generated IPDL unions so that they can contain non-POD types 2009-09-12 15:40:26 -05:00
Chris Jones
657a5413be fix isUnion/isUnionType schizophrenia introduced by d3e90292fd30 2009-09-12 15:11:35 -05:00
Benjamin Smedberg
0129b07555 Followup to changeset d3e90292fd30, discriminated union types: bustage fix when passing an actor 2009-09-11 12:05:26 -04:00
Chris Jones
eac97adcbe unblock RPC waiters for async messages, for realz 2009-09-11 02:28:09 -05:00
Chris Jones
f628e59149 fix bug introduced by d0d751ed8c3e where receiving multiple async messages while awaiting an RPC reply could screw things up. async messages no longer unblock RPC waiters. 2009-09-11 01:05:42 -05:00
Chris Jones
e20692ab9b add discriminated union types to IPDL 2009-09-10 23:55:03 -05:00
Chris Jones
88d2f89607 make RPC unblock for async and sync, as it supposed to have 2009-09-10 18:54:37 -05:00
Ben Turner
c6ad60ed4d Remove 'Protocol' suffix from IPDL-generated files 2009-09-09 15:59:06 -07:00
Ben Turner
dccb0805dd Rename remaining protocols
--HG--
rename : dom/ipc/ContentProcess.ipdl => dom/ipc/PContentProcess.ipdl
rename : dom/ipc/IFrameEmbedding.ipdl => dom/ipc/PIFrameEmbedding.ipdl
rename : ipc/test-harness/Test.ipdl => ipc/test-harness/PTest.ipdl
rename : ipc/testshell/TestShell.ipdl => ipc/testshell/PTestShell.ipdl
rename : ipc/testshell/TestShellCommand.ipdl => ipc/testshell/PTestShellCommand.ipdl
2009-09-09 15:00:14 -07:00
Chris Jones
f9ec84bb5f bug 515365: fix actor types as message params. also refactor actor naming so that the "Protocol" suffix can be removed. 2009-09-09 15:25:05 -05:00
Chris Jones
9b4c68bafb bug 515242: finish FE support for actor types specified to be in "any" state (by adding State.ANY). fix IPDL handling of carriage return, remove them from new code 2009-09-09 01:58:08 -05:00
Ben Turner
962f9e024d Fix crashing iframes due to gtk_init, stop using windows in xpcshell tests 2009-09-08 13:35:12 -07:00
Ben Turner
68e41ae4f9 Fix linux builds by giving them a better idea of the executable location 2009-09-04 00:23:06 -07:00
Chris Jones
29002d8ee4 make failed exec() print a loud error message 2009-09-03 17:12:57 -05:00
Ben Turner
0f1d5c36a0 Force child processes to close and wait for them on shutdown 2009-09-02 17:18:27 -07:00
Ben Turner
6e6fa8eaec Enable ipcshell tests 2009-09-02 12:35:15 -07:00
Ben Turner
268851a3c4 Disable tests until they work 2009-09-01 15:36:38 -07:00
Ben Turner
a8e29d16e8 Basic xpcshell test for testing IPDL 2009-09-01 15:17:24 -07:00
Chris Jones
7ede298e42 bug 513920: synchronously "connect" to parent process from child process 2009-09-01 11:27:09 -05:00
Chris Jones
fb7a868fa4 fix build bustage; include prtime.h in IPDL code and avoid conflicting CaseInsensitiveCompare decls 2009-09-01 10:01:50 -05:00
Ben Turner
99f1c34f15 Rework ipcshell to become xpcshell 2009-08-28 16:16:19 -07:00
Chris Jones
fead1e7116 bug 511440: leak count the protocol actor classes. Patch from robin_bb, thanks! r=cjones 2009-08-31 12:54:25 -05:00
Ben Turner
7821c5b1ba Rework chromium initialization, r=beast 2009-08-28 12:46:21 -07:00
Ben Turner
7c25b1ea27 Backing out stuff that doesn't work 2009-08-27 16:05:38 -07:00
Ben Turner
5b7e1a569b Fix build bustage? 2009-08-27 15:54:05 -07:00
Ben Turner
e4dd7bb6ff Rework chromium initialization, revert accidental change 2009-08-27 14:17:01 -07:00
Ben Turner
8e88b405d2 Rework chromium initialization 2009-08-27 14:11:10 -07:00
Chris Jones
c39afb1faf drop the banhammer on sync parent-to-child messages 2009-08-25 18:52:12 -05:00
Ben Turner
1521c7b109 Fix testshell to use the new callback commands, and shut down properly 2009-08-25 16:07:22 -07:00
Chris Jones
84a5be73c6 add IPDL front-end support for transitioning to one of a set of states 2009-08-19 21:21:46 -05:00
Chris Jones
42f8bccd1d add real front-end support for multiple start states in IPDL 2009-08-19 18:35:22 -05:00
Chris Jones
569858dd00 enable the actor before calling the ctor hook 2009-08-19 18:14:24 -05:00
Chris Jones
da80f6aaa1 add RecvCtor() hooks to match RecvDtor() 2009-08-19 17:54:54 -05:00
Chris Jones
36b0a7b68e require IPDL filename Foo.ipdl to define protocol Foo 2009-08-19 16:08:21 -05:00
Chris Jones
a02df7b5d1 allow empty sub-protocols 2009-08-19 15:50:46 -05:00
Chris Jones
2c1f6f0ee8 add "power-user" ctor interface method that accepts pre-constructed actors 2009-08-19 15:39:10 -05:00
Robin Bate Beorop
b7c4e982b3 Bug 507218 - Expose the process type (chrome/content) to client code via XRE_GetProcessType and nsIXULRuntime, r=bent 2009-08-19 13:09:51 -04:00
Chris Jones
d9919b3117 simplify some *Channel code. enforce more SyncChannel invariants 2009-08-19 10:44:56 -05:00
Chris Jones
0a08700f4a add race detection to RPC channels. simplify message processing, be stricter about layering guarantees. add more comments and assertions to channel code. 2009-08-19 00:22:01 -05:00
Chris Jones
43593314df s/String/nsCString/ for IPDL example 2009-08-18 11:08:38 -05:00
Chris Jones
77d8bb116e allow implementations to be notified when a dtor message is received 2009-08-14 16:46:49 -05:00
Chris Jones
f55e41544a add dummy |start state| syntax 2009-08-14 15:38:25 -05:00
Chris Jones
752addc386 bug 510344: each translation unit needs its own symbol table. also fixed some parser error reporting and removed debugging |print|s 2009-08-13 21:22:55 -05:00
Benjamin Smedberg
3727beac48 Bug 510025 - make TestShell a subprotocol of ContentProcess so that it is useful for prototyping 2009-08-12 14:31:48 -04:00
Chris Jones
c077cb9ee4 bug 510041: subprotocols should implement the toplevel-protocols listener interface even if they do not need that send semantics. dummy methods that error out are generated 2009-08-12 17:53:08 -05:00
Chris Jones
5fdc15d93a forward-declare non-managed actors 2009-08-12 15:51:39 -05:00
Chris Jones
ca83130e42 fix regression from refactoring error message construction 2009-08-12 13:59:00 -05:00
Chris Jones
2c2245395b fix typos in type error format args 2009-08-12 13:46:05 -05:00
Chris Jones
1b2a01962c generate C++ typdefs for namespaced protocols 2009-08-12 13:40:09 -05:00
Chris Jones
f09e5b1b04 build on 64-bit linux 2009-08-12 00:41:55 -05:00
Chris Jones
fc4f1b8507 bug 509588: in actor ctor skeleton, return null instead of NS_ERROR_NYI 2009-08-11 17:26:06 -05:00
Chris Jones
4a80615b13 bug 509581: generate direct error return stmt instead of switch stmt with only default case when there are no dispatched messages. 2009-08-11 17:20:28 -05:00
Chris Jones
bb36d29db4 backout bad fix 2009-08-11 17:12:42 -05:00
Chris Jones
be276f51f5 bug 509581: only generate dispatch statement if we have a non-default case 2009-08-11 17:09:13 -05:00
Chris Jones
973633505a bug 509579: use ALLOW_THIS() macro to squash msvc warnings 2009-08-11 16:52:37 -05:00
Ben Turner
1088815043 Add extremely basic support for unblocking in the event of a bad message 2009-08-07 16:13:20 -07:00
Chris Jones
a225933c92 make it easier to control whether logging code is emitted 2009-08-07 16:10:57 -05:00
Ben Turner
2f24daa576 Add test plugin for ipc, make sure it works 2009-08-05 15:36:33 -07:00
Ben Turner
d4bb2883d3 Use mozilla strings instead of std::string in IPDL 2009-07-29 14:12:15 -07:00
Ben Turner
f120ae185f Fix chromium statics for apps that don't run through XRE_Main 2009-07-29 14:11:42 -07:00
Chris Jones
bdd002ffe7 bug 506983: allow template types in param lists 2009-07-28 17:04:01 -05:00
Chris Jones
76fb6c8a37 bug 506983: bare minimum support for C++ template types in IPDL 2009-07-28 16:26:14 -05:00
Chris Jones
d8a8dca284 bug 506788: fix stupid typo 2009-07-27 20:49:32 -05:00
Chris Jones
9d6b44828f Bug 506075: eliminate handshaking async constructor protocol, use smarter routing ID assignment 2009-07-24 18:24:27 -05:00
Chris Jones
beee1565fe bug 506075: shoehorn support for async ctors/dtors into IPDL. 2009-07-23 20:31:56 -05:00
Ben Turner
018b1a724f Allow ipcshell to receive a response from its child process 2009-07-23 15:27:17 -07:00
Chris Jones
bde223e936 windows build fix, v2 2009-07-21 09:28:36 -05:00
Chris Jones
aeec2c150f windows build fix 2009-07-21 08:58:28 -05:00
Chris Jones
f349133c54 add message logging, as far as is possible with current build setup; -fshort-char breaks it. reinstate async/sync message dispatchers. fix 64-bit int printf bug in chromium. 2009-07-21 01:14:58 -05:00
Benjamin Smedberg
0501b7a589 Make --disable-ipc work... mac-ppc now builds by default. 2009-07-20 15:04:52 -04:00
Chris Jones
cc9c58dbcb add SyncLaunch() method to GeckoChildProcess class. remove much newly obseleted code. 2009-07-20 13:14:41 -05:00
Chris Jones
8959227f99 implement protocol manager support for all channel types, not just RPC 2009-07-20 11:59:51 -05:00
Chris Jones
6a1b89d424 stop flirting with MSVC8 name resolution bug. 2009-07-20 11:37:18 -05:00
Chris Jones
822eab83c8 fix small parser regression. edit test-harness code to match online guide 2009-07-17 23:00:01 -05:00
Chris Jones
be1ba467e4 check that protocol state machines are race-free. fix race in test-harness (whoops). 2009-07-17 18:10:10 -05:00
Chris Jones
af893a5060 check reachability of states in IPDL protocols. clean up type checking a little. 2009-07-17 14:22:18 -05:00
Benjamin Smedberg
855263eb48 Use a different hack to make the Linux tinderboxes green until we can upgrade to GCC 4.3 2009-07-17 13:39:40 -04:00
cjones@dm-oink01.mozilla.org
d2a3bbd884 BAND-AID: compile chromium base lib with -fno-inline to fix linker bustage. bye bye performance. 2009-07-16 14:59:49 -07:00
Chris Jones
957ee2b153 >--> @ MSVC8, v4 2009-07-15 17:33:37 -05:00
Chris Jones
5e2cfbac7f another stab at fixing MSVC8 build bustage. 2009-07-15 17:06:30 -05:00
Chris Jones
7662f0b63a another stab in the dark at fixing MSVC8 bustage: put Result code enum in anonymous namespace 2009-07-15 16:38:55 -05:00
Chris Jones
1f2aa76f62 attempt to fix build bustage when using MSVC8. 2009-07-15 13:41:09 -05:00
Chris Jones
457f6ad505 fix gcc <= 4.1 builds by removing mysterious template syntax 2009-07-15 13:21:06 -05:00
Benjamin Smedberg
b0713f0d38 IPCMessageStart.h shouldn't be checked in... should fix Windows build bustage. 2009-07-14 10:37:38 -04:00
Chris Jones
1de39e3ef4 update rgnrectallocator changes to match pending m-c patch. 2009-07-14 03:09:23 -05:00
Chris Jones
14b0696047 fix up phase 1 browser: (i) suppress spurious RgnRectAlloc error msgs; (ii) make IFrameEmbedding protocol sync/async instead of rpc; (iii) fix bug that prevented child iframe from drawing 2009-07-14 02:33:50 -05:00
Chris Jones
d7947d5455 add IPDL test harness and the mountains of code that entails. add |bool| type to IPDL. fix bugs in nascent async/sync channels. 2009-07-14 00:12:50 -05:00
Chris Jones
65a5143fa4 first cut at AsyncChannel and SyncChannel. only RPCChannel is currently under warranty. 2009-07-13 16:55:04 -05:00
Chris Jones
e1802878a2 fix build bustage 2009-07-13 12:16:40 -05:00
Chris Jones
f4fb7e72d9 IPDL: add colons back to state declarations 2009-07-13 12:10:02 -05:00
Benjamin Smedberg
28d4675b23 Build system for .ipdl files. 2009-07-13 12:14:56 -04:00
Chris Jones
e97dd63901 make parse errors behave like type errors 2009-07-13 11:12:08 -05:00
Ben Turner
8c59b524c4 Linux bustage fix? 2009-07-11 03:04:20 -04:00
Ben Turner
011769cbf2 Adds the ipcshell application to test IPC 2009-07-11 02:33:10 -04:00
Chris Jones
75cbcb8d79 change state declaration syntax to be more different than parent:/child:/both: labels 2009-07-10 19:40:17 -05:00
Chris Jones
c73832e4e0 remove in/out/inout syntax in favor of parent:, child:, and both: labels 2009-07-10 19:19:54 -05:00
Chris Jones
ca80c305cb generate skeleton IPDL actor impls, like the IDL compiler does for interfaces. also fix the C++ visitor. 2009-07-10 15:56:40 -05:00
Chris Jones
452523bbf6 add files that should have been in last cset 2009-07-10 14:58:14 -05:00
Chris Jones
e6c73d1542 use a single binary, mozilla-runtime, for all child processes 2009-07-10 14:03:09 -05:00
Chris Jones
03d2126057 final frontend support for protocol state machines. patch includes a minor refactoring as well. 2009-07-09 13:11:52 -05:00
Chris Jones
7929ffa13d add parsing and type-checking of protocol state machines in preparation for codegen of dynamic FSM checker. fix a couple of bugs here and there. 2009-07-08 18:03:56 -05:00
Chris Jones
d3e2234d01 check that ctors and dtors have been declared for managed protocols 2009-07-08 10:37:32 -05:00
Chris Jones
a3e9f6ddbf add gcc-like -I include dir options to ipdl compiler 2009-07-07 17:52:38 -05:00
Chris Jones
d748ddb837 bug 502921: check NS_FAILED when calling into implementor code 2009-07-07 16:45:27 -05:00
Chris Jones
82d3d94aca bugs 502003, 502634: compile multiple IPDL specs in one invocation
--HG--
rename : ipc/ipdl/ipdlc => ipc/ipdl/ipdl.py
2009-07-07 15:52:10 -05:00
Benjamin Smedberg
0990ded365 Goodbye, NO_NSPR_10 weirdness. 2009-07-07 12:25:00 -04:00
Benjamin Smedberg
5a197c4735 Windows fixup: Windows does actually have 2-byte wchar_t. Also there was a possible missing PR_BEGIN_EXTERN_C that we really did need. 2009-07-07 12:20:02 -04:00
Benjamin Smedberg
5091399e83 Windows fixup: write files in binary mode so we have consistent Unix-style line endings, and always use forward slashes instead of os.path.sep 2009-07-07 11:17:48 -04:00
Chris Jones
00958eff01 port IFrame protocol to new interface. fix small IPDL bug. 2009-07-02 19:24:02 -05:00
Chris Jones
9a867c549d use static_cast instead of dynamic_cast. silly cjones. 2009-07-02 19:02:06 -05:00
Ben Turner
67ac5c13b2 Some windows build fixup 2009-07-02 13:48:33 -07:00