Hello Colleagues!

Now that we’ve passed All-Hands it’s time for another Fission
newsletter. To begin with the Fission team wants to thank all who came
to the introduction and the office hours! The slides from the
introduction are available online[1].

Our currently targeted milestones are M4.1, M5 and M6.

M4.1 contains Mochitests that we rolled over from M4 after we reached
our goal of 90% completion. We are currently halfway done, and the
remaining are targeted for March 2020. The total count of remaining
open bugs have dropped from 54 to 44 since the last newsletter. You
can follow the burndown at https://arewefissionyet.com/m4/. The
remaining issues are spread out over 15+ components, so just a
reminder: component owners, not the DOM Fission team, are responsible
for making their component’s tests Fission-compatible!

M5 is also in progress with an ETA of March 2020, after which we
expect to be able to ask you all to join in and help us out with
dogfooding Fission. The ratio between opened and total bugs has
progressed from 56% (123/218 bugs) to 73% (167/227 bugs). The burndown
of M5 is at https://arewefissionyet.com/m5/.

M6 is our Fission feature complete milestone when we are ready to
enable Fission by default in Nightly (starting with some A/B
experiments of stability and performance).

WindowContext

Since the last newsletter we’ve managed to land WindowContext, a
synced context similar to BrowsingContext but with a different scope
and life-cycle. The major difference being that BrowsingContexts
survive across navigations (in the general case, not considering COOP
e.g.) but WindowContexts do not. The same relationship can be seen in
nsDocShell - Document, and nsGlobalWindowOuter - nsGlobalWindowInner.
With WindowContext we get a way to keep track of the context tied to
the document across content processes in the same way that
BrowsingContext allowed us to keep track of the context tied to
document shells across content processes.

How to check if Fission is enabled

One thing that we thought we’d bring up is how code can check if
Fission is enabled if you’re adding Fission compatibility that you
expect not to be turned on until Fission ships. The key thing to take
away is that you should not read the pref (“fission.autostart”, which
is used to start content processes with Fission enabled)! Instead you
should check if the load context uses remote sub-frames. Non-Fission
tabs may exist, even if the “fission.autostart” global pref is true.

In tests SpecialPowers.useRemoteSubframes[5] can be used to check if
Fission is enabled from a mochitest. In browser mochitests, use
gFissionBrowser. Otherwise you want to check the load context found on
the docshell, which also has a check for if remote subframes should be
used.

We’re removing <iframe mozbrowser>[2,3]

This is in its initial phase, but is still cause for celebration!

How to reach the Fission team

As always you can find us at #fission in Slack and on Fission in Riot[4]

[1] 
https://docs.google.com/presentation/d/1K4j6ngty64TZjJNS5qH-MBoOm3TI2dJedVsbH8jUhKE
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1614462
[3] 
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-mozbrowser
[4] https://chat.mozilla.org/#/room/#fission:mozilla.org
[5] 
https://searchfox.org/mozilla-central/rev/96f1457323cc598a36f5701f8e67aedaf97acfcf/docshell/base/nsILoadContext.idl#87
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to