Hello! Welcome to the June edition of the Fission newsletter — it’s been about a month since the last newsletter, and we have news to share!
We’ve begun publicly dogfooding Fission, and about 2% of our Nightly users are currently running with Fission enabled[1]. We’re looking for more testers! The experience should largely be the same as running without Fission enabled, but we’re interested in hearing about any bugs or stability issues that you come across. If you’re ready to take the plunge, Nika sent out a call-for-dogfooding earlier this month with instructions on enabling Fission and filing bugs[2]. Milestones & Tests After completing the M5 milestone around the end of May, the team is now targeting the M6 milestone (currently split into M6a, M6b, and M6c)[3]. These milestones consist of bugs that prevent us from enabling Fission for Nightly users. We’re asking teams to go through these lists and prioritize bugs belonging to their components. We’ve made a ton of progress on fixing tests to work with Fission, but there are still many that need to be looked at. These tests mostly fall under the fission-mochitests metabug[4] and the WPT-Fis metabug[5]. Once again, we’re asking component owners to go through these lists and prioritize this work accordingly. We’ve also begun working on a new test configuration which will allow us to run each mochitest in a cross-site frame. Tests that are failing under this configuration have been annotated with an “xorigin” skip/fail condition[6]. There’s still some work remaining to be done here, so we’ll be sending out another email in the coming weeks with more details about how to run/debug/fix these tests. If you’re interested in seeing which Fission tests are currently being run on automation, we have a detailed (work-in-progress) matrix on Mana which breaks down the various test configurations by build/platform/repository[7]. Performance * The content process pre-allocation cache, which landed in bug 1602757, is riding the trains to release! This came with big wins for some Raptor (page load) tests. * We’ve continued work on the about:processes page. This can be used to inspect browser processes and see a mapping between processes and origins. If you have Fission enabled, you should notice a “webIsolated” process for each unique origin that is loaded. * By definition, Fission will result in an increased number of active content processes for a given session. This means that the memory overhead of a single content process needs to be as little as possible. We’ve begun looking at reducing this memory overhead (see the memshrink-content metabug), and will have more formal plans about this in the future. If you’re aware of any easy memory wins in code you’ve written, you should file something blocking that metabug. Document Channel & Process Switching * Bug 1640019 added support to DocumentLoadListener for process switching toplevel loads outside of tabbrowser. * We’re continuing to expand the list of protocols and about: pages that go through DocumentChannel (e.g., about:home/about:newtab, object/embed elements, srcdoc, etc). * Bug 1550571 attempted to pref-on ‘fission.preserve_browsing_contexts’, which enables some Fission navigation code in non-Fission mode. This ended up exposing some broken behaviour when navigating between things like file: and http(s): URLs in the same tab. This is currently not riding the trains, but there are plans to re-enable this in the future. Security * The Mixed Content Blocker was fixed to work with Fission in bug 1584157. This was previously the largest bug blocking Fission from being fully-dogfoodable. This work involved moving much of the blocker’s state (e.g., the security UI) and functionality (e.g., content security checks) to the parent process. Frontend * The privileged about content process has shipped to release. This puts a number of about: pages (about:blank, about:logins, about:protections, etc.) into their own separate content process. These show up as "privilegedabout" processes in about:processes. * JSProcessActors have been added as a replacement for process scripts[8]. This is the preferred method for communication between a child process and a parent process. Bug 1644795 will make it easier to register a JSProcessActor pair across various ContentParents. Devtools * We now enable using the Content Toolbox with Fission out-of-process frames by default. This feature previously required manually toggling the ‘devtools.contenttoolbox.fission’ pref and is known to be a little buggy. New bugs should be filed against the appropriate dt-fission sub-metabug. Extensions * Bug 1587541 enabled content scripts for out-of-process frames. There are some known issues, but extensions should now mostly work with Fission. We invite people to test that their extensions are working as expected, and file bugs if not. These can be filed against the fission-webext metabug. Thanks for reading! For the most up-to-date information on the state of Fission, check the wiki at https://wiki.mozilla.org/Project_Fission. As always you can find us in #fission on Slack or Matrix. [1] https://mzl.la/37PP4NY [2] https://groups.google.com/forum/#!topic/mozilla.dev.platform/vPby-nEugJY [3] https://mzl.la/3eFxxuv, https://mzl.la/383hR1y, https://mzl.la/3eJ7wL2, https://mzl.la/3eELjNX [4] https://searchfox.org/mozilla-central/search?q=%28skip%7Cfail%29-if+%3D.*fission&path=.ini&case=false®exp=true [5] https://searchfox.org/mozilla-central/search?q=%28if%7Cand%29+fission.*%28FAIL%7CERROR%29&path=web-platform%2F**%2F*.ini&case=false®exp=true [6] https://searchfox.org/mozilla-central/search?q=%28skip%7Cfail%29-if+%3D.*xorigin&path=.ini&case=false®exp=true [7] https://mana.mozilla.org/wiki/x/R0EiBw#FissionReleaseCriteria-Tests [8] https://firefox-source-docs.mozilla.org/dom/Fission.html#jsprocessactor _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform