I'd like to be able to write a JSD test as an xpcshell test rather than a full-on browser-chrome test. For that, I need a -d flag to start up with debugging on. I can't turn on debugging from my test script because currently it is only possible to turn on debug mode when no JS stack frames are live, which of course they are when running a test script.
Created attachment 565454 [details] [diff] [review]
Implement xpcshell -d
The JS shell has a -d flag, but the same implementation won't work here because I really need JSD debugging to be active, not just SpiderMonkey's debug mode. And there's no straightforward way to do that -- JSD currently has to use an asynchronous API with a callback that is invoked when debugging is on for realz, and XPConnect is responsible for waiting for an idle moment when it's safe to turn on.
So this patch adds xpc_ActivateDebugMode() usable only in extremely limited situations such as this where it is known to be safe to enable debugging.
All of this is somewhat temporary -- when tracemonkey disappears, it'll be possible to turn on debugging immediately, and when Firebug gets ported to jsdbg2 then JSD will probably be nuked entirely. But I'd like to be able to write xpcshell tests of JSD in the meantime.
backed out bug 689101, bug 692987 and bug 692722, since one of these caused permaorange on OSX64 m-oth tests (bug 692605 went permaorange on inbound, exactly)
Trying again. Try push looked good: https://tbpl.mozilla.org/?tree=Try&rev=51ba3fc4f12f