119
edits
Changes
Updated entire page to reflect the H1 2022 Platform Roadmap
<section begin="summary" />{{RoadmapSummary
|icon=Tempicon.png
|pagelocation=Platform/Roadmap
|pagetitle=Firefox Platform 2015 H1 2022 Roadmap|owner=Martin BestAndrew Overholt|updated=December 2014March 2022|status=DraftComplete|description=This roadmap outlines the current direction for Firefox Platform development through 2015the first half of 2022. The following document is subject to change at anytime. It is also not a commitment to ship a features feature but rather an intent to implement and land them on by default in the nightly version of Firefox unless otherwise stated.}}
<section end="summary" />
Related Links:
* [https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Calendar]
* [https://wikifirefox-source-docs.mozilla.org/Platformcontributing/Roadmap2012 2012 Platform Roadmappocket-guide-shipping-firefox.html Pocket Guide: Shipping Firefox]
Programs and corresponding initiatives{| class="wikitable"|-! Program!! Initiative|- | rowspan=Teams14 colspan=1|APIs | Support Observable Array type in WebIDL|- | OffscreenCanvas|- | Investigate/prototype Container Queries|- | Client-side Print Support for Gsuite (Named Pages)|-Definition of Done | [https: All listed features are present in our nightly version of Firefox//tabatkins.github. io/specs/svg-params/#setting Investigate, Spec, Plan "Context-paint” for adding custom external colors to SVG icons]|- The features must then go through | [https://drafts.csswg.org/scroll-animations-1/ Scroll-linked animations (M2) Improve the standard quality assurance process before appearing in a release channelperformance and memory usage]|- | Get WebRTC 1.0 APIs up to specification|- | Prototype Largest Contentful Paint|- | [https://wicg.github.io/scheduling-apis/ Prototype Prioritized Task Scheduling API]|- | [https://github.com/WebAssembly/tail-call/blob/master/proposals/tail-call/Overview.md WASM: Implement Tail Call Proposal]|- | [https://streams.spec.whatwg.org/ Streams API]|- | Import Maps|- | [https://github.com/WebAssembly/exception-handling WASM: Exception Handling]|- | [https://github.com/tc39/proposal-intl-segmenter JavaScript Lang: Intl.Segmenter]|- | rowspan=4 colspan=1|Devtools | Console Panel Performance|- | Improve DevTools Debugger|- | [https://w3c.github.io/webdriver-bidi/ DevTools Remote Protocol / WebDriver BiDi]|- | DevTools: Prevent Accidental Use of F12|- | rowspan=1 colspan=Accessibility1|Engineering Efficiency | Implement most valuable release management bot enhancements|- | rowspan=4 colspan=1|Features | Bring Swipe-to-navigate to Windows|- | Bring Swipe-to-navigate to Linux|- | Support audio output device authorization|- | Support audio input device switching|-{ | classrowspan="wikitable" width1 colspan="100%"1|Internationalization (i18n) | Unify Segmentation|-! style | rowspan=12 colspan="text1|Performance | Accessibility Engine Improvements|- | Service Worker NavigationPreloadManager API|- | Service Worker performance improvements|- | Add GPU Accleration to Canvas2D|- | Improve SVG and Blob Image Rendering|- | Support Selective Shutdown of Audio Backend|-align | [https: center;" width: "50%;" //datatracker.ietf.org/doc/html/rfc8297 103 EarlyHints]|- | Understand how frequently users encounter adverse performance due to being low on memory|- | Find a way to aggressively unload pages with fast restoration|- | Improve profiler IPC markers|- | Collect CPU use information for the entire profiled processes and the entire system|- | Reduce profiler memory and CPU overhead when profiling many idle threads|- | Current Plans !! stylerowspan=15 colspan="text1|Quality | Run tests on Linux under Wayland|- | Fix top quality issues with PDF.js|-align: center;" width: "50%;" | Previous PlansAutomatic backfilling and retrying for test failures
|-
|-
|-
|-
|-
| style="vertical-align:top;" |* Parsing and Caching Optimization Shumway* ARM Mobile Opts - Support demo* Detailed GC jank Telemetry* ES6 Classes* SAB demo* SIMD.js demos* ARM 64 baseline on Intel* CGC Target release* JIT Frame for Profiler JIT Coach plumbing* Experimental SIMD.js for ASM.js on x86 only (Intel demo)* ES6 Generators JITted* ES6 Symbols ------ Items above done before or during Q1 ------* SIMD.js on ION Intel * GC/CC scheduling improvements * Shared Array Buffer v1* Research PGO* Enable the backtracking allocator for all Ion code* Improve web framework (Shumway/Ember/Angular) performance* ES6 let and const ------ Items above done before or during Q2 ------* ------ Items above planned Add static analysis to be done before or during Q3 ------* ------ Items above planned to be done before or during Q4 ------| style="vertical-align:top;" |* Parsing reduce unnecessary and Caching Optimization Shumway* ARM Mobile Opts - Support demo* Detailed GC jank Telemetry* ES6 Classes* SAB demo* SIMD.js demos* ARM 64 baseline on Intel* CGC Target release* JIT Frame for Profiler JIT Coach plumbing* Experimental SIMD.js for ASM.js on x86 only (Intel demo)* ES6 Generators JITted* ES6 Symbols ------ Items above planned to be done before or during Gecko 39 (Q1) ------* SIMD.js on ION Intel * GC/CC scheduling improvements * Shared Array Buffer v1* Research PGO* Enable the backtracking allocator for all Ion code* Improve web framework (Shumway/Ember/Angular) performance* ES6 let and const ------ Items above planned to be done before or during Gecko 42 (Q2) ------* JS team reduce jank (GC tuning)* SIMD.js on ION ARM ------ Items above planned to be done before or during Gecko 45 (End 2015) ------|} ==Layout== {| class="wikitable" width="100%"! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plansexpensive headers
|-
|-
|-
|-
|-
|-
|-
|-
| stylerowspan="vertical-align:top;" |* Rewrite SDP/JSEP and add BUNDLE support* Multistream, renegotiation support* VP9 codec support in WebRTC - pref'd off by default* Web Audio and WebRTC working well together * OpenH264 for Android supported (no sandbox) ------ Items above done before or during Q1 ------* e10s blocker problems fixed* Web Audio performance improvements - phase 1: significant perf wins on all benchmarks* ICE TCP support landed in Nightly - pref'd off* IPv6 support landed in Nightly* Initial Identity support landed in Nightly* WebRTC fully integrated with Web Audio: Web Audio can now feed a PeerConnection and receive audio back from that PC ------ Items above done before or during Q2 ------* Capturing video from a canvas (pref'd on)* Ability to change camera resolution with MediaStreamTrack.applyConstraint* Simulcast - phase colspan=1: largely focused on signaling and spec work** We chose not to land it, but it was essential for setting us up for landing simulcast in Nightly in Q4* Audio/Video refactor - paving the way for Full Duplex support and for resolving existing audio/video stack shortcomings* Web Audio performance improvements shipping in Firefox 44* IPV6 support shipping in Firefox 42|Stability ------ Items above done before or during Q3 ------* Simulcast support (as described in the IETF spec proposal) landed in Nightly* Full duplex audio support on Windows landed in Nightly** stretch goal: land full duplex audio support for a second platform (likely Mac)* New Delay Agnostic AEC landed in Nightly* Media Stream add/remove track, constructors, and clone landed in Nightly (big part of spec compliance goal)* ICE TCP pref'd on in Nightly ------ Items above planned to be done before or during Q4 ------* VP9 support in WebRTC pref'd | GPU Process Support on by default (may or may not be the preferred codec when we pref on)* Full duplex audio support on all platforms* Add support for audio output selection * Pref on support for audio sharing (when there is audio to share during screen/window/etc sharing)* Finish stereo support in PeerConnection * Considerably better NAT traversal (including ICE proxy and UPnP support) * Audio Workers (dependent on achieving working group consensus)* Data Channels in Workers (dependent on achieving working group consensus)* Compliant with "v1.0" (or equivalent) of the WebRTC spec** Finish implementation of MediaStreamTrack constraints* getUserMedia and audio output sandboxing working (support sandboxing team, audio sandboxing may be a stretch for end of year) | style="vertical-align:top;" |* Rewrite SDP/JSEP and add BUNDLE support* Multistream, renegotiation support* VP9 codec support in WebRTC - pref'd off by default* Web Audio and WebRTC working well together* OpenH264 for Android supported (no sandbox) ------ Items above done before or during Q1 ------* e10s blocker problems fixed* Web Audio performance improvements - phase 1: significant perf wins on all benchmarks* ICE TCP support - pref'd off* IPv6 support* Initial Identity support* WebRTC fully integrated with Web Audio: Web Audio can now feed a PeerConnection and receive audio back from that PC ------ Items above done before or during Q2 ------* Add support for audio sharing (when there is audio to share during screen/window/etc sharing)** landing pref'd off in Fx42** pref on before the end of the quarter* ICE TCP support - pref'd on* Simulcast - phase 1: largely focused on signaling (new SDP work, modifying the SDP helper code)* Audio/Video refactor - phase 1: paving the way for Full Duplex support and for resolving existing audio/video stack shortcomings* Web Audio perf - phase 2** resolve remaining bugs on the web audio perf meta bug** identify if there are any games (as of the start of Q3) that must work well by the end of Q3 on a specific (targeted) device that do not currently work well enough and then deliver the performance needed ------ Items above planned to be done before or during Q3 ------* Simulcast support (as described in the IETF spec proposal) landed in Nightly* Audio/Video refactor - phase 2 (second of an estimated three phases)* Considerably better NAT traversal (including ICE proxy and UPnP support)* Audio Workers (dependent on achieving working group consensus)* Data Channels in Workers (dependent on achieving working group consensus)* Significant improvements toward spec compliance (full spec compliance with "v1.0" coming in 2016) ------ Items above planned to be done before or during Q4 ------* Full duplex audio support* Audio output selection* Compliant with "v1.0" (or equivalent) of the WebRTC spec* getUserMedia and audio output sandboxing working (support sandboxing team)|} ==Web Compatibility== {| class="wikitable" width="100%"! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|}
[[Category:Roadmaps]]