Bug 868130 - Enter a request for all of OnJSContextNew. r=peterv
Bug 868130 - Make sure mContext is stack-top in nsJSContext::CompileScript. r=gabor
Bug 868130 - Make sure the new cx is stack-top in nsFrameMessageManager. r=gabor
Bug 868130 - Use an AutoSafeJSContext in hueyfix. r=gabor
Bug 868130 - Make sure to push a JSContext in TabParent::ReceiveMessage. r=gabor
Bug 868130 - Use an AutoSafeJSContext in nsObjectLoadingContent::TeardownProtoChain. r=gabor
Bug 868130 - Make sure mContext is stack-top in the various places where nsJSEnvironment uses it. r=gabor

I also replaced some uses of mJSContext with AutoJSContext upon auditing that
they're only ever called by other nsJSContext functions that just pushed. This
makes the code much easier to audit because we know that we're just inheriting
the caller's cx (which is stack-top) rather than injecting a potentially-
unrelated cx.
Bug 868130 - Make sure to push the context in the ObjectWrapperChild constructor. r=gabor
Bug 868130 - Separate nsCxPusher an friends into their own file. r=gabor

We want to put a JSAutoRequest into nsCxPusher, but that would involve
including jsapi.h in nsContentUtils.h, which we'd probably rather avoid doing.
Let's just bite the bullet and do this.
Bug 868130 - Include nsCxPusher.h everywhere we need it, and stop including it from nsContentUtils.h. r=gabor
Bug 868130 - Move nsCxPusher into XPConnect. r=gabor

The JSContext stack is an XPConnect construction. In particular, there are
situations where we want to manipulate it outside the lifetime of nsContentUtils
but within the lifetime of the stack itself. In order to do this cleanly, it's
helpful to use private XPConnect APIs. So the first step here is to move this into
js/src/xpconnect, so that we can take advantage of the stuff in xpcprivate.h.

--HG--
rename : content/base/src/nsCxPusher.cpp => js/xpconnect/src/nsCxPusher.cpp
rename : content/base/public/nsCxPusher.h => js/xpconnect/src/nsCxPusher.h
Bug 868130 - Remove the dependencies of the nsCxPusher machinery on nsContentUtils, use nsCxPusher in xpcshell, and privatize APIs. r=gabor

No more xpc::danger, for now. ;-)
Bug 868130 - Add an AutoRequest inside nsCxPusher. r=gabor
Bug 868130 - Fix sketchy cx consumers identified by gabor. r=gabor
Bug 868130 - Remove the lion's share of JSAutoRequests in gecko. r=gabor

There are still a handful that either are used with other runtimes, or that
happen very early/late in cx the lifetime of various things where it doesn't
necessarily make sense to have a cx on the stack. This should definitely ensure
that we're not doing double-duty with the nsCxPusher change, though.
Bug 868130 - Fix include guard. r=me
Bug 872135 - Use the SafeJSContext in nsXPConnect::CheckForDebugMode. r=gabor