Fission Newsletter #7

78 views
Skip to first unread message

Kashav Madan

unread,
Jun 30, 2020, 7:12:39 PM6/30/20
to dev-pl...@lists.mozilla.org, firef...@mozilla.org
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&regexp=true
[5] https://searchfox.org/mozilla-central/search?q=%28if%7Cand%29+fission.*%28FAIL%7CERROR%29&path=web-platform%2F**%2F*.ini&case=false&regexp=true
[6] https://searchfox.org/mozilla-central/search?q=%28skip%7Cfail%29-if+%3D.*xorigin&path=.ini&case=false&regexp=true
[7] https://mana.mozilla.org/wiki/x/R0EiBw#FissionReleaseCriteria-Tests
[8] https://firefox-source-docs.mozilla.org/dom/Fission.html#jsprocessactor
Reply all
Reply to author
Forward
0 new messages