author | Bobby Holley <bobbyholley@gmail.com> |
Wed, 25 Mar 2015 11:36:58 -0700 | |
changeset 264829 | 00121d84932a27274a0a4867bfa8200e2461fc5e |
parent 264828 | 6f837658dea2805be7c01c6310c4b6416c4be913 |
child 264830 | 41ad91ce7ccae1e7bbb569d3fd4d58f85ca376b0 |
push id | 4718 |
push user | raliiev@mozilla.com |
push date | Mon, 11 May 2015 18:39:53 +0000 |
treeherder | mozilla-beta@c20c4ef55f08 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smaug |
bugs | 1147215 |
milestone | 39.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/base/ScriptSettings.cpp +++ b/dom/base/ScriptSettings.cpp @@ -478,17 +478,17 @@ AutoJSAPI::InitWithLegacyErrorReporting( // // Eventually, SpiderMonkey will have a special-purpose callback for warnings // only. void WarningOnlyErrorReporter(JSContext* aCx, const char* aMessage, JSErrorReport* aRep) { MOZ_ASSERT(JSREPORT_IS_WARNING(aRep->flags)); nsRefPtr<xpc::ErrorReport> xpcReport = new xpc::ErrorReport(); - nsPIDOMWindow* win = xpc::WindowGlobalOrNull(JS::CurrentGlobalOrNull(aCx)); + nsPIDOMWindow* win = xpc::CurrentWindowOrNull(aCx); xpcReport->Init(aRep, aMessage, nsContentUtils::IsCallerChrome(), win ? win->WindowID() : 0); xpcReport->LogToConsole(); } void AutoJSAPI::TakeOwnershipOfErrorReporting() {
--- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -592,16 +592,23 @@ AddonWindowOrNull(JSObject *aObj) MOZ_RELEASE_ASSERT(js::IsCrossCompartmentWrapper(proto) || xpc::IsSandboxPrototypeProxy(proto)); JSObject *mainGlobal = js::UncheckedUnwrap(proto, /* stopAtOuter = */ false); MOZ_RELEASE_ASSERT(JS_IsGlobalObject(mainGlobal)); return WindowOrNull(mainGlobal); } +nsGlobalWindow* +CurrentWindowOrNull(JSContext *cx) +{ + JSObject *glob = JS::CurrentGlobalOrNull(cx); + return glob ? WindowOrNull(glob) : nullptr; +} + } static void CompartmentDestroyedCallback(JSFreeOp *fop, JSCompartment *compartment) { // NB - This callback may be called in JS_DestroyRuntime, which happens // after the XPCJSRuntime has been torn down.
--- a/js/xpconnect/src/xpcpublic.h +++ b/js/xpconnect/src/xpcpublic.h @@ -464,16 +464,23 @@ WindowGlobalOrNull(JSObject *aObj); /** * If |aObj| is in an addon scope and that addon scope is associated with a * live DOM Window, returns the associated nsGlobalWindow. Otherwise, returns * null. */ nsGlobalWindow* AddonWindowOrNull(JSObject *aObj); +/** + * If |cx| is in a compartment whose global is a window, returns the associated + * nsGlobalWindow. Otherwise, returns null. + */ +nsGlobalWindow* +CurrentWindowOrNull(JSContext *cx); + // Error reporter used when there is no associated DOM window on to which to // report errors and warnings. // // Note - This is temporarily implemented in nsJSEnvironment.cpp. void SystemErrorReporter(JSContext *cx, const char *message, JSErrorReport *rep); void