gecko-dev/toolkit/devtools
Bobby Holley eb2e873e6c Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap
XPCShell currently overrides all the JSContexts whose creation it observes with
its own custom error reporter. This reporter does all sorts of funny things which
we try to clean up for the most part. But there are a few very intricate
considerations at play.

First, the old xpcshell error reporter does some mumbo jumbo with the
XPCCallContext stack to try to guess whether some other code might catch the
exception. This is total garbage on a number of fronts, particularly because
the XPCCallContext stack has no concept of saved frame chains, nested event
loops, sandbox boundaries, origin boundaries, or any of the myriad of
complicating factors that determine whether or not an exception will propagate.

So we get rid of it. But this causes some crazy debugger tests to fail, because
they rely on an exception from uriloader/exthandler/nsHandlerService.js getting
squelched, and can't handle anybody reporting errors to the console service at
the particular moment of contortionism when the exception is raised. So we need
to introduce an explicit mechanism to disable the error reporter here to keep
things running.

Second, we have to be very careful about tracking the return status of the
xpcshell binary. The old code would simply flag an error code if the error
handler was invoked, and we can mostly continue to do that. But there are some
complications. See the comments.

Finally, we don't anything analogous in XPCShellEnvironment, because I have
patches in bug 889714 to remove its state-dependence on the error reporter.
I'll switch it to SystemErrorReporter in that bug.
2013-07-16 20:38:44 -07:00
..
apps Bug 889356 - Add test for app `redirects` manifest feature. r=fabrice 2013-07-11 14:43:53 -04:00
client Rename Promise to promise to avoid collisions with the forthcoming DOM Promise implementation (bug 885318); r=jwalker 2013-07-11 10:12:20 +03:00
gcli Rename Promise to promise to avoid collisions with the forthcoming DOM Promise implementation (bug 885318); r=jwalker 2013-07-11 10:12:20 +03:00
server Bug 889911 - Switch xpcshell to SystemErrorReporter with a little bit of special magic. r=mrbkap 2013-07-16 20:38:44 -07:00
sourcemap Bug 885597 - absolute urls not working with sourcesContent and source maps in file:// urls; r=dcamp 2013-06-23 09:44:29 -07:00
webconsole Bug 812618 - Autocomplete at cursor location; r=robcee 2013-06-28 20:56:33 +03:00
Console.jsm Bug 883908 - Fix padding in Console.jsm's trace method. r=jwalker 2013-06-17 06:52:54 -07:00
DevToolsUtils.js Bug 797529 - Make DevToolsUtils.js compatible with B2G compartment sharing, r=past 2013-06-06 20:00:11 -07:00
DevToolsUtils.jsm Bug 878319: Move makeInfallible into its own JSM. r=dcamp 2013-06-05 09:30:54 -07:00
Loader.jsm Rename Promise to promise to avoid collisions with the forthcoming DOM Promise implementation (bug 885318); r=jwalker 2013-07-11 10:12:20 +03:00
Makefile.in Bug 892904 - Remove useless includes of config.mk. r=gps 2013-07-15 18:48:40 +09:00
Require.jsm Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon 2012-10-31 09:13:28 -07:00
moz.build Bug 865207 - Move webapps actor from /b2g/chrome/content to /toolkit/devtools/apps/. r=fabrice, r=dcamp 2013-05-30 12:08:15 -04:00