Project Fission/Enabling Tests with Fission
Enabling Tests with Fission
The Mochitests that are not working with Fission enabled have been annotated with either "skip-if = fission" or "fail-if = fission". Both of these cases need to be fixed.
- To run a mochitest with Fission enabled locally, use --enable-fission with mach test. If the test is marked as a "fail-if" however, then you also need to disable that annotation. Otherwise, the test will report a false success (resulting from an expected fail). The skipped tests do not need this extra step.
- SpecialPowers.useRemoteSubframes can be used to check if Fission is enabled from a mochitest. In browser mochitests, use gFissionBrowser.
- SpecialPowers.spawn() is typically used when you have a cross-process iframe and you need to interact with it in some way that is not supported cross-process. In such a case, one can use SpecialPowers.spawn() to send a script over to the process of the iframe to assert and/or return a value.
- If a test complains that the remote type is “webIsolated=<some URI>”, but it expected “web”, then you can use E10SUtils.isWebRemoteType() instead to check the remote type (added in bug 1574543).
- Some XPConnect and bindings related tests check that cross-origin operations fail. With Fission, they will fail, but in a different way. These tests can be changed to use http://test1.mochi.test:8888/ (instead of, say, example.org) so that they will be cross-origin but still same-process even with Fission. See bug 1572895. It would probably be good to also check the cross-origin, out-of-process case.
- SpecialPowers push and pop for prefs have been fixed to work with Fission, but the equivalent methods for permissions have not been.
- If the test failure cause is a shutdown hang, leak or crash, reach out to the DOM Fission team, as this is a known Fission issue.