Difference between revisions of "Project Fission"

From MozillaWiki
Jump to: navigation, search
m (Project planning: Remove obsolete dashboard link)
(Refresh the Fission project wiki)
Line 1: Line 1:
=Project Fission=
+
Fission is the Mozilla's project to implement Firefox site isolation: third-party iframes will be loaded in separate processes, safely sandboxed from the web page's content process. The primary motivation is to protect against side-channel attacks like Spectre and Meltdown.
  
Project Fission is the project name for revamping and strengthening the architecture of Firefox browser.
+
= Contact =
  
==Project planning==
+
The Fission team is standing by, ready to answer your questions in the [https://chat.mozilla.org/#/room/#fission:mozilla.org #fission channel on Matrix].
  
Project Fission is a Cross Functional engineering effort across the Platform organization.
+
= Reporting Bugs =
  
[https://bugzilla.mozilla.org/show_bug.cgi?id=fission Primary Meta bug - Bug 1432593 - (meta) Project Fission]
+
To file a Fission bug in Bugzilla, [https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&bug_type=defect&short_desc=%5bFission%5d&blocked=fission-dogfooding 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. Or
  
==M4 goals==
+
* Fission meta {{bug|1451850}}
{| class="wikitable"
+
 
|-
+
= Known Issues =
! Task !! Name
+
 
|-
+
* Some extensions might not work fully. But please file bugs for any of these issues!
| All Mochitests running and passing in central (unrelated to session history or other long-term ongoing projects) || Kris Maglione, Andrew McCreight, Kashav Madan
+
* Some DevTools issues debugging Fission tabs
|-
+
* Some video player issues on YouTube and Twitch
| All non-fission tests passing in ‘ash’ || Peter Van Der Beken, Olli Pettay
+
* Session restore does not restore page zoom level.
|-
+
* Duo 2FA passcode input may not work, but Duo Push works correctly.
| All Reftests with fission passing on central || Jonathan Watt
+
 
|-
+
= Enabling Fission =
| WindowProxy transplanting || Andrew McCreight
+
 
|-
+
Fission is only supported in the Firefox Nightly channel and requires WebRender be enabled.
| DocumentChannel & Process switching || Matt Woodrow, Jean-Yves Avenard
+
 
|-
+
1. Enable the “fission.autostart” and “gfx.webrender.all” prefs in Nightly. Do not change any other “fission.*” prefs!
| Make history navigations asynchronous || Olli Pettay
+
2. Restart Nightly.
|-
+
2. You can verify Fission is enabled by looking for “[F]” in the page title tooltip when you mouse over a tab.
| Screenshot platform API || Matt Woodrow
+
When Fission is enabled, you can open a non-Fission window using the “File > New Non-Fission Window” menu item. This is handy for testing whether a bug is specific to Fission or not.
|-
+
To disable Fission, reset the “fission.autostart” pref to “false” and restart Nightly.
| The 'load' event should wait for OOP-iframes to load || Jonathan Watt
+
 
|-
+
= Milestones =
| BrowsingContextGroup actors || Andreas Farre
 
|-
 
| Kickoff: Replace nsIDocShellTreeItem with BrowsingContext || Kannan Vijayan
 
|-
 
| Kickoff: Make session history IPC async || Olli Pettay, Anny Gakhokidze
 
|-
 
| Make it clear that methods which won't work past Fission are process-bound || Kannan Vijayan
 
|-
 
| Convert content-sessionStore to C++ || Alphan Chen
 
|-
 
| Convert SessionHistoryListener to C++ || Alphan Chen
 
|-
 
| Make the audio/video controls Fission-aware || Abdoulaye Oumar Ly
 
|-
 
| Make the fullscreen code Fission-aware || Abdoulaye Oumar Ly
 
|-
 
|  Make Plugin Click-to-Play Fission-aware || Gijs Kruitbosch
 
|-
 
|  Make 'Find in page' work in fission world || Neil Deakin
 
|-
 
|  Make Login Manager fission-compatible || Neil Deakin
 
|-
 
|  Make RemotePrompt Fission-compatible || Mike Conley
 
|-
 
| Make DateTimePicker Fission-aware || Abdoulaye Oumar Ly
 
|-
 
| Add browser tests for a11y tree and events on OOP iframes || James Teh
 
|}
 
  
==Team==
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Role !! Name
+
! Milestone !! Description !! Date
|-
 
| Engineering Project Manager || Ron Manning
 
|-
 
| Product Manager || Mike Conca
 
|-
 
| Project Tech Lead || Nika Layzell
 
|-
 
| Accessibility Lead || James Teh
 
|-
 
| DevTools Engineering || Alexandre Poirot
 
|-
 
| DevTools Engineering || Yulia Startsev
 
|-
 
| DOM Engineering Manager || Neha Kochar
 
|-
 
| DOM Engineering || Alphan Chen
 
|-
 
| DOM Engineering || Andreas Farre
 
|-
 
| DOM Engineering || Andrew McCreight
 
|-
 
| DOM Engineering || Anny Gakhokidze
 
 
|-
 
|-
| DOM Engineering || John Dai
+
| M1 || OOP iframe framework || 2019-02-28
 
|-
 
|-
| DOM Engineering || Kashav Madan
+
| M2 || Semi-functional OOP iframe|| 2019-05-06
 
|-
 
|-
| DOM Engineering || Kannan Vijayan
+
| M3 || Whistler All Hands demo|| 2019-06-26
 
|-
 
|-
| DOM Engineering || Kris Maglione
+
| M4 || 90% of mochitests are passing || 2019-11-12
 
|-
 
|-
| DOM Engineering || Peter Van Der Beken
+
| M4.1 || 100% of mochitests are passing || TBD
 
|-
 
|-
| DOM Engineering || Henri Sivonen
+
| M5 || Fission is dogfoodable (internal Fx user testing) || 2020 ~Q3
 
|-
 
|-
| FrontEnd  Engineering || Mike Conley
+
| M6 || Enable in Nightly on desktop (X% rollout) || TBD
 
|-
 
|-
| FrontEnd  Engineering || Neil Deakin
+
| M7 || Enable in Beta on desktop (X% rollout) || TBD
 
|-
 
|-
| Graphics Engineering || Matt Woodrow
+
| MVP || Enable in Release on desktop (X% rollout) || TBD
 
|-
 
|-
| Graphics Engineering || Jean-Yves Avenard
+
| - || Start work on Android Fission || ~2021
|-
 
| Memshrink Lead || Eric Rahm
 
|-
 
| Memshrink Engineering || Kris Maglione
 
|-
 
| Layout Engineering || Jonathan Watt
 
|-
 
| Media and WebRTC Lead || Nils Ohlmeier
 
|-
 
| Necko Engineering || Valentin Gosu
 
|-
 
| Necko Engineering || Dragana Damjanovic
 
|-
 
| Office-of-CTO Consultant || Boris Zbarsky
 
|-
 
| Security Lead || Tom Ritter
 
|-
 
| Standards Lead || Anne van Kesteren
 
 
|}
 
|}
  
== Sub-pages ==
+
= Sub-pages =
  
 
* [[Project Fission/Memory|Memory]]
 
* [[Project Fission/Memory|Memory]]
Line 131: Line 62:
 
* [[Project_Fission/Enabling_Tests_with_Fission|Enabling Tests with Fission]]
 
* [[Project_Fission/Enabling_Tests_with_Fission|Enabling Tests with Fission]]
 
* [[Project Fission/DocShell_Tree_Replace|Fix out-of-process uses of DocShell tree and nsIDocShellTreeItem]]
 
* [[Project Fission/DocShell_Tree_Replace|Fix out-of-process uses of DocShell tree and nsIDocShellTreeItem]]
 
===Find us on Slack===
 
* #fission
 
* [https://docs.google.com/spreadsheets/d/1jwYDrq0FDD0qNEN_-SXxgOAtaj15hGfH4Xna1v4qrec/edit#gid=705986634 RASCI (Mozilla only)]
 

Revision as of 22:05, 1 April 2020

Fission is the Mozilla's project to implement Firefox site isolation: third-party iframes will be loaded in separate processes, safely sandboxed from the web page's content process. The primary motivation is to protect against side-channel attacks like Spectre and Meltdown.

Contact

The Fission team is standing by, ready to answer your questions in the #fission channel on Matrix.

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. Or

Known Issues

  • Some extensions might not work fully. But please file bugs for any of these issues!
  • Some DevTools issues debugging Fission tabs
  • Some video player issues on YouTube and Twitch
  • Session restore does not restore page zoom level.
  • Duo 2FA passcode input may not work, but Duo Push works correctly.

Enabling Fission

Fission is only supported in the Firefox Nightly channel and requires WebRender be enabled.

1. Enable the “fission.autostart” and “gfx.webrender.all” prefs in Nightly. Do not change any other “fission.*” prefs! 2. Restart Nightly. 2. You can verify Fission is enabled by looking for “[F]” in the page title tooltip when you mouse over a tab. When Fission is enabled, you can open a non-Fission window using the “File > New Non-Fission Window” menu item. This is handy for testing whether a bug is specific to Fission or not. To disable Fission, reset the “fission.autostart” pref 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 ~Q3
M6 Enable in Nightly on desktop (X% rollout) TBD
M7 Enable in Beta on desktop (X% rollout) TBD
MVP Enable in Release on desktop (X% rollout) TBD
- Start work on Android Fission ~2021

Sub-pages