Platform/Roadmap

From MozillaWiki
Jump to: navigation, search
Tempicon.png Firefox Platform 2015 Roadmap
Owner: Martin Best Updated: December 2014
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.


Related Links:


Teams

Accessibility

Current Plans Previous Plans

[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) ------

[everything below not finalized]

  • Screen Reader v1.0 for FxOS.
  • Integrate and expand FxOS accessibility test coverage.
  • Webspeech TTS hookup on Windows
  • Instantiate "BarrierSmash" program
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • Accessibility support for E10s. (stretch targeting Gecko 40)
  • Accessibility Metrics
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • Accessibility Dev Tool.
  • Accessibility Training Materials
  • Web Facing Accessibility API
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

DOM

Current Plans Previous Plans
  • 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) ------
  • Service Workers
  • IndexedDB in Workers
  • Picture Tag
  • requestSync (FxOS-only precursor to BackgroundSync)
  • TCP Socket in Workers
  • e10s (drag-and-drop, clipboard, leak detection and reporting)
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • BackgroundSync
  • Pre-rendering API
  • Shadow DOM
  • Custom Elements
  • Web Manifest
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • 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)
  • Broadcast channel
  • Message Port
  • Remove appcache
  • Directory upload
  • DOM bits of Object.observe
  • Get rid of child array
  • WebGL in Workers
  • Web Audio in Workers
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

e10s

Current Plans Previous Plans
  • Milestone 4 completed in Gecko 38 (buglist)
  • Milestone 5 completed in Gecko 38 (buglist)
  • CPOW mitigation tools
------ Items above planned to be done before or during Q1 ------
  • Milestone 6 (buglist)
  • Rollout to Aurora 40
  • Milestone 7 completed (buglist)
------ Items above planned to be done before or during Q2 ------
  • Milestone 8 completed (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 ------
  • Milestone 4 completed in Gecko 38 (buglist)
  • Milestone 5 completed in Gecko 38 (buglist)
  • Milestone 6 completed in Gecko ~39 (buglist)
  • Addon migration / CPOW mitigation tools
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • Rollout to Aurora ~39
  • Milestone 7 completed in Nightly ~39 (buglist)
  • Milestone 8 completed in Nightly ~39 (buglist)
  • Rollout to Beta ~39
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • Rollout to Release
  • milestone completion placeholder - additional milestones will be defined later in the year for winding the e10s project down.
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

Graphics

Current Plans Previous Plans
  • (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 planned to be done before or during Gecko 39 (Q1) ------
  • WebWorkers WebGL support (added in April)
  • APZ on Desktop
  • Desktop Scrolling Performance

(Removed in April)

  • Tiling on Desktop - currently not deemed as required for APZ and scrolling performance, so the priority dropped.
------ 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
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
  • 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
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

JavaScript

Current Plans Previous Plans
  • 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) ------
  • 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

Current Plans Previous Plans
  • Enable OMT Animations on all OMTC platforms
  • -webkit CSS compatibility for fix-list sites
  • Images downscale during decode for APZC platforms
  • Vertical Text (basic text, form controls)
  • CSS Font Loading
  • CSS Object fit and position
  • CSS display:contents
  • CSS scroll snapping
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • Web Animation API
  • HTML5 <canvas> improvements
  • e10s Layout Support
  • Vertical Text (tables)
  • CSS 3D Transforms ( plane splitting & other interop improvements )
  • CSS Ruby
------ 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
------ 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 ------
  • Enable OMT Animations on all OMTC platforms
  • -webkit CSS compatibility for fix-list sites
  • Images downscale during decode for APZC platforms
  • Vertical Text (basic text, form controls)
  • CSS Font Loading
  • CSS Object fit and position
  • CSS display:contents
  • CSS scroll snapping
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • Web Animation API
  • HTML5 <canvas> improvements
  • e10s Layout Support
  • Vertical Text (tables)
  • CSS 3D Transforms ( plane splitting & other interop improvements )
  • CSS Ruby
------ 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
------ 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

Current Plans Previous Plans
  • MSE - Media Source Extensions (release Windows Vista and later/YouTube only)
  • EME - Encrypted Media Extensions (beta 38 Windows Vista and later)
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • MSE (release Mac OSX/YouTube only)
  • EME (release Windows Vista and later)
  • Video quality, performance and memory consumption (incl 4k2k video)
  • Web Audio improvements
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • MSE improvements
  • EME continued development / other platforms
  • MP4 demuxer written in Rust
  • Daala / JS codecs
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
  • MSE - Media Source Extensions (release Windows 7 and later/YouTube only)
  • EME - Encrypted Media Extensions (beta 38 Windows 7 and later)
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • MSE (release)
  • EME (release)
  • Daala
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • MSE improvements
  • EME continued development
  • Video quality, performance and memory consumption
  • MP4 demuxer written in Rust
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

Mobile Platform

Current Plans Previous Plans
  • 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) ------
  • 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

Current Plans Previous Plans
  • 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) ------
  • 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

Current Plans Previous Plans
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • Certificate transparency (behind a pref)
  • Short-lived certificates
  • OCSP Must-staple
  • Support Intermediate certs in SalesForce
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
  • TLS 1.3
  • Certificate chain collection from browsers
  • 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

Current Plans Previous Plans
  • EME/CDM sandboxing for Windows 7+
  • e10s sandboxing for Windows
  • e10s sandboxing for OS X
  • e10s sandboxing for Linux
------ 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) ------
  • EME/CDM sandboxing for Windows 7+
  • e10s sandboxing for Windows
  • e10s sandboxing for OS X
  • e10s sandboxing for Linux
------ 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

Current Plans Previous Plans
  • 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) ------
  • SRI (Sub-resource integrity) for 3rd party scripts and styles.
  • CSP (content-security policy) suggestions in Dev Edition/Dev Tools.
  • Insecure passwords warning in Dev Edition/Dev Tools.
  • Tracking Protection Experiments - bug 1119891.
  • Security hooks revamp completed for Gecko internals.
  • Add on signing support available.
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • Encryption for password manager database.
  • Prototype for isolated Private Browsing sessions.
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • Containers for isolated non-private browsing sessions.
  • Lightbeam-lite/Tracking Detection
  • Security hooks revamp complete for addons/extensions.
  • Referer policy experiments.
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

WebRTC / WebAudio

(All these features/fixes below are landing in Nightly during these quarters)

Current Plans Previous Plans
  • Rewrite SDP/JSEP and add BUNDLE support
  • Multistream, renegotiation support
  • VP9 codec support in WebRTC (we may ship VP9 pref'd off by default)
  • Web Audio and WebRTC working well together
  • OpenH264 for Android supported (no sandbox)
------ Items were done before or during Gecko 39 (Q1) ------
  • Add support for audio sharing (when there is audio to share during screen/window/etc sharing)
  • e10s blocker problems fixed
  • Web Audio performance improvements - phase 1
  • ICE TCP support
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • Resolve (modulo hardware limitations) reproducible audio problems in WebRTC 1:1 calls
  • Excellent Web Audio performance, especially for games ("phase 2")
  • Audio workers support
  • Simulcast support
  • IPv6 support
  • Full duplex audio support
  • Considerably better NAT traversal (including ICE proxy and UPnP support)
  • Audio output selection
  • Data channels in workers
  • Compliant with "v1.0" (or equivalent) of the WebRTC spec
  • getUserMedia and audio output sandboxing working (support sandboxing team, audio sandboxing may be a stretch for end of year)
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
  • Rewrite SDP/JSEP and add BUNDLE support
  • Multistream, renegotiation support
  • VP9 codec support in WebRTC (we may ship VP9 pref'd off by default)
  • Web Audio and WebRTC working well together
------ Items above planned to be done before or during Gecko 39 (Q1) ------
  • OpenH264 for Android working well
  • Audio workers
  • Web Audio performance improvements
  • Simulcast
  • e10s problems fixed
  • All echo and audio problems in WebRTC 1:1 calls resolved
------ Items above planned to be done before or during Gecko 42 (Q2) ------
  • getUserMedia and audio output sandboxing working
  • Considerably better NAT traversal (including ICE proxy and UPnP support)
  • Audio output selection
  • Data channels in workers
  • Compliant with "v1.0" (or equivalent) of the WebRTC spec
------ Items above planned to be done before or during Gecko 45 (End 2015) ------

Web Compatibility

Current Plans Previous Plans
------ 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) ------
------ Items above planned to be done before or during Gecko 45 (End 2015) ------
------ 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) ------
------ 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 (Flash), MSE/EME, WebRTC (Google Talk, Facebook Video)
    • Games Program