Platform/JS Compartments Mochitest

This page is a tracking page for getting the JS compartments work to pass xpcshell tests and Mochitests and other automated test suites.

xpcshell

default compartment leaks

bug 599761 (_newJSDContext), landed, missed a part (now bug 600580)

bug 599762 (js::ctypes::CClosure::ClosureStub), patch in bug, tryservering

bug 600022 (XPCShellEnvironment::Init()), patch in bug, tryservering

bug 600032 (JetpackChild::Init()), landed

bug 600173 (atoms should always be in the default compartment), ready to land

bug 600402 (don't copy strings for the same compartment), patch in bug

bug 600580 (_newJSDContext, part 2), patch in bug, tryservering

Mochitest

Run with python runtests.py --total-chunks=20 --this-chunk=n --autorun --debugger=gdb where n is the chunk you want to examine.

Remaining large-ish items

  • XPCNativeWrapper.unwrap() different compartments
  • XPCSafeJSObjectWrapper::WrapObject() fails
  • Error hacks?
  • XPCNW holder objects vs JS_ClearScope()
  • Location object
  • DocShell navigation tests
  • IndexedDB and DOM worker tests, need cross compartment structured clone (jorendorff/bent)


FIXED issues:

  • nsJSContext::BindCompiledEventHandler(), target and funobj from
  • Components.utils.import() from non-chrome code.

failing tests:

/tests/js/src/xpconnect/tests/mochitest/test_bug505915.html
/tests/js/src/xpconnect/tests/mochitest/test_cows.html
/tests/js/src/xpconnect/tests/mochitest/test_frameWrapping.html
/tests/dom/tests/mochitest/ajax/offline/test_updatingManifest.html
/tests/docshell/test/navigation/test_opener.html
/tests/docshell/test/navigation/test_reserved.html
/tests/mochitest/bugs/test_bug346659.html (win.foo undefined)
/tests/docshell/test/test_bug529119-1.html
/tests/docshell/test/test_bug529119-2.html
/tests/content/html/content/test/test_bug388558.html (mounir?)

assert-to-death tests:

/tests/toolkit/components/passwordmgr/test/test_basic_form_observer_autofillForms.html
/tests/toolkit/components/passwordmgr/test/test_basic_form_observer_foundLogins.html

Chunk 1

pass, 22848 tests

Chunk 2

pass

Chunk 3

1 test failed out of 14582

 /tests/content/html/content/test/test_bug209275.xhtml iframeCw.document is null on line 232.

Chunk 4

pass, 19244 tests

Chunk 5

12 failures, doesn't complete, got through 865 tests, two tests fail in /tests/docshell/test/navigation/*, gets stuck on /tests/dom/indexedDB/ tests (bent looking into that)

pass: /tests/dom/tests/mochitest/ajax

fails: tests/dom/tests/mochitest/bugs/test_bug346659.html, /tests/dom/tests/mochitest/bugs/test_bug396843.html, http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug409349.html, http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug440572.html, http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug531176.html, http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug61098.html, http://mochi.test:8888/tests/dom/tests/mochitest/dom-level0/test_setting_document.domain_idn.html (idn failures?),

Chunk 6

127 tests pass, then we hit test_xhrAbort.html, and fail miserably in nsContentUtils::ReparentClonedObjectToScope(). (bent?)

Chunk 7

pass, 177 tests

Chunk 8

pass, 346 tests

Chunk 9

pass, per peterv.

Chunk 10

pass, per peterv.

Chunk 11

pass, per peterv.

Chunk 12

pass, per peterv.

Chunk 13

pass, per peterv.

Chunk 14

pass, per peterv.

Chunk 15

pass, per peterv.

Chunk 16

pass

was: * 1907 INFO TEST-START | /tests/dom/tests/mochitest/localstorage/test_localStorageOriginsDiff.html
Compartment mismatch 0x105d5cc00 vs. 0x10640ec00
Assertion failure: compartment mismatched, at /src/mozilla/tracemonkey/js/src/jscntxtinlines.h:515 -- fixed

Chunk 17

pass, 573 tests (sloooooooooow to run)

Chunk 18

pass, 5073 tests

Chunk 19

pass

Chunk 20

pass, 17850 tests, with the exception of the passwrd manager failures listed up top.