Bug 807222 part 3. Make sure we enter the right compartment before we try to define interface constants on a constructor. r=bholley
authorBoris Zbarsky <bzbarsky@mit.edu>
Mon, 05 Nov 2012 10:20:04 -0500
changeset 112308 0b9b3b2b89712b7f256dd76c5b55719a15dc0dd8
parent 112307 f8eab1766c2c398616795731b80ec212413ad9d3
child 112309 54ab88e2fa341117e173a4dc1fd26c0a8e5fcf0b
push id23812
push useremorley@mozilla.com
push dateTue, 06 Nov 2012 14:01:34 +0000
treeherdermozilla-central@f4aeed115e54 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbholley
bugs807222
milestone19.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
Bug 807222 part 3. Make sure we enter the right compartment before we try to define interface constants on a constructor. r=bholley
dom/base/nsDOMClassInfo.cpp
--- a/dom/base/nsDOMClassInfo.cpp
+++ b/dom/base/nsDOMClassInfo.cpp
@@ -6763,16 +6763,17 @@ nsWindowSH::GlobalResolve(nsGlobalWindow
 
     JSObject *class_obj;
     holder->GetJSObject(&class_obj);
     NS_ASSERTION(class_obj, "The return value lied");
 
     // ... and define the constants from the DOM interface on that
     // constructor object.
 
+    JSAutoCompartment ac(cx, class_obj);
     rv = DefineInterfaceConstants(cx, class_obj, &name_struct->mIID);
     NS_ENSURE_SUCCESS(rv, rv);
 
     *did_resolve = true;
 
     return NS_OK;
   }