Platform/Roadmap: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(minor edits to sample)
(Updated entire page to reflect the H1 2022 Platform Roadmap)
Line 1: Line 1:
{{outdated}}
<section begin="summary" />{{RoadmapSummary
<section begin="summary" />{{RoadmapSummary
|icon=Tempicon.png
|icon=Tempicon.png
|pagelocation=Platform/Roadmap
|pagelocation=Platform/Roadmap
|pagetitle=Firefox Platform 2015 Roadmap
|pagetitle=Firefox Platform H1 2022 Roadmap
|owner=Martin Best
|owner=Andrew Overholt
|updated=December 2014
|updated=March 2022
|status=Draft
|status=Complete
|description=This roadmap outlines the current direction for Firefox Platform development through 2015.  The following document is subject to change at anytime.  It is also not a commitment to ship a features but rather an intent to implement and land them on by default in the nightly version of Firefox unless otherwise stated.}}
|description=This roadmap outlines the current direction for Firefox Platform development through the first half of 2022.  The following document is subject to change at anytime.  It is also not a commitment to ship a 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" />  
<section end="summary" />  


Related Links:
Related Links:
* [https://groups.google.com/forum/#!topic/mozilla.dev.platform/mHqE7QmHeqQ Firefox Desktop Q1 2015 Areas of Focus Post]
* [https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Calendar]
* [https://wiki.mozilla.org/RapidRelease/Calendar Firefox Release Calendar]
* [https://wiki.mozilla.org/Platform/Roadmap2012 2012 Platform Roadmap]
* [https://firefox-source-docs.mozilla.org/contributing/pocket-guide-shipping-firefox.html Pocket Guide: Shipping Firefox]


 
Programs and corresponding initiatives
=Teams=
{| class="wikitable"
 
|-
Definition of Done: All listed features are present in our nightly version of FirefoxThe features must then go through the standard quality assurance process before appearing in a release channel.
! Program!! Initiative
 
|-
==Accessibility==
| rowspan=14 colspan=1|APIs
 
| Support Observable Array type in WebIDL
{| class="wikitable" width="100%"
|-
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
| OffscreenCanvas
|-
| Investigate/prototype Container Queries
|-
| Client-side Print Support for Gsuite (Named Pages)
|-
| [https://tabatkins.github.io/specs/svg-params/#setting Investigate, Spec, Plan "Context-paint” for adding custom external colors to SVG icons]
|-
  | [https://drafts.csswg.org/scroll-animations-1/ Scroll-linked animations (M2) Improve the performance 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=1|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
|-
| rowspan=1 colspan=1|Internationalization (i18n)
| Unify Segmentation
|-
| rowspan=12 colspan=1|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
|-
| [https://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
|-
| rowspan=15 colspan=1|Quality
| Run tests on Linux under Wayland
|-
| Fix top quality issues with PDF.js
|-
| Automatic backfilling and retrying for test failures
|-
|-
| style="vertical-align:top;" |
  | Use test selection results to speed up sheriffs' decisions or partly automate them
------ Items above done before or during Q1 ------
* FFOS Lightsaber v1.0 engineering support
* Enable marionette a11y checks in Gaia Integration tests.
* Ensure iOS is VoiceOver ready.
------ Items above done before or during Q2 ------
* Enable marionette a11y checks in Gaia Integration tests.
* Accessibility Dev Tool (prototype)
------ Items above planned to be done before or during Q3 ------
* Webspeech TTS hookup on Windows
  ------ Items above planned to be done before or during Q4 ------
* Accessibility support for E10s. (targeting Gecko 44 TBD)
* Ship Accessibility Dev Tool
* Web Facing Accessibility API (full proposal)
 
| style="vertical-align:top;" |
[everything below not finalized]
* Webspeech TTS hookup on Windows
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* Accessibility support for E10s. (targeting Gecko 42 TBD)
* FFOS Lightsaber v1.0 engineering support
* Enable marionette a11y checks in Gaia Integration tests.
* Accessibility Dev Tool
* Create accessibility inspection Developer Tool addon.
* Webspeech TTS hookup on Windows
* Ensure iOS is VoiceOver ready.
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* Accessibility Metrics
* Accessibility Training Materials
* Web Facing Accessibility API
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==DOM==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Build more automation around handling of intermittent tests
* Service Workers behind a pref
* IndexedDB in Workers
* Picture Tag
* requestSync (FxOS-only precursor to BackgroundSync)
* e10s (drag-and-drop, clipboard, leak detection and reporting)
* BroadcastChannel
  ------ Items above done before or during Q1 ------
* Web Manifest
* Screen Orientation API (''almost'' complete)
* Notification API in Workers
* Infrastructure for tab muting
* Fetch API
* Cache API
* MessagePort in Workers
------ Items above done before or during Q2 ------
* WebMIDI (preliminary; likely not fully shipping on any platform until Q4 at earliest)
* WebGL in Workers
* Pre-rendering API
* Shadow DOM (pending outcome of W3C WebApps WG F2F April 24)
* Custom Elements (pending outcome of W3C WebApps WG F2F April 24)
* Service Workers
* Web Push
------ Items above planned to be done before or during Q3 ------
* Streams API
------ Items above planned to be done before or during Q4 ------
 
| style="vertical-align:top;" |
* Service Workers behind a pref
* IndexedDB in Workers
* Picture Tag
* requestSync (FxOS-only precursor to BackgroundSync)
* e10s (drag-and-drop, clipboard, leak detection and reporting)
* BroadcastChannel
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* Pre-rendering API
* Shadow DOM (pending outcome of W3C WebApps WG F2F April 24)
* Custom Elements (pending outcome of W3C WebApps WG F2F April 24)
* Web Manifest
* WebGL in Workers
* Firefox OS application security model work
* Screen Orientation API
* WebMIDI
* Notification API in Workers
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* BackgroundSync
* Web Push
* Media Controls API
* localStorage + Quota Manager
* Image Resizing API
* FileSystem API
* Web Share primitive (towards Web Activities standardization)
* finish remaining WebIDL conversions
* JS-implemented plugins
* IndexedDB data change observer events
* Device Orientation Locking (any spec work; others doing implementation)
* MessagePort
* Remove appcache
* Directory upload
* DOM bits of Object.observe
* Get rid of DOM child array
* Web Audio in Workers
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==e10s==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Enable Cross Translation Unit (CTU) static analysis
 
* Milestone 4 completed in Gecko 38 ([http://is.gd/XKZkQ5 buglist])
* Milestone 5 completed in Gecko 38 ([http://is.gd/7MuzQK buglist])
* CPOW mitigation tools
 
------ Items above done before or during Q1 ------
 
* Milestone 6 completed ([http://is.gd/yOVr9r buglist])
* Milestone 7 completed ([http://is.gd/BNgUVN buglist])
* Default in Nightly 42
* Opt-in in Aurora 41
 
------ Items above done before or during Q2 ------
 
* Milestone 8 completed ([http://is.gd/jUNCg5 buglist])
* Addons: new extension api made available
* Removal of CPOW use from browser code
* Default in Aurora 42
* Opt-in in Beta 42
 
------ Items above planned to be done before or during Q3 ------
 
* Milestone 9 completed
* Default in Release 43
 
  ------ Items above planned to be done before or during Q4 ------
 
| style="vertical-align:top;" |
* Milestone 4 completed in Gecko 38 ([http://is.gd/XKZkQ5 buglist])
* Milestone 5 completed in Gecko 38 ([http://is.gd/7MuzQK buglist])
* CPOW mitigation tools
 
------ Items above planned to be done before or during Q1 ------
 
* Milestone 6 ([http://is.gd/yOVr9r buglist])
* Rollout to Aurora 40
* Milestone 7 completed ([http://is.gd/BNgUVN buglist])
 
------ Items above planned to be done before or during Q2 ------
 
* Milestone 8 completed ([http://is.gd/jUNCg5 buglist])
* Rollout to Beta 41
* Addon migration tools
 
------ Items above planned to be done before or during Q3 ------
 
* Rollout to Release
* milestone completion placeholder - additional milestones may be defined later in the year for winding the e10s project down.
 
------ Items above planned to be done before or during Q4 ------
 
|}
 
==Graphics==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Implement before/after/after_landing static analysis method
* (Q1 unchanged from the original plans)
* FirefoxOS GFX Device Support
* OMTC - Off Main Thread Compositing Windows
* e10s - Ship Electrolysis
* Project Silk
* Graphics - FirefoxOS Critical Memory Usage Reduction
* WebGL 2 Demo
* WebGL Desktop Performance
* Desktop OOM driver related issues
------ Items above done before or during Q1 ------
* WebWorkers WebGL support (added in April)
* Runtime HW testing (added in May, pushed some items down)
** Compositor success detection (to combine with video success detection)
** Additional telemetry for startup testing
** Crash detection and recovery during startup testing
* Tiling on Desktop - Removed in April. Currently not deemed as required for APZ and scrolling performance, so the priority dropped.
------ Items above done before or during Q2 ------
* APZ Fennec parity (added in June) - enable in 43, but do a double nightly, ride 44 train
* Desktop Scrolling Performance (postponed from Q2 in May)
* Overscroll Improvements - removed - no further work required
* Expose the graphics card details
* Update to the latest ANGLE (with initial WebGL2 support)
  ------ Items above planned to be done before or during Q3 ------
* APZ on Desktop - enabled in 42, do multiple nightlies only, ride 44 or 45 train, but only under E10S
* WebGL2 on par (target 46; goal added in June)
* WebGL Mobile Performance
* WebGL Performance Parity on Desktop - investigation stage
* Update to the latest Skia
------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* FirefoxOS GFX Device Support
* OMTC - Off Main Thread Compositing Windows
* e10s - Ship Electrolysis
* Project Silk
* Graphics - FirefoxOS Critical Memory Usage Reduction
* WebGL 2 Demo
* WebGL Desktop Performance
* Desktop OOM driver related issues
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* APZ on Desktop
* Tiling on Desktop
* Desktop Scrolling Performance
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* APZ - "fake overscroll"
* APZ - OOP iframe support
* Zooming-in Improvements
* Overscroll Improvements
* Expose the graphics card details
* WebGL Mobile Performance
* WebGL Performance Parity on Desktop
 
* APZ - "fake scroll" - removed - priority lowered
* APZ - OOP iframe support - removed - priority lowered
* Zooming-in Improvements - removed - the ask is not there anymore
 
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==JavaScript==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
| Add static analysis to reduce unnecessary and/or expensive headers
* 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 to be done before or during Q3 ------
*
------ Items above planned to be done before or during Q4 ------
| 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 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 Plans
|-
|-
| style="vertical-align:top;" |
  | Revitalize Color Management
* Enable OMT Animations on all OMTC platforms
* -webkit CSS compatibility for fix-list sites
* Vertical Text (basic text, form controls)
* CSS Font Loading
* CSS Object fit and position
* CSS display:contents
* CSS scroll snapping
* CSS Ruby
------ Items above done before or during Q1 ------
 
* Images downscale during decode for JPEG ({{bug|1045929}})
* Web Animation API
* HTML5 <canvas> improvements
* e10s Layout Support
* Vertical Text (tables)
* CSS 3D Transforms ( DEAA & VR requirements )
 
 
  ------ Items above done before or during Q2 ------
 
* Webkit-compatibility ({{bug|1177263}})
* Logical coordinate support for flexbox ({{bug|1079155}})
* Images downscale during decode for non-JPEG images ({{bug|1045926}})
* CSS text-orientation: sideways-left
* Top layer for Fullscreen API ({{bug|1126230}})
* CSS inter-character ruby ({{bug|1055672}})
* Enable APZ by default on OS X with e10s ({{bug|1157746}})
* Web Animations API: Element.animate ( https://w3c.github.io/web-animations/#dom-animatable-animate )
* IME support in e10s ({{bug|1041185}})
* Android ICU support ({{bug|864843}})
* PerformanceObserver API ( https://w3c.github.io/performance-timeline/#the-performance-observer-interface )
* CSS Grid in Nightly/Aurora ({{bug|1000592}})
* input type=directory ({{bug|1164310}})
 
------ Items above planned to be done before or during Q3 ------
*
 
------ Items above planned to be done before or during Q4 ------
 
| style="vertical-align:top;" |
* Enable OMT Animations on all OMTC platforms
* -webkit CSS compatibility for fix-list sites
* Vertical Text (basic text, form controls)
* CSS Font Loading
* CSS Object fit and position
* CSS display:contents
* CSS scroll snapping
* CSS Ruby
 
------ Items above planned to be done before or during Gecko 39 (Q1) ------
 
* Images downscale during decode for APZC platforms
* Web Animation API
* HTML5 <canvas> improvements
* e10s Layout Support
* Vertical Text (tables)
* CSS 3D Transforms ( DEAA & VR requirements )
 
 
------ Items above planned to be done before or during Gecko 42 (Q2) ------
 
* CSS Images (media-fragments)
* CSS Shapes (shape-outside for floats)
* CSS Box Alignment (for block layout)
* CSS Grid
* CSS 3D Transforms ( plane splitting)
 
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
 
* CSS Masking
 
------ Items above planned to be done before end 2015 but may get reprioritized ------
|}
 
==Media==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Wide Gamut Color Support
* MSE - Media Source Extensions (release Windows Vista and later/YouTube only)
* EME - Encrypted Media Extensions (beta 38 Windows Vista and later)
------ Items above done before or during Q1 ------
* MSE (release Mac OSX/YouTube only)
* EME (release Windows Vista and later)
* Video quality and performance improvements
------ Items above done before or during Q2 ------
* MSE - remove whitelist in Firefox 42
* MSE - support in Android and Firefox OS
------ Items above planned to be done before or during Q3 ------
* MP4 demuxer written in Rust
* MSE - VP9 support enabled in nightly
* EME - used on a major web site in Firefox 42
------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* MSE - Media Source Extensions (release Windows Vista and later/YouTube only)
* EME - Encrypted Media Extensions (beta 38 Windows Vista and later)
------ Items above done before or during Q1 ------
* MSE (release Mac OSX/YouTube only)
* EME (release Windows Vista and later)
* Video quality and performance improvements
------ Items above done before or during Q2 ------
* MSE - remove whitelist in Firefox 42
* MSE - support in Android and Firefox OS
* EME - used on a major web site
  ------ Items above planned to be done before or during Q3 ------
* MP4 demuxer written in Rust
* JS decoders
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==Mobile Platform==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | High Dynamic Range (HDR) Support (MacOS)
* Enhance Page Load Performance
* Platform-independent MP3 parser, platform-dependent decoders
* Ensure all crash reports are going to Socorro
* OpenH264 on Android
------ Items above done before or during Q1 ------
* Platform-independent MP3 parser, platform-dependent decoders
* Enhanced startup and pageload performance
* Block autoplay videos via script access
------ Items above done before or during Q2 ------
* APZ Gecko on Android
* Enhance Page Load Performance
* Reduce start up time
* Allow multiple Gecko windows via multiple GeckoView instances
  ------ Items above planned to be done before or during Q3 ------
*
------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* Enhance Page Load Performance
* Platform-independent MP3 parser, platform-dependent decoders
* Ensure all crash reports are going to Socorro
* OpenH264 on Android
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* Standalone WebRTC library usable by third parties Loop client prototype for major platforms (iOS, Android, Windows)
* Pre-Rendering Web Pages
* Background Hang Reporting (BHR) working with E10S
* Enhance screen mirroring performance
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* Allow multiple Gecko windows via multiple GeckoView instances
* Download locales on-demand in split APK (snorp, esawin)
* Download fonts on-demand in split APK
* Improve Power Effeciency
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==Networking==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Downloadable Blocklist Support on Mobile
* HTTP/2 ships preffed on (currently scheduled for Gecko 35)
* Network Predictor landed & enabled on m-c ({{bug|1009122}})
------ Items above done before or during Q1 ------
* Necko bits needed for Smart Data Management (split "System" data into browser, apps, etc): ({{bug|1070944}})
------ Items above done before or during Q2 ------
* Captive Portal service support ({{bug|1048131}})
------ Items above planned to be done before or during Q3 ------
* Framework for caching alternate representations of web data ({{bug|1177572}})
  ------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* HTTP/2 ships preffed on (currently scheduled for Gecko 35)
* Network Predictor landed & enabled on m-c ({{bug|1009122}})
* Idle mode for networking (optimize radio power use): ({{bug|1085760}})
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* Necko bits needed for Smart Data Management (split "System" data into browser, apps, etc): ({{bug|1070944}})
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* Network predictor: prefetch resources into HTTP cache if they are very likely to be used.
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==PKI==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Pinch - Zoom Feature Repairs/Enhancements
* OneCRL - certificate revocation list push mechanism.
* Final round of 1024-bit root removals.
  ------ Items above done before or during Q1 ------
* OCSP disabled for DV validations on Android.
* Support skipping OCSP for short-lived certificates.
------ Items above done before or during Q2 ------
* Certificate transparency (behind a pref).
* Support the OCSP must-staple extension.
* Enable skipping OCSP validation for short-lived certificates.
* Support for CA-provided Intermediate certificate info in SalesForce.
* OneCRL: support blocking by subject and public key.
------ Items above planned to be done before or during Q3 ------
* Add a mechanism to push security policy state updates.
------ Items above planned to be done before or during Q4 ------
* TLS 1.3
* Certificate chain collection from browsers
 
| style="vertical-align:top;" |
* WebCrypto
* OneCRL
* Phase 1 of CA program migration to SalesForce
* SHA-1 warnings
* Name constraints on root CAs
* OneCRL based on (subject, public key)
* Certificate observatory
* Finish removal of 1024-bit roots
|}
 
==Sandboxing==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Print Output Improvementes
* EME/CDM sandboxing for Windows 7+
* e10s sandboxing for Windows (Low Integrity)
* e10s sandboxing for Windows (Alternate Desktop)
* e10s sandboxing for OS X (Minimal implementation)
* e10s sandboxing for Linux (Minimal implementation)
------ Items above done before or during Q1 ------
* EME/CDM sandboxing for Windows XP and Vista
  ------ Items above done before or during Q2 ------
* EME/CDM sandboxing for OS X
* EME/CDM sandboxing for Linux
* e10s sandboxing for Windows (Low Integrity)
------ Items above planned to be done before or during Q3 ------
------ Items above planned to be done before or during Q4 ------
* e10s sandboxing for Windows (Alternate Desktop)
* e10s sandboxing for OS X (Minimal implementation)
* e10s sandboxing for Linux (Minimal implementation)
| style="vertical-align:top;" |
* EME/CDM sandboxing for Windows 7+
* e10s sandboxing for OS X
* e10s sandboxing for Linux
* e10s sandboxing for Windows
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* EME/CDM sandboxing for Windows XP and Vista
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* EME/CDM sandboxing for OS X
* EME/CDM sandboxing for Linux
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==Security==
 
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
  | Aspect Ratio Stabilization
* Security hooks revamp completed for Gecko internals.
* Add on signing support available.
* UX design for insecure password warning in Dev Edition/Dev Tools - {{bug|1135766}}
* Security for DevTools: Prototype CSP (content-security policy) analysis in Dev Edition/Dev Tools - {{bug|1129999}}
* SafeBrowsing Re-enable remote lookups for application reputation - {{bug|10900754}}
------ Items above done before or during Q1 ------
* Security for DevTools: CSP (content-security policy) analysis in Dev Edition/Dev Tools - {{bug|1129999}}.
* CSP upgrade-insecure-requests - {{bug|1139297}}.
* Support detecting potentially unwanted software in SafeBrowsing - {{bug|1147212}}.
------ Items above done before or during Q2 ------
* SRI (Sub-resource integrity) for 3rd party scripts and styles - {{bug|992096}}.
* Evolving Referrer Policy - Implement referrer attribute for navigation and embedding elements - {{bug|999754}} and allow dynamic changes of referrer policies {{bug|1174915}}.
* Containers for isolated non-private browsing sessions.
* Use a lock with a strikethrough for HTTP pages that have Password Fields in the Control Center - {{bug|1179961}}.
* Tracking Protection enabled by default in Private Browsing Mode {{bug|1175606}}.
------ Items above planned to be done before or during Q3 ------
* Security for DevTools: CSP (content-security policy) suggestions in Dev Edition/Dev Tools.
* Encryption for password manager database.
* Prototype for isolated Private Browsing sessions.
------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* Security hooks revamp completed for Gecko internals.
* Add on signing support available.
* UX design for insecure password warning in Dev Edition/Dev Tools - {{bug|1135766}}
* Security for DevTools: Prototype CSP (content-security policy) analysis in Dev Edition/Dev Tools - {{bug|1129999}}
* SafeBrowsing Re-enable remote lookups for application reputation - {{bug|10900754}}
 
------ Items above were done before or during Gecko 39 (Q1) ------
* Tracking Protection Experiments - {{bug|1119891}}.
* Security for DevTools: Insecure passwords warning in Dev Edition/Dev Tools - {{bug|748193}}.
* SRI (Sub-resource integrity) for 3rd party scripts and styles - {{bug|992096}}.
* Security for DevTools: CSP (content-security policy) analysis and suggestions in Dev Edition/Dev Tools - {{bug|1129999}}.
* CSP upgrade-insecure-requests - {{bug|1139297}}.
 
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* Containers for isolated non-private browsing sessions.
* Evolving Referrer Policy.
* Encryption for password manager database.
* Prototype for isolated Private Browsing sessions.
* Lightbeam-lite/Tracking Detection.
* Security hooks revamp complete for addons/extensions.
 
  ------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
 
==WebRTC / WebAudio==
<b> (All these features/fixes below are landing in Nightly during these quarters) </b>
{| class="wikitable" width="100%"
! style="text-align: center;" width: "50%;" | Current Plans !! style="text-align: center;" width: "50%;" | Previous Plans
|-
|-
| style="vertical-align:top;" |
| rowspan=1 colspan=1|Stability
* Rewrite SDP/JSEP and add BUNDLE support
  | GPU Process Support on Android
* 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 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
 
  ------ 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 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
|-
|-
| style="vertical-align:top;" |
* Hold [[WebCompat Summit (2015)|WebCompat Summit]]
* [[Compatibility/Telemetry|Compatibility Telemetry]]
* Reusable Workshop + conference materials developed
------ Items above done before or during Q1 ------
* Compatibility dashboard for Telemetry, Bugzilla
* Develop automated mobile compatibility infrastructure (to be tracked on dashboard)
* Redundant GitHub webcompat/web-bugs issues data storage.
------ Items above done before or during Q2 ------
*
------ Items above planned to be done before or during Q3 ------
*
------ Items above planned to be done before or during Q4 ------
| style="vertical-align:top;" |
* Hold [[WebCompat Summit (2015)|WebCompat Summit]]
* [[Compatibility/Telemetry|Compatibility Telemetry]]
* Reusable Workshop + conference materials developed
------ Items above planned to be done before or during Gecko 39 (Q1) ------
* Compatibility dashboard for Telemetry, Bugzilla
* Develop automated mobile compatibility infrastructure (to be tracked on dashboard)
* Redundant GitHub webcompat/web-bugs issues data storage.
------ Items above planned to be done before or during Gecko 42 (Q2) ------
* Ship [https://docs.google.com/a/mozilla.com/document/d/1c5w87-KDZCP9eltjfk98GL_i-hyqQ193J86_e1L4wnQ/edit#heading=h.mje3211pzj4p MDN Web Compat Service], in conjunction with MDN + Cloud Services teams
* Get 1 other major browser vendor involved in webcompat.com
* [https://github.com/webcompat/webcompat.com/milestones/Better%20mobile%20bug%20reporting Better mobile reporting for webcompat.com]
* [https://github.com/webcompat/webcompat.com/milestones/Launch%201st%20Translated%20version%20of%20Webcompat.com i18n for webcompat.com] (at least 1 other language)
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
|}
|}
=Initiatives=
* 60fps
** Focused on producing a smooth, jank free experiences.  60fps goal is dependant on media type.
* BarrierSmash
** Ensure that accessibility features are working throughout our products.
* Candle
** Program targeted at reducing energy usage.
* CrashKill
** Improve the overall stability of Gecko and the project that rely on it.
* CritSmash
** Fix known critical security bugs.
* Electrolysis
** This is focused on providing multi-process browser (aka e10s).
* Offline
** Offline Support
* Presto
** Program targeted at improving overall load times and performance.  This is resurrecting an older program that was discontinued.
* MemShrink
**Reduce memory usage (all products)
* Web Compatibility
** Improve the overall web compatibility of Gecko.
* Webify
** Reduce the webs dependence on plugins.  This includes several content targeted initiatives such as the games program (Unity), [[Shumway/Roadmap|Shumway]] (Flash), [[Media/EME|MSE/EME]], WebRTC (Google Talk, Facebook Video)
** [https://wiki.mozilla.org/Platform/Games#2015_Goals Games Program]
------------------------------------------------------------------------
H1 2022 Update (In Progress - Expected to be completed by March 31 2022)
* WASM
** [https://github.com/WebAssembly/tail-call/blob/master/proposals/tail-call/Overview.md Implement Tail Call Proposal] - In Progress
** Exception Handling - Optimize representation of exception and tag objects (unboxing) - In Progress
* JA-LANG
** [https://github.com/tc39/proposal-intl-segmenter JavaScript Lang: Intl.Segmenter] - Not Started




[[Category:Roadmaps]]
[[Category:Roadmaps]]

Revision as of 23:25, 14 April 2022

Tempicon.png Firefox Platform H1 2022 Roadmap
Owner: Andrew Overholt Updated: 2022-04-14
This roadmap outlines the current direction for Firefox Platform development through the first half of 2022. The following document is subject to change at anytime. It is also not a commitment to ship a feature but rather an intent to implement and land them on by default in the nightly version of Firefox unless otherwise stated.


Related Links:

Programs and corresponding initiatives

Program Initiative
APIs Support Observable Array type in WebIDL
OffscreenCanvas
Investigate/prototype Container Queries
Client-side Print Support for Gsuite (Named Pages)
Investigate, Spec, Plan "Context-paint” for adding custom external colors to SVG icons
Scroll-linked animations (M2) Improve the performance and memory usage
Get WebRTC 1.0 APIs up to specification
Prototype Largest Contentful Paint
Prototype Prioritized Task Scheduling API
WASM: Implement Tail Call Proposal
Streams API
Import Maps
WASM: Exception Handling
JavaScript Lang: Intl.Segmenter
Devtools Console Panel Performance
Improve DevTools Debugger
DevTools Remote Protocol / WebDriver BiDi
DevTools: Prevent Accidental Use of F12
Engineering Efficiency Implement most valuable release management bot enhancements
Features Bring Swipe-to-navigate to Windows
Bring Swipe-to-navigate to Linux
Support audio output device authorization
Support audio input device switching
Internationalization (i18n) Unify Segmentation
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
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
Quality Run tests on Linux under Wayland
Fix top quality issues with PDF.js
Automatic backfilling and retrying for test failures
Use test selection results to speed up sheriffs' decisions or partly automate them
Build more automation around handling of intermittent tests
Enable Cross Translation Unit (CTU) static analysis
Implement before/after/after_landing static analysis method
Add static analysis to reduce unnecessary and/or expensive headers
Revitalize Color Management
Wide Gamut Color Support
High Dynamic Range (HDR) Support (MacOS)
Downloadable Blocklist Support on Mobile
Pinch - Zoom Feature Repairs/Enhancements
Print Output Improvementes
Aspect Ratio Stabilization
Stability GPU Process Support on Android