Hello Colleagues! It has been around 3 months since the last Fission newsletter so there have been lots of accomplishments.
We are currently dogfooding Fission within an audience that includes #Nightly from Matrix. And, according to this telemetry probe[1] about 0.8% of Nightly users (about 400 people) have Fission enabled! It’s important to note that at the moment HTTP/HTTPS mixed content blocking does not work in Fission, so you may want to avoid browsing sensitive websites (e.g. your bank’s website) with Fission enabled. However, we are adding support for it very soon in bug 1584157. Performance * We now have a Fission performance dashboard at https://health.graphics/fission * Initial version of about:processes has landed in bug 1632794. about:processes is supposed to be an internal tool for Firefox engineers to inspect browser processes and see a mapping between processes and origins. The meta bug for this tool is bug 1628531. * In e10s mode we have prestarted processes available for use when starting a browser and navigating to an initial page. We have now added a preallocation cache for Fission processes in bug 1602757. Document Channel * The parent process is now able to request a load in a content docshell, which led to nice performance improvements as seen here[2]. * DocumentChannel can now be used for loading a URI in a docshell that lives in the parent process. * DocumentChannel has been enabled on GeckoView, but it does not do any process switches. Devtools & a11y * Responsive Design Mode (RDM) is now Fission-compatible, and was enabled in bug 1621306. * JS Context Selector has been added to the Browser Toolbox and enabled by default. This allows you to evaluate console input against any debuggable target (it defaults to parent process, but you can select any content process or any worker), as shown in the GIF here[3]. You can also select and evaluate nodes within its window using the console. Note that the context will automatically change as you select different elements in the DOM Inspector, see the GIF here[4]. * Support has been added for four screen readers: NVDA and JAWS on Windows, and Orca on Linux and VoiceOver on macOS. There have been no issues revealed during initial dogfooding with NVDA. There might be some follow-up work required for macOS as accessibility support for it is still in development (regardless of Fission). Besides adding more accessibility tests, there is now hit testing as well, which previously did not exist even for e10s. * The accessibility panel now supports navigation into out-of-process frames. Inspecting accessibility properties from the browser context menu and DOM Inspector works now as well. Front end * The privileged about content process has been enabled in bug 1513045 and is riding out to release! This puts about:home, about:newtab and about:welcome in their own separate content process. * Recall that we have added JSWindowActors as a replacement for frame scripts. We’re now working on a new type of JSActor to replace process scripts. These JSProcessActors are for 1:1 communication between a child process and the parent process. More documentation on this is landing in bug 1635061. * Over 80% of our frame scripts and message manager consumers have been converted to JSWindowActors! Parent process owning Session History * Recall that previously, with a session-history-in-parent pref enabled, session history data was stored in the parent process and content process used sync IPC to retrieve data from the parent process. * We have now removed synchronous session history IPC messages and landed the initial framework for new session history APIs in bug 1570255. Whenever we are loading a new session history entry, the parent process will send session history information for a load to the content process, and nsDocShell, upon finishing the load, will notify the parent (via IPC message HistoryCommit) with the id of the entry it loaded. In turn, CanonicalBrowsingContext keeps track of entries that are currently loading and of the entry that is currently the active one. As always you can find us at #fission in Slack and on Fission in Matrix[5]. Thanks to everyone who helped write this letter, - The Fission Team [1] https://telemetry.mozilla.org/new-pipeline/evo.html#!aggregates=EnabledByAutostart&cumulative=0&end_date=null&include_spill=0&keys=!__none__!__none__&max_channel_version=nightly%252F77&measure=WINDOW_REMOTE_SUBFRAMES_ENABLED_STATUS&min_channel_version=nightly%252F74&processType=*&product=Firefox&sanitize=1&sort_keys=submissions&start_date=null&trim=1&use_submission_date=0 [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1602318#c40 [3] https://gist.githubusercontent.com/ochameau/6be6d17bbef011a96be83e811b1abf46/raw/e1210f529ac82b463f609e6c5fb811392aea666b/js-context-selector.gif [4] https://gist.githubusercontent.com/ochameau/6be6d17bbef011a96be83e811b1abf46/raw/e1210f529ac82b463f609e6c5fb811392aea666b/js-context-selector-and-inspector.gif [5] https://chat.mozilla.org/#/room/#fission:mozilla.org _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform