Platform/Roadmap2025: Difference between revisions

144, 145, 146b
(144, 145, 146b)
 
Line 4: Line 4:
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)<!-- thru Fx143, needs to incorporate Fx144 to present, eventually thru 146 relnotes --><!-- confirm all Interop 2025 focus areas are listed -->
* [https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases Firefox release notes for developers] (past)<!-- thru Fx146b, needs to incorporate Fx146 relnotes --><!-- confirm all Interop 2025 focus areas are listed -->
* [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 14: Line 14:
== HTML ==
== HTML ==
* <code>autocorrect</code> attribute ([https://bugzil.la/1725806 1725806], [https://bugzil.la/1927977 1927977])
* <code>autocorrect</code> attribute ([https://bugzil.la/1725806 1725806], [https://bugzil.la/1927977 1927977])
* <code>command</code> and <code>commandfor</code> attributes of the <code><nowiki><button></nowiki></code> element ([https://bugzil.la/1983523 1983523])
* <code>contenteditable=plain-text</code> ([https://bugzil.la/1922724 1922724])
* <code>contenteditable=plain-text</code> ([https://bugzil.la/1922724 1922724])
* <code><nowiki><dialog></nowiki></code> element support <code>closedby</code> attribute ([https://bugzil.la/1964078 1964078])
* <code><nowiki><dialog></nowiki></code> element support <code>closedby</code> attribute ([https://bugzil.la/1964078 1964078])
* <code>hidden=until-found</code> ([https://bugzil.la/1761043 1761043], [https://bugzil.la/1955379 1955379])
* <code>hidden=until-found</code> ([https://bugzil.la/1761043 1761043], [https://bugzil.la/1955379 1955379])
* <code><nowiki><hr></nowiki></code> in <code><nowiki><select></nowiki></code> support for separators
** supported in Firefox for Android ([https://bugzil.la/1867045 1867045], [https://bugzil.la/1830909 1830909])
* <code><nowiki><script type=importmap></nowiki></code> support <code>integrity</code> key ([https://bugzil.la/1945540 1945540])
* <code><nowiki><script type=importmap></nowiki></code> support <code>integrity</code> key ([https://bugzil.la/1945540 1945540])


== CSS ==
== CSS ==
* <code>@scope</code> at-rule ([https://bugzil.la/1991105 1991105])
* <code>:has-slotted</code> pseudo-class ([https://bugzil.la/1940691 1940691])
* <code>:has-slotted</code> pseudo-class ([https://bugzil.la/1940691 1940691])
* <code>:open</code> pseudo-class ([https://bugzil.la/1936113 1936113])
* <code>:open</code> pseudo-class ([https://bugzil.la/1936113 1936113])
Line 26: Line 30:
* <code>::marker</code> with before and after pseudo-elements, e.g. <code>::before::marker</code> and <code>::after::marker</code> ([https://bugzil.la/1980215 1980215])
* <code>::marker</code> with before and after pseudo-elements, e.g. <code>::before::marker</code> and <code>::after::marker</code> ([https://bugzil.la/1980215 1980215])
* <code>align-self</code>, <code>justify-self</code>, <code>place-self</code> support for absolutely positioned elements ([https://bugzil.la/1920160 1920160])
* <code>align-self</code>, <code>justify-self</code>, <code>place-self</code> support for absolutely positioned elements ([https://bugzil.la/1920160 1920160])
* <code>color</code> data type supports <code>display-p3-linear</code> color space ([https://bugzil.la/1996318 1996318])
* <code>contrast-color()</code> function ([https://bugzil.la/1682439 1682439])
* <code>font-family</code> value <code>math</code> generic font family ([https://bugzil.la/1788937 1788937])
* <code>font-variant-emoji</code> ([https://bugzil.la/1954214 1954214])
* <code>font-variant-emoji</code> ([https://bugzil.la/1954214 1954214])
* <code>hyphenate-limit-chars</code> ([https://bugzil.la/1521723 1521723], [https://bugzil.la/1947183 1947183])
* <code>hyphenate-limit-chars</code> ([https://bugzil.la/1521723 1521723], [https://bugzil.la/1947183 1947183])
* <code>linear-gradient()</code>, <code>conic-gradient()</code>, <code>radial-gradient()</code> support single color stop and 0-1 positions ([https://bugzil.la/1900530 1900530])
* <code>linear-gradient()</code>, <code>conic-gradient()</code>, <code>radial-gradient()</code> support single color stop and 0-1 positions ([https://bugzil.la/1900530 1900530])
* <code>text-autospace</code> ([https://bugzil.la/1869577 1869577])
* <code>text-autospace</code> ([https://bugzil.la/1869577 1869577], [https://bugzil.la/1981086 1981086])
* <code>text-decoration-inset</code> ([https://bugzil.la/1979915 1979915], [https://bugzil.la/1997157 1997157], [https://bugzil.la/1993043 1993043])
* <code>text-decoration-line:spelling-error</code> and <code>grammar-error</code> ([https://bugzil.la/1950844 1950844])
* <code>text-decoration-line:spelling-error</code> and <code>grammar-error</code> ([https://bugzil.la/1950844 1950844])
* view transitions features ([https://bugzil.la/1985809 1985809])
* view transitions features ([https://bugzil.la/1985809 1985809])
** <code>:active-view-transition</code> pseudo-class
** <code>:active-view-transition</code> pseudo-class
** <code>::view-transition</code>, <code>::view-transition-group()</code>, <code>::view-transition-image-pair()</code>, <code>::view-transition-new()</code>, <code>::view-transition-old()</code> pseudo-classes
** <code>::view-transition</code>, <code>::view-transition-group()</code>, <code>::view-transition-image-pair()</code>, <code>::view-transition-new()</code>, <code>::view-transition-old()</code> pseudo-elements
** <code>view-transition-class</code> and <code>view-transition-name</code> properties
** <code>view-transition-class</code> and <code>view-transition-name</code> properties
* <code>-webkit-fill-available</code> (alias for <code>stretch</code>) value for <code>width</code> and <code>height</code> properties ([https://bugzil.la/1988938 1988938], [https://bugzil.la/1789477 1789477])


=== CSSOM ===
=== CSSOM ===
Line 49: Line 58:


== Media ==
== Media ==
Including Media-related APIs like WebRTC
* HEVC (H.265) hardware support on Android, and hardware and software support on Linux ([https://bugzil.la/1950032 1950032])
* HEVC (H.265) hardware support on Android, and hardware and software support on Linux ([https://bugzil.la/1950032 1950032])
* Matroska container (<code>.mkv</code>) support for codecs: AVC, HEVC, VP8, VP9, AV1, AAC, Opus, and Vorbis ([https://bugzil.la/1991752 1991752])
* <code>resizeMode</code> on <code>getUserMedia()</code> and <code>getDisplayMedia()</code> methods of <code>MediaDevices</code> ([https://bugzil.la/1286945 1286945])
* <code>RTCDataChannel</code> <code>closing</code> event and <code>onclosing()</code> event handler ([https://bugzil.la/1611953 1611953])
* <code>RTCIceCandidatePairStats</code> properties <code>currentRoundTripTime</code>, <code>totalRoundTripTime</code>, and <code>responsesReceived</code> properties ([https://bugzil.la/1371391 1371391])
* <code>RTCIceCandidatePairStats</code> properties <code>currentRoundTripTime</code>, <code>totalRoundTripTime</code>, and <code>responsesReceived</code> properties ([https://bugzil.la/1371391 1371391])
* <code>RTCInboundRtpStreamStats</code> properties <code>estimatedPlayoutTimestamp</code>, <code>framesAssembledFromMultiplePackets</code>, <code>freezeCount</code>, <code>jitterBufferMinimumDelay</code>, <code>jitterBufferTargetDelay</code>, <code>keyFramesDecoded</code>, <code>pauseCount</code>, <code>totalAssemblyTime</code>, <code>totalFreezesDuration</code>, and <code>totalPausesDuration</code> properties ([https://bugzil.la/1926622 1926622])
* <code>RTCInboundRtpStreamStats</code> properties <code>estimatedPlayoutTimestamp</code>, <code>framesAssembledFromMultiplePackets</code>, <code>freezeCount</code>, <code>jitterBufferMinimumDelay</code>, <code>jitterBufferTargetDelay</code>, <code>keyFramesDecoded</code>, <code>pauseCount</code>, <code>totalAssemblyTime</code>, <code>totalFreezesDuration</code>, and <code>totalPausesDuration</code> properties ([https://bugzil.la/1926622 1926622])
Line 77: Line 90:
== JS ==
== JS ==
* <code>Atomics.pause()</code> ([https://bugzil.la/1937805 1937805])
* <code>Atomics.pause()</code> ([https://bugzil.la/1937805 1937805])
* <code>Atomics.waitAsync()</code> ([https://bugzil.la/1884148 1884148])
* <code>Error.captureStackTrace()</code> ([https://bugzil.la/1886820 1886820], [https://bugzil.la/1950508 1950508])
* <code>Error.captureStackTrace()</code> ([https://bugzil.la/1886820 1886820], [https://bugzil.la/1950508 1950508])
* <code>Error.isError()</code> ([https://bugzil.la/1952249 1952249])
* <code>Error.isError()</code> ([https://bugzil.la/1952249 1952249])
* <code>Intl.DurationFormat</code> ([https://bugzil.la/1648139 1648139], [https://bugzil.la/1933303 1933303])
* <code>Intl.DurationFormat</code> ([https://bugzil.la/1648139 1648139], [https://bugzil.la/1933303 1933303])
* <code>JSON.parse()</code> with source, <code>JSON.isRawJSON()</code> & <code>JSON.rawJSON()</code> ([https://bugzil.la/1934622 1934622])
* <code>JSON.parse()</code> with source, <code>JSON.isRawJSON()</code> & <code>JSON.rawJSON()</code> ([https://bugzil.la/1934622 1934622])
* <code>Map.prototype.getOrInsert()</code>, <code>Map.prototype.getOrInsertComputed()</code>, <code>WeakMap.prototype.getOrInsert()</code>, and <code>WeakMap.prototype.getOrInsertComputed()</code> ([https://bugzil.la/1979917 1979917])
* <code>Math.sumPrecise()</code> ([https://bugzil.la/1943120 1943120])
* <code>Math.sumPrecise()</code> ([https://bugzil.la/1943120 1943120])
* <code>Promise.try()</code> ([https://bugzil.la/1905364 1905364], [https://bugzil.la/1917879 1917879])
* <code>Promise.try()</code> ([https://bugzil.la/1905364 1905364], [https://bugzil.la/1917879 1917879])
Line 87: Line 102:
* Temporal API ([https://bugzil.la/1912511 1912511], [https://bugzil.la/1946823 1946823], [https://bugzil.la/1954138 1954138])
* Temporal API ([https://bugzil.la/1912511 1912511], [https://bugzil.la/1946823 1946823], [https://bugzil.la/1954138 1954138])
* <code>variants</code> accessor on <code>Intl.Locale</code> instances ([https://bugzil.la/1970161 1970161])
* <code>variants</code> accessor on <code>Intl.Locale</code> instances ([https://bugzil.la/1970161 1970161])
* <code>WeakMap</code> and <code>WeakSet</code> support <code>Symbol</code> objects as keys ([https://bugzil.la/1966745 1966745])


== APIs ==
== APIs ==
Line 94: Line 110:
* Login Status API with Federated Credential Management (FedCM) API ([https://bugzil.la/1945573 1945573], [https://bugzil.la/1945576 1945576])
* Login Status API with Federated Credential Management (FedCM) API ([https://bugzil.la/1945573 1945573], [https://bugzil.la/1945576 1945576])
* <code>Notification.actions</code> ([https://bugzil.la/1225110 1225110])
* <code>Notification.actions</code> ([https://bugzil.la/1225110 1225110])
* <code>PerformanceEventTiming.interactionId</code> ([https://bugzil.la/1934683 1934683])
* <code>PerformanceEventTiming.interactionId</code> ([https://bugzil.la/1934683 1934683], [https://bugzil.la/1956809 1956809])
* <code>PointerEvent</code> support <code>persistentDeviceId</code> property ([https://bugzil.la/1968400 1968400])
* <code>PointerEvent</code> support <code>persistentDeviceId</code> property ([https://bugzil.la/1968400 1968400])
* <code>PublicKeyCredential.getClientCapabilities()</code> ([https://bugzil.la/1884466 1884466])
* <code>PublicKeyCredential.getClientCapabilities()</code> ([https://bugzil.la/1884466 1884466])
* <code>resizeMode</code> on <code>getUserMedia()</code> and <code>getDisplayMedia()</code> methods of <code>MediaDevices</code> ([https://bugzil.la/1286945 1286945])
* <code>RTCCertificate</code> support <code>getFingerprints()</code> method ([https://bugzil.la/1525241 1525241])
* <code>RTCCertificate</code> support <code>getFingerprints()</code> method ([https://bugzil.la/1525241 1525241])
* <code>RTCDataChannel</code> support <code>closing</code> event and <code>onclosing()</code> event handler ([https://bugzil.la/1611953 1611953])
* <code>RTCDataChannel</code> support <code>closing</code> event and <code>onclosing()</code> event handler ([https://bugzil.la/1611953 1611953])
* <code>ScreenOrientation</code> support <code>lock()</code> and <code>unlock()</code> methods
** on Android and Windows tablets ([https://bugzil.la/1983483 1983483])
* <code>SubtleCrypto.importKey()</code> support import keys defined as compressed elliptic curve points when using the ECDSA or ECDH algorithms ([https://bugzil.la/1971499 1971499])
* <code>ToggleEvent</code> support <code>source</code> property ([https://bugzil.la/1968987 1968987])
* URL Pattern API ([https://bugzil.la/1731418 1731418])
* URL Pattern API ([https://bugzil.la/1731418 1731418])
* View Transition API ([https://bugzil.la/1950759 1950759], [https://bugzil.la/1985809 1985809])
* View Transition API for SPAs - single-page-applications ([https://bugzil.la/1950759 1950759], [https://bugzil.la/1985809 1985809])
* Web Authentication extensions: <code>largeBlob</code> ([https://bugzil.la/1795020 1795020]), <code>credProps</code> ([https://bugzil.la/1844449 1844449]), <code>prf</code> ([https://bugzil.la/1935280 1935280])
* Web Authentication extensions: <code>largeBlob</code> ([https://bugzil.la/1795020 1795020]), <code>credProps</code> ([https://bugzil.la/1844449 1844449]), <code>prf</code> ([https://bugzil.la/1935280 1935280])
* WebGPU API support on Windows ([https://bugzil.la/1972486 1972486])
* WebGPU API support on Windows ([https://bugzil.la/1972486 1972486])


=== Add-ons ===
=== Add-ons ===
* <code>browsingData.removeLocalStorage</code> and <code>browsingData.remove</code>
** when <code>localStorage</code> is set in <code>browsingData.DataTypeSet</code>, delete objects from <code>sessionStorage</code>. ([https://bugzil.la/1886894 1886894])
* <code>cookies.SameSiteStatus</code> support <code>unspecified</code> ([https://bugzil.la/1550032 1550032])
* <code>cookies.SameSiteStatus</code> support <code>unspecified</code> ([https://bugzil.la/1550032 1550032])
* <code>getBytesInUse()</code> to <code>storage.local</code> and <code>storage.managed</code> ([https://bugzil.la/1385832 1385832])
* <code>json</code> resource type in <code>webRequest.ResourceType</code> & <code>declarativeNetRequest.ResourceType</code> ([https://bugzil.la/1858078 1858078], [https://bugzil.la/1950836 1950836])
* <code>json</code> resource type in <code>webRequest.ResourceType</code> & <code>declarativeNetRequest.ResourceType</code> ([https://bugzil.la/1858078 1858078], [https://bugzil.la/1950836 1950836])
* Manifest V3 extensions:
* Manifest V3 extensions:
Line 120: Line 142:
* <code>browser.createUserContext</code> command support <code>acceptInsecureCerts</code> ([https://bugzil.la/1959372 1959372]), <code>proxy</code> ([https://bugzil.la/1967653 1967653])
* <code>browser.createUserContext</code> command support <code>acceptInsecureCerts</code> ([https://bugzil.la/1959372 1959372]), <code>proxy</code> ([https://bugzil.la/1967653 1967653])
* <code>browser.getClientWindows</code> command ([https://bugzil.la/1855025 1855025])
* <code>browser.getClientWindows</code> command ([https://bugzil.la/1855025 1855025])
* <code>browsingContext.downloadWillBegin</code> event ([https://bugzil.la/1874365 1874365])
* <code>browsingContext.downloadEnd</code> event ([https://bugzil.la/1970293 1970293])
* <code>browsingContext.historyUpdated</code> event ([https://bugzil.la/1906051 1906051])
* <code>browsingContext.historyUpdated</code> event ([https://bugzil.la/1906051 1906051])
* <code>browsingContext.Info</code> type support <code>clientWindow</code> property ([https://bugzil.la/1920952 1920952])
* <code>browsingContext.Info</code> type support <code>clientWindow</code> property ([https://bugzil.la/1920952 1920952])
Line 129: Line 153:
* <code>emulation.setGeolocationOverride</code> ([https://bugzil.la/1954992 1954992])
* <code>emulation.setGeolocationOverride</code> ([https://bugzil.la/1954992 1954992])
* <code>emulation.setLocaleOverride</code> ([https://bugzil.la/1968952 1968952])
* <code>emulation.setLocaleOverride</code> ([https://bugzil.la/1968952 1968952])
* <code>emulation.setScreenOrientationOverride</code> command ([https://bugzil.la/1974167 1974167])
* <code>emulation.setTimezoneOverride</code> command ([https://bugzil.la/1978027 1978027])
* <code>emulation.setUserAgentOverride</code> command ([https://bugzil.la/1987935 1987935])
* <code>network.addDataCollector</code> ([https://bugzil.la/1971778 1971778])
* <code>network.addDataCollector</code> ([https://bugzil.la/1971778 1971778])
* <code>network.removeDataCollector</code> ([https://bugzil.la/1971781 1971781])
* <code>network.removeDataCollector</code> ([https://bugzil.la/1971781 1971781])
Line 147: Line 174:
=== HTTP ===
=== HTTP ===
* <code>Clear-Site-Data: cache</code> ([https://bugzil.la/1942272 1942272], [https://bugzil.la/1930500 1930500])
* <code>Clear-Site-Data: cache</code> ([https://bugzil.la/1942272 1942272], [https://bugzil.la/1930500 1930500])
* <code>Integrity-Policy</code> and <code>Integrity-Policy-Report-Only</code> headers for script resources ([https://bugzil.la/1984973 1984973])
* <code>Origin-Agent-Cluster</code> ([https://bugzil.la/1665474 1665474])
* <code>Origin-Agent-Cluster</code> ([https://bugzil.la/1665474 1665474])


canmove, Confirmed users
2,856

edits