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
bug 599762 (js::ctypes::CClosure::ClosureStub), landed
bug 600022 (XPCShellEnvironment::Init()), landed
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), backed out, fixed, landed
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
- XPCSafeJSObjectWrapper::WrapObject() fails
- Error hacks?
- XPCNW holder objects vs JS_ClearScope()
- IndexedDB and DOM worker tests, need cross compartment structured clone (jorendorff/bent)
FIXED issues:
- Location object
- nsJSContext::BindCompiledEventHandler(), target and funobj from
- Components.utils.import() from non-chrome code.
- DocShell navigation tests
- XPCNativeWrapper.unwrap() different compartments
failing tests:
http://mochi.test:8888/tests/dom/tests/mochitest/ajax/offline/test_updatingManifest.html http://mochi.test:8888/tests/dom/tests/mochitest/bugs/test_bug396843.html http://mochi.test:8888/tests/dom/src/tests/threads/test/test_json.html (crash in js engine code)
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
Make chrome tests:
http://mochi.test:8888/tests/js/src/xpconnect/tests/mochitest/test_cows.html /tests/js/src/xpconnect/tests/mochitest/test_bug484459.html (XPCSafeJSObjectWrapper) /tests/js/src/xpconnect/tests/mochitest/test_wrappers.html (XPCSafeJSObjectWrapper)
Chunk 1
pass, 22848 tests
Chunk 2
pass
Chunk 3
pass
Chunk 4
pass, 19244 tests
Chunk 5
pass, with the exception of the tests listed above (two worker tests).
Chunk 6
fail, 4701 tests. 12 failures, all listed up top.
Chunk 7
pass, 194 tests
Chunk 8
pass, 346 tests
Chunk 9
pass, 159 tests
Chunk 10
pass, 396 tests
Chunk 11
pass, 234 tests
Chunk 12
pass, ~300ish tests
Chunk 13
pass, 458 tests
Chunk 14
pass, 482 tests
Chunk 15
pass, 491 tests
Chunk 16
gets stuck on test_postMessage.html. Used to pass :(
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.
Mochichrome
35 failing tests, in these files:
chrome://mochikit/content/chrome/docshell/test/chrome/test_bug454235.xul chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_bug500931.xul chrome://mochikit/content/chrome/js/src/xpconnect/tests/chrome/test_evalInSandbox.xul chrome://mochikit/content/chrome/layout/base/test/chrome/test_printpreview.xul chrome://mochikit/content/chrome/toolkit/content/tests/chrome/test_browser_drop.xul chrome://mochikit/content/chrome/widget/tests/test_input_events_on_deactive_window.xul