Platform/Roadmap

From MozillaWiki
< Platform
Revision as of 16:23, 16 July 2015 by Msreckovic (talk | contribs) (→‎Graphics: Clarification)
Jump to navigation Jump to search
Tempicon.png Firefox Platform 2015 Roadmap
Owner: Martin Best Updated: 2015-07-16
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

Definition of Done: All listed features are present in our nightly version of Firefox. The features must then go through the standard quality assurance process before appearing in a release channel.

Accessibility

Current Plans Previous Plans
  • Webspeech TTS hookup on Windows
------ Items above done before or during 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 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 ------

[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

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 done before or during 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 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 ------
  • 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

Current Plans Previous Plans
  • Milestone 4 completed in Gecko 38 (buglist)
  • Milestone 5 completed in Gecko 38 (buglist)
  • CPOW mitigation tools
------ Items above done before or during Q1 ------
  • Milestone 6 completed (buglist)
  • Milestone 7 completed (buglist)
  • Default in Nightly 42
  • Opt-in in Aurora 41
------ Items above done before or during Q2 ------
  • Milestone 8 completed (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 ------
  • 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 ------

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 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 on Desktop (postponed from Q2 in May)
  • APZ Fennec parity (added in June)
  • Desktop Scrolling Performance (postponed from Q2 in May)
  • Overscroll Improvements - removed - no further work required
  • Expose the graphics card details
------ Items above planned to be done before or during Q3 ------
  • APZ - "fake overscroll" - removed - the ask is not there anymore
  • APZ - OOP iframe support
  • Zooming-in Improvements - tentative - the ask may not be there anymore
  • WebGL2 on par (target 46; goal added in June)
  • WebGL Mobile Performance
  • WebGL Performance Parity on Desktop
------ Items above planned to be done before or during Q4 ------
  • 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 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 ------
  • 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
  • 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 APZC platforms
  • 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 ------
------ Items above planned to be done before or during Q3 ------
------ Items above planned to be done before or during Q4 ------
  • 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

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 done before or during 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 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 ------
  • 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) ------

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 done before or during 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 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 ------
  • 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)
------ 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 ------
------ 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 ------
  • 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 done before or during Q1 ------
------ Items above done before or during 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 Q3 ------
------ Items above planned to be done before or during Q4 ------
  • 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 (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)
  • 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

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 done before or during 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 done before or during 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 Q3 ------
------ Items above planned to be done before or during Q4 ------
  • 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

(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 above done before or during 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 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 ------
  • 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) ------

Web Compatibility

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