Project Fission

From MozillaWiki
Revision as of 01:29, 23 July 2020 by Nkochar (talk | contribs) (edited summary)

Jump to: navigation, search

Fission is Mozilla's project to implement Firefox site isolation. This introduces a major architecture change in Firefox such that a unique process is allocated for the main web page and for each unique third-party iframe embedded in it, thereby safely sandboxing them and further strengthening Firefox security.

Contact

The Fission team is standing by, ready to answer your questions in the #fission:mozilla.org room on Mozilla's Matrix server.

Reporting Bugs

To file a Fission bug in Bugzilla, click here to use this Fission bug template. Or file a bug and include the word “Fission” in the bug summary. The Fission team’s bug triage will find the bug, regardless of which Bugzilla component you file it in.

Known Issues

  • Some extensions might not work fully. But please file bugs for any of these issues!
  • Some video player issues on YouTube and Twitch. (bug 1619370, bug 1620341)
  • Cross-site iframes appear empty when printed.
  • Cross-site iframes appear empty in screenshots.
  • Documents with cross-site iframes cannot enter the BFCache.
  • Session history is not tracked for cross-site iframes.
  • Session restore occasionally fails to restore page state, such as page zoom, scroll offset, or form data.
  • DevTools support for cross-site iframes with fission is incomplete.
  • Attempting to debug extensions or workers from a non-fission window can cause crashes.
  • Resource exhaustion issues with large tab counts, including:
    • Excessive memory usage
    • File descriptor exhaustion issues
    • X11 connection exhaustion on Linux
  • Picture-in-Picture doesn't work on cross-origin iframes (bug 1575868)

Enabling Fission

A "[F]" in a loaded tab's tooltip indicates that Fission is enabled

Fission is still in active development, and can only be enabled in Firefox Nightly.

  1. Enable the "fission.autostart" pref in Nightly using about:config. No need to edit any other "fission.*" prefs.
  2. Restart Nightly.

You can verify that Fission has been enabled by hovering over a loaded tab. If the tooltip contains a "[F]", Fission is enabled.

Disabling Fission

Opening a new non-fission window

If you encounter an issue while using Fission, it is possible to open a non-fission window within the same browsing session using the "New Non-Fission Window" item in the hamburger menu. This can be useful to determine if issues are Fission-specific, or to work around fission-specific breakage.

To disable Fission completely, reset the "fission.autostart" pref back to "false" and restart Nightly.

Milestones

Milestone Description Date
M1 OOP iframe framework 2019-02-28
M2 Semi-functional OOP iframe 2019-05-06
M3 Whistler All Hands demo 2019-06-26
M4 90% of mochitests are passing 2019-11-12
M4.1 100% of mochitests are passing TBD
M5 Fission is dogfoodable (internal Fx user testing) 2020-05-29
M6 Enable in Nightly on desktop (X% rollout) 2020 H2
M7 Enable in Beta on desktop (X% rollout) 2020 Q4
MVP Enable in Release on desktop (X% rollout) 2021 H1
- Start work on Android Fission 2021 H1

Sub-pages