Skip to content

Instantly share code, notes, and snippets.

View benjamn's full-sized avatar

Ben Newman benjamn

  • Apollo Graph, Inc (formerly: Meteor, Facebook/Instagram, Quora, Mozilla)
  • New York City
  • 16:51 (UTC -04:00)
View GitHub Profile
union PrimVariant {
void_t;
null_t;
bool;
int;
double;
nsString;
PHandle;
};
union Variant {
PrimVariant;
CompVariant;
};
bool
JetpackChild::Init(base::ProcessHandle aParentProcessHandle,
MessageLoop* aIOLoop,
IPC::Channel* aChannel)
{
if (!Open(aChannel, aParentProcessHandle, aIOLoop))
return false;
if (!(mRuntime = JS_NewRuntime(32L * 1024L * 1024L)) ||
!(mImplCx = JS_NewContext(mRuntime, 8192)) ||
[21:18] <cjones> hey benjamn
[21:18] <cjones> good timing, was just about to sign off
[21:18] <cjones> so, i was thinking of adding two new IPDL syntaxes
[21:18] <cjones> er, constructs
[21:18] <cjones> wanted to bounce them off someone
[21:19] <cjones> so one issue with Bridge() is for which protocols to offer the interface
[21:19] <cjones> and how to sort parent/child actor arguments
[21:19] <cjones> one way would be to template Bridge() in C++ on the various combinations
[21:19] <cjones> but i'm not a huge fan of that
[21:20] <cjones> depending on impl, that would force C++ to make various decisions about which bridges were allowed at run time
#include <iostream>
using std::cout;
using std::endl;
template <typename T> class New {
T* mPtr;
public:
New() : mPtr(new T()) {}
operator T*() { return mPtr; }
T* operator->() { return mPtr; }
#include <iostream>
using std::cout;
using std::endl;
template <size_t Len>
size_t
static_strlen(const char (&str)[Len], int dummy = 0)
{
cout << "(void*)&str[0] == " << (void*)&str[0] << endl;
cout << "(void*)str == " << (void*)str << endl;
static inline bool
IsEllipsis(jsval v)
{
if (!JSVAL_IS_STRING(v))
return false;
JSString* str = JSVAL_TO_STRING(v);
if (JS_GetStringLength(str) != 3)
return false;
jschar* chars = JS_GetStringChars(str), dot('.');
return (chars[0] == dot &&
[11:48] <smaug_> ping
[11:48] <benjamn> pong
[11:49] <smaug_> about CPOW
[11:49] <benjamn> what's up
[11:49] <smaug_> now that it has landed I'd like to add support for them to TabChildMessages
[11:49] <smaug_> I'm trying to understand who manages what and where
[11:50] <benjamn> where is TabChildMessage defined?
[11:50] <smaug_> that is the global object in the content process
[11:50] <smaug_> used by content process event listeners
[11:51] <smaug_> er
js> _execute_test()
TEST-INFO | (xpcshell/head.js) | test 1 pending
WARNING: Connect called twice: file c:/Development/electrolysis/ipc/chromium/src
/chrome/common/ipc_channel_win.cc, line 175
parent: TEST-INFO | (xpcshell/head.js) | test 2 pending
parent: TEST-INFO | (xpcshell/head.js) | test 2 finished
parent: TEST-INFO | (xpcshell/head.js) | running event loop
### XPCOM_MEM_LEAK_LOG defined -- logging leaks to c:\docume~1\test\locals~1\tem
p\tmpgokjo1\runxpcshelltests_leaks_tab_pid2464.log
WARNING: NS_ENSURE_TRUE(compMgr) failed: file c:/Development/electrolysis/obj-ff
Building deps for /e/builds/moz2_slave/win32-unit/mozilla/js/src/ipc/ObjectWrapperChild.cpp
cl -FoObjectWrapperChild.obj -c -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES -DZLIB_INTERNAL -DOSTYPE=\"WINNT5.2\" -DOSARCH=WINNT -DEXCLUDE_SKIA_DEPENDENCIES -DCHROMIUM_MOZILLA_BUILD -DUNICODE -D_UNICODE -DNOMINMAX -D_CRT_RAND_S -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -D_SECURE_ATL -D_HAS_TR1=0 -DCHROMIUM_BUILD -DU_STATIC_IMPLEMENTATION -DCOMPILER_MSVC -DOS_WIN=1 -DWIN32 -D_WIN32 -D_WINDOWS -DWIN32_LEAN_AND_MEAN -DBIN_SUFFIX='".exe"' -I/e/builds/moz2_slave/win32-unit/mozilla/ipc/chromium/src -I/e/builds/moz2_slave/win32-unit/mozilla/ipc/glue -I../../../ipc/ipdl/_ipdlheaders -I/e/builds/moz2_slave/win32-unit/mozilla/js/src/ipc -I. -I../../../dist/include -I../../../dist/include/nsprpub -Ie:/builds/moz2_slave/win32-unit/mozilla/objdir/dist/include/nspr -Ie:/builds/moz2_slave/win32-unit/mozilla/objdir/dist/include/nss