зеркало из https://github.com/mozilla/gecko-dev.git
172598b4e2
In general, using an AutoJSAPI inited with an object is NOT the same as using AutoSafeJSContext (or AutoJSAPI inited without an object) and then entering the compartment of the object: the former will report exceptions to the global of the object as it comes off the stack, while the latter will not. This only really matters if we have an object from a window or worker global and hence might fire error events, or report internal stuff to the web console. The changes to initing with an object made in this bug are OK for the following reasons: 1) dom/base/Console.cpp: Always clears its exception before coming off the stack. 2) dom/base/nsDOMClassInfo.cpp: Inits with a non-web global. 3) dom/base/nsFrameMessageManager.cpp: Inits with a non-web global. 4) dom/media/MediaPermissionGonk.cpp: We probably want the caller to notice if anything here throws. 5) dom/xbl/nsXBLPrototypeBinding.cpp: Inits with a non-web global. 6) dom/xul/nsXULElement.cpp: Inits with a non-web global. 7) extensions/pref/autoconfig/src/nsJSConfigTriggers.cpp: Inits with a non-web global. 8) ipc/testshell/XPCShellEnvironment.cpp: Inits with a non-web global. |
||
---|---|---|
.. | ||
crashtests | ||
templates | ||
test | ||
XULDocument.cpp | ||
XULDocument.h | ||
moz.build | ||
nsForwardReference.h | ||
nsIController.idl | ||
nsIControllers.idl | ||
nsIXULDocument.h | ||
nsIXULOverlayProvider.idl | ||
nsXULCommandDispatcher.cpp | ||
nsXULCommandDispatcher.h | ||
nsXULContentSink.cpp | ||
nsXULContentSink.h | ||
nsXULControllers.cpp | ||
nsXULControllers.h | ||
nsXULElement.cpp | ||
nsXULElement.h | ||
nsXULPopupListener.cpp | ||
nsXULPopupListener.h | ||
nsXULPrototypeCache.cpp | ||
nsXULPrototypeCache.h | ||
nsXULPrototypeDocument.cpp | ||
nsXULPrototypeDocument.h |