Platform/Roadmap2026: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(status, update release calendar link)
(far more than a stub now)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{stub}}
<span style="float:right">__TOC__</span>
<span style="float:right">__TOC__</span>
=Gecko Planned Work For 2026=
=Platform 2026 Roadmap=


{{warning|This is page is actively in-progress and is incomplete.}}
{{warning|This is page is actively in-progress and is incomplete.}}
Line 7: Line 6:
Related Links:
Related Links:
* [https://whattrainisitnow.com/calendar/ Firefox Release Calendar] (future)
* [https://whattrainisitnow.com/calendar/ Firefox Release Calendar] (future)
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases Firefox release notes for developers] (past)<!-- Fx147-... -->
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases Firefox release notes for developers] (past)<!-- Fx147-149, 150wd-, 151api-... -->
* [https://firefox-source-docs.mozilla.org/contributing/pocket-guide-shipping-firefox.html Pocket Guide: Shipping Firefox]
* [https://firefox-source-docs.mozilla.org/contributing/pocket-guide-shipping-firefox.html Pocket Guide: Shipping Firefox]


Line 16: Line 15:


== HTML ==
== HTML ==
* <code>popover=hint</code> ([https://bugzil.la/1867743 1867743])
* <code>alpha</code> & <code>colorspace</code> attributes in <code>&lt;input type=color&gt;</code>; elements ([https://bugzil.la/1919718 1919718])
* <code>shadowrootslotassignment</code> attribute on <code>&lt;template&gt;</code> ([https://bugzil.la/2031295 2031295], [https://bugzil.la/2023824 2023824])
* <code>&lt;img sizes=auto&gt;</code> ([https://bugzil.la/1819581 1819581])
* ...
* ...


== CSS ==
== CSS ==
* units: <code>rcap</code>, <code>rch</code>, <code>rex</code>, <code>ric</code> ([https://bugzil.la/1740584 1740584])
* <code>&lt;attr-type&gt;</code> values in <code>attr()</code> function ([https://bugzil.la/1986631 1986631], [https://bugzil.la/1998245 1998245])
* <code>color-mix()</code> function multiple (2+) color arguments ([https://bugzil.la/2007772 2007772], [https://bugzil.la/2024171 2024171])
* <code>light-dark()</code> function <code>&lt;image&gt;</code> type for images, gradients ([https://bugzil.la/2023569 2023569])
* <code>shape()</code> function on by default ([https://bugzil.la/1982941 1982941])
* <code>:buffering</code>, <code>:muted</code>, <code>:paused</code>, <code>:playing</code>, <code>:seeking</code>, <code>:stalled</code>, <code>:volume-locked</code> allow you to style <code>&lt;audio&gt;</code> <code>&lt;video&gt;</code> elements ([https://bugzil.la/1707584 1707584], [https://bugzil.la/2014512 2014512], [https://bugzil.la/2020775 2020775])
* <code>::before</code> and <code>::after</code> on replaced elements ([https://bugzil.la/1931309 1931309])
* <code>::marker</code> pseudo-element support <code>counter-increment</code>, <code>counter-reset</code>, <code>counter-set</code>, <code>quotes</code> properties ([https://bugzil.la/2000404 2000404])
* <code>revert-rule</code> keyword ([https://bugzil.la/2017307 2017307])
* <code>@container</code> <code>style()</code> queries ([https://bugzil.la/2014404 2014404], [https://bugzil.la/2016929 2016929], [https://bugzil.la/2019254 2019254], [https://bugzil.la/2024601 2024601], [https://bugzil.la/2030645 2030645])
* CSS Anchor Positioning ([https://bugzil.la/1988225 1988225])
** <code>align-items</code>, <code>align-self</code>, <code>justify-items</code>, <code>justify-self</code>, <code>place-items</code>, and <code>place-self</code> properties support <code>anchor-center</code> value ([https://bugzil.la/1909339 1909339])
** <code>position-anchor: none</code> ([https://bugzil.la/1999972 1999972])
** <code>position-anchor: normal</code> ([https://bugzil.la/2030351 2030351])
* <code>overflow</code>, <code>overflow-x</code>, <code>overflow-y</code> properties supported on replaced elements ([https://bugzil.la/1999100 1999100])
* <code>overscroll-behavior</code>, <code>overscroll-behavior-x</code>, <code> overscroll-behavior-y</code>, <code> overscroll-behavior-block</code>, <code> and overscroll-behavior-inline</code> apply to scroll containers that have no scrollable overflow ([https://bugzil.la/1837436 1837436])
* <code>position-try-order</code> ([https://bugzil.la/2008537 2008537])
* <code>shape-outside</code> property support <code>xywh()</code> and <code>rect()</code> functions ([https://bugzil.la/1983187 1983187])
* <code>vertical-align</code> as shorthand property for <code>alignment-baseline</code>, <code>baseline-shift</code>, and <code>baseline-source</code> properties ([https://bugzil.la/1830771 1830771])
* CSS properties and rendering of <code><nowiki><fieldset></nowiki></code> and <code><nowiki><legend></nowiki></code> ([https://bugzil.la/1935129 1935129])
** margins, generated content, custom <code>display</code> values
* View transition types ([https://bugzil.la/2001878 2001878])
* ...
WebCompat:
* <code>-webkit-perspective</code> property ([https://bugzil.la/1362499 1362499])
* ...
=== CSSOM ===
* CSS Typed Object Model Level 1 ([https://bugzil.la/1278697 1278697])
* ...
* ...


== SVG ==
== SVG ==
* SVG URL media fragments ([https://bugzil.la/1999989 1999989])
* ...
* ...
== Rendering ==
WebGPU:
* ...
== Media ==
* JPEG XL Rust decoder prototype ([https://bugzil.la/1986393 1986393])
Media-related APIs like WebRTC
* <code>HTMLMediaElement.captureStream()</code> ([https://bugzil.la/2017708 2017708])
* <code>RTCError</code> and <code>RTCErrorEvent</code> ([https://bugzil.la/1814459 1814459])
* <code>RTCIceTransport.role</code> ([https://bugzil.la/2018843 2018843])
* <code>RTCPeerConnectionIceErrorEvent</code> and <code>RTCPeerConnection.icecandidateerror</code> event ([https://bugzil.la/1561441 1561441])
* WebRTC MediaStreamTrackProcessor ([https://bugzil.la/1749532 1749532])
* WebRTC VideoTrackGenerator ([https://bugzil.la/1749533 1749533])


== DOM ==
== DOM ==
* more characters for element and attribute names in methods ([https://bugzil.la/1773312 1773312])
** Document.createAttribute(), Document.createAttributeNS(), Document.createElement(), Document.createElementNS()
** Element.toggleAttribute(), Element.setAttribute(), Element.setAttributeNS()
** DOMImplementation.createDocument()
** customElements.define(), customElements.whenDefined()
* <code>ariaNotify()</code> method on <code>Document</code> and <code>Element</code> ([https://bugzil.la/2018095 2018095])
* <code>CloseWatcher</code> interface ([https://bugzil.la/1966073 1966073])
* <code>CSSFontFaceDescriptors</code> interface ([https://bugzil.la/2019904 2019904])
* <code>Document.caretPositionFromPoint()</code> including argument <code>options.shadowRoots</code> ([https://bugzil.la/1550635 1550635], [https://bugzil.la/1914596 1914596])
* <code>Document.execCommand()</code> "<code>paste</code>" command in web content ([https://bugzil.la/1998195 1998195])
* <code>HTMLSelectElement.showPicker()</code> support list of options in <code>&lt;datalist&gt;</code> ([https://bugzil.la/1998668 1998668])
* ...
* ...


== JS ==
== JS ==
* CSS module scripts ([https://bugzil.la/1986681 1986681])
* <code>islamic-umalqura</code> calendar support in <code>Intl</code> ([https://bugzil.la/2011505 2011505])
* <code>Iterator.concat()</code> method ([https://bugzil.la/1986672 1986672])
* <code>Iterator.zip()</code> and <code>Iterator.zipKeyed()</code> static methods ([https://bugzil.la/2003333 2003333])
* ...
* ...


== APIs ==
== APIs ==
* <code>CompressionStream</code> and <code>DecompressionStream</code> support Brotli compression ([https://bugzil.la/1921583 1921583])
* <code>Document.activeViewTransition</code> property ([https://bugzil.la/2001836 2001836])
* Document Picture-in-Picture API ([https://bugzil.la/1858562 1858562])
* HTML Sanitizer API ([https://bugzil.la/1650370 1650370])
** <code>setHTML()</code>
* <code>Location.ancestorOrigins</code> property ([https://bugzil.la/1085214 1085214])
* Navigation API ([https://bugzil.la/1997962 1997962])
** <code>NavigationPrecommitController.addHandler()</code> ([https://bugzil.la/2009004 2009004])
* <code>options.resizeQuality</code> parameter support in <code>Window.createImageBitmap()</code> and <code>WorkerGlobalScope.createImageBitmap()</code> ([https://bugzil.la/2010125 2010125])
* <code>pointerrawupdate</code> event <code>movementX</code> and <code>movementY</code> properties ([https://bugzil.la/1987671 1987671])
* Reporting API ([https://bugzil.la/1976074 1976074], [https://bugzil.la/2008916 2008916])
** <code>CSPViolationReport</code> and <code>IntegrityViolationReport</code> objects using a <code>ReportingObserver</code>, can be filtered on type <code>"csp-violation"</code> or <code>"integrity-violation"</code>
* Trusted Types API ([https://bugzil.la/1994690 1994690])
* ...
Add-on gated:
* WebSerial API ([https://bugzil.la/926940 926940])
* ...
=== Add-ons ===
* split view support ([https://bugzil.la/1993037 1993037])
* <code>tabId</code> parameter support in <code>action.isEnabled</code> and <code>browserAction.isEnabled</code> ([https://bugzil.la/2013477 2013477])
* ...
=== WebDriver ===
* <code>browser.setDownloadBehavior</code> command ([https://bugzil.la/1989022 1989022])
* <code>browsingContext.getTree</code> command now accepts the vendor specific <code>moz:scope</code> ([https://bugzil.la/1944568 1944568], [https://bugzil.la/1944570 1944570])
* <code>input.fileDialogOpened</code> event ([https://bugzil.la/1855045 1855045])
* <code>emulation.setScreenSettingsOverride</code> command ([https://bugzil.la/2000651 2000651])
* <code>script.realmCreated</code> and <code>script.realmDestroyed</code> events ([https://bugzil.la/1936770 1936770])
* ...
Marionette:
* <code>Reporting:GenerateTestReport</code> command ([https://bugzil.la/1909662 1909662])
* <code>implicit</code> and <code>pageLoad</code> timeouts supported in line with script timeout; <code>null</code> values to disable the timeouts ([https://bugzil.la/2008345 2008345])
* ...
* ...


== Protocols ==
== Protocols ==
=== HTTP ===
* ...
* ...


=== HTTP ===
== Security ==
* ...
* ...


== Media ==
== Interop ==
[https://wpt.fyi/interop-2026 Interop 2026] ([https://bugzil.la/2018559 2018559])
* Our announcement blog post: https://hacks.mozilla.org/2026/02/launching-interop-2026/
 
Interop Focus Areas for implementation:
* [https://bugzil.la/2017321 2017321]: CSS Anchor Positioning
* [https://bugzil.la/2017328 2017328]: CSS attr()
* [https://bugzil.la/2017330 2017330]: CSS contrast-color
* [https://bugzil.la/2017331 2017331]: Container style queries
* [https://bugzil.la/2017332 2017332]: Custom highlights
* [https://bugzil.la/2017335 2017335]: Dialogs and Popovers
* [https://bugzil.la/2017337 2017337]: Fetch
* [https://bugzil.la/2017340 2017340]: IndexedDB
* [https://bugzil.la/2017341 2017341]: JSPI for WASM
* [https://bugzil.la/2017344 2017344]: Navigation
* [https://bugzil.la/2017353 2017353]: Scoped custom element registries
* [https://bugzil.la/2017354 2017354]: Scroll-driven animations
* [https://bugzil.la/2017355 2017355]: scroll-snap
* [https://bugzil.la/2017356 2017356]: CSS shape
* [https://bugzil.la/2017359 2017359]: View transitions
* [https://bugzil.la/2017360 2017360]: zoom
* [https://bugzil.la/2017361 2017361]: Web compat
* [https://bugzil.la/2017363 2017363]: WebRTC
* [https://bugzil.la/2017364 2017364]: WebTransport
 
== Prototyping ==
We have plans to prototype the following but no commitment (nor official "intent") to ship yet. Alphabetical, no indication of ordering of implementation or consideration for shipping.
* Fullscreen Keyboard Lock ([https://bugzil.la/700123 700123])
* ...
* ...


== Related Projects ==
Add-on gated:
* <nowiki>[https://wpt.fyi/interop-2026 Interop 2026]</nowiki>
* Web Bluetooth API ([https://bugzil.la/2022433 2022433])
** Our announcement blog post: To be published around 2026 February
* WebUSB API ([https://bugzil.la/2022432 2022432])
* ...
* ...


Line 50: Line 176:
Edit and publish new and updated specifications and notes. See [[Standards]] for our ongoing work in this area.
Edit and publish new and updated specifications and notes. See [[Standards]] for our ongoing work in this area.
* ...
* ...
== Previously ==
* [[Platform/2025PlannedWork]]


== See Also ==
== See Also ==
* [[Platform]]
* [[Platform]]
* [[Platform/Planning]]
* Previously: [[Platform/Roadmap2025]]
* Next: [[Platform/Roadmap2027]]

Latest revision as of 19:07, 2 June 2026

Platform 2026 Roadmap

Warning signWarning: This is page is actively in-progress and is incomplete.

Related Links:

These are areas of work planned for Gecko in 2026 for the Web Platform.

For current web platform documentation of these areas, see the subsections at:

HTML

  • popover=hint (1867743)
  • alpha & colorspace attributes in <input type=color>; elements (1919718)
  • shadowrootslotassignment attribute on <template> (2031295, 2023824)
  • <img sizes=auto> (1819581)
  • ...

CSS

  • units: rcap, rch, rex, ric (1740584)
  • <attr-type> values in attr() function (1986631, 1998245)
  • color-mix() function multiple (2+) color arguments (2007772, 2024171)
  • light-dark() function <image> type for images, gradients (2023569)
  • shape() function on by default (1982941)
  • :buffering, :muted, :paused, :playing, :seeking, :stalled, :volume-locked allow you to style <audio> <video> elements (1707584, 2014512, 2020775)
  • ::before and ::after on replaced elements (1931309)
  • ::marker pseudo-element support counter-increment, counter-reset, counter-set, quotes properties (2000404)
  • revert-rule keyword (2017307)
  • @container style() queries (2014404, 2016929, 2019254, 2024601, 2030645)
  • CSS Anchor Positioning (1988225)
    • align-items, align-self, justify-items, justify-self, place-items, and place-self properties support anchor-center value (1909339)
    • position-anchor: none (1999972)
    • position-anchor: normal (2030351)
  • overflow, overflow-x, overflow-y properties supported on replaced elements (1999100)
  • overscroll-behavior, overscroll-behavior-x, overscroll-behavior-y, overscroll-behavior-block, and overscroll-behavior-inline apply to scroll containers that have no scrollable overflow (1837436)
  • position-try-order (2008537)
  • shape-outside property support xywh() and rect() functions (1983187)
  • vertical-align as shorthand property for alignment-baseline, baseline-shift, and baseline-source properties (1830771)
  • CSS properties and rendering of <fieldset> and <legend> (1935129)
    • margins, generated content, custom display values
  • View transition types (2001878)
  • ...

WebCompat:

  • -webkit-perspective property (1362499)
  • ...

CSSOM

  • CSS Typed Object Model Level 1 (1278697)
  • ...

SVG

  • SVG URL media fragments (1999989)
  • ...

Rendering

WebGPU:

  • ...

Media

  • JPEG XL Rust decoder prototype (1986393)

Media-related APIs like WebRTC

  • HTMLMediaElement.captureStream() (2017708)
  • RTCError and RTCErrorEvent (1814459)
  • RTCIceTransport.role (2018843)
  • RTCPeerConnectionIceErrorEvent and RTCPeerConnection.icecandidateerror event (1561441)
  • WebRTC MediaStreamTrackProcessor (1749532)
  • WebRTC VideoTrackGenerator (1749533)

DOM

  • more characters for element and attribute names in methods (1773312)
    • Document.createAttribute(), Document.createAttributeNS(), Document.createElement(), Document.createElementNS()
    • Element.toggleAttribute(), Element.setAttribute(), Element.setAttributeNS()
    • DOMImplementation.createDocument()
    • customElements.define(), customElements.whenDefined()
  • ariaNotify() method on Document and Element (2018095)
  • CloseWatcher interface (1966073)
  • CSSFontFaceDescriptors interface (2019904)
  • Document.caretPositionFromPoint() including argument options.shadowRoots (1550635, 1914596)
  • Document.execCommand() "paste" command in web content (1998195)
  • HTMLSelectElement.showPicker() support list of options in <datalist> (1998668)
  • ...

JS

  • CSS module scripts (1986681)
  • islamic-umalqura calendar support in Intl (2011505)
  • Iterator.concat() method (1986672)
  • Iterator.zip() and Iterator.zipKeyed() static methods (2003333)
  • ...

APIs

  • CompressionStream and DecompressionStream support Brotli compression (1921583)
  • Document.activeViewTransition property (2001836)
  • Document Picture-in-Picture API (1858562)
  • HTML Sanitizer API (1650370)
    • setHTML()
  • Location.ancestorOrigins property (1085214)
  • Navigation API (1997962)
    • NavigationPrecommitController.addHandler() (2009004)
  • options.resizeQuality parameter support in Window.createImageBitmap() and WorkerGlobalScope.createImageBitmap() (2010125)
  • pointerrawupdate event movementX and movementY properties (1987671)
  • Reporting API (1976074, 2008916)
    • CSPViolationReport and IntegrityViolationReport objects using a ReportingObserver, can be filtered on type "csp-violation" or "integrity-violation"
  • Trusted Types API (1994690)
  • ...

Add-on gated:

Add-ons

  • split view support (1993037)
  • tabId parameter support in action.isEnabled and browserAction.isEnabled (2013477)
  • ...

WebDriver

  • browser.setDownloadBehavior command (1989022)
  • browsingContext.getTree command now accepts the vendor specific moz:scope (1944568, 1944570)
  • input.fileDialogOpened event (1855045)
  • emulation.setScreenSettingsOverride command (2000651)
  • script.realmCreated and script.realmDestroyed events (1936770)
  • ...

Marionette:

  • Reporting:GenerateTestReport command (1909662)
  • implicit and pageLoad timeouts supported in line with script timeout; null values to disable the timeouts (2008345)
  • ...

Protocols

HTTP

  • ...

Security

  • ...

Interop

Interop 2026 (2018559)

Interop Focus Areas for implementation:

Prototyping

We have plans to prototype the following but no commitment (nor official "intent") to ship yet. Alphabetical, no indication of ordering of implementation or consideration for shipping.

  • Fullscreen Keyboard Lock (700123)
  • ...

Add-on gated:

Specifications and Notes

Edit and publish new and updated specifications and notes. See Standards for our ongoing work in this area.

  • ...

See Also