📃 April 2021 release notes
Newly available
The following features are newly available:
-
AudioWorklet:
The
AudioWorkletAPI runs module code in a separate thread, specifically for non-blocking, low latency audio processing. -
::file-selector-button:
The
::file-selector-buttonCSS pseudo-element selects the button of a<input type="file">element. -
Flexbox gap:
The
gapCSS property in a flexbox layout sets the size of the space between items. -
Date and time <input> types:
The
<input type="date">and<input type="time">HTML elements show date and time pickers. -
Intl.DisplayNames:
The
Intl.DisplayNamesAPI provides localized names of language, region, script, and currency codes. -
Intl.ListFormat:
The
Intl.ListFormatAPI creates a locale-aware formatter that turns iterable objects into localized strings. -
MediaStream recording:
The
MediaRecorderAPI captures data generated byMediaStreamorHTMLMediaElementobjects for analysis, processing, or saving to disk. Also known as the Media Recording API. -
OES_fbo_render_mipmap WebGL extension:
The
OES_fbo_render_mipmapextension for WebGL 1.0 contexts attaches any level of a texture to a framebuffer object. -
OfflineAudioContext:
The
OfflineAudioContextAPI represents an audio processing graph that writes to anAudioBufferinstead of an output device. -
Paint timing:
The
paintperformance entry and thePerformancePaintTimingAPI measures the duration of "paint" (also called "render") operations as a page loads. The API measures the time to First Paint (FP) and First Contentful Paint (FCP), common metrics for perceived loading times. -
Quotes:
The
quotesCSS property sets the quotation marks inserted via thecontentCSS property or<q>element. - BigInt to i64 conversion (WebAssembly): Integer values pass bidirectionally between JavaScript and WebAssembly, converted to i64 values in WebAssembly or BigInt values in JavaScript.
- Sign extension operators (WebAssembly): Sign-extension operator instructions extend the width of 8-bit, 16-bit, and 32-bit values to 32-bit and 64-bit values.
-
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. - Web Audio: The Web Audio API creates graphs of audio nodes that handle sound inputs, synthesize sounds, apply effects, create visualizations, and output to audio devices.
Widely available
The following features are now widely available:
-
<meter>:
The
<meter>element represents a scalar value within a known range or a fractional value, typically shown as a progress bar. -
<output>:
The
<output>element represents the result of a calculation, user action, or form entry. -
overflow-wrap:
The
overflow-wrapCSS property breaks a line of text onto multiple lines inside the targeted element in an otherwise unbreakable place to prevent overflow. The legacy property isword-wrap. -
Promise finally():
The promise
finally()method executes a function when the promise settles (resolves or rejects). -
resolution media query (compatibility prefixes):
The
-webkit-device-pixel-ratio,-webkit-min-device-pixel-ratio, and-webkit-max-device-pixel-ratioCSS media queries are standardized compatibility alternatives toresolutionmedia queries. -
tabindex:
The
tabindexHTML attribute make an element focusable, and sets the element's relative ordering for sequential focus navigation.
New in Chrome
The following features are now available in Chrome:
-
overflow: clip:
The
overflow: clipCSS declaration clips an element's overflowing content to the box that's defined by theoverflow-clip-marginproperty. Unlikeoverflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible. -
User agent client hints:
The
Sec-CH-UAHTTP request header and thenavigator.userAgentDataAPI expose browser and platform information used to vary responses and application logic. User agent client hints are similar to user agent strings but more privacy-preserving and safer to parse. -
Depth sensing:
An
XRDepthInformationobject represents a measurement of the distance from the user's device to the real-world geometry in the user's environment. -
Lighting estimation:
The
XRLightProbeandXRLightEstimateobjects represent real-world environmental lighting conditions during a WebXR session.
New in Chrome Android
The following features are now available in Chrome Android:
-
overflow: clip:
The
overflow: clipCSS declaration clips an element's overflowing content to the box that's defined by theoverflow-clip-marginproperty. Unlikeoverflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible. -
User agent client hints:
The
Sec-CH-UAHTTP request header and thenavigator.userAgentDataAPI expose browser and platform information used to vary responses and application logic. User agent client hints are similar to user agent strings but more privacy-preserving and safer to parse. -
Depth sensing:
An
XRDepthInformationobject represents a measurement of the distance from the user's device to the real-world geometry in the user's environment. -
Lighting estimation:
The
XRLightProbeandXRLightEstimateobjects represent real-world environmental lighting conditions during a WebXR session.
New in Edge
The following features are now available in Edge:
-
overflow: clip:
The
overflow: clipCSS declaration clips an element's overflowing content to the box that's defined by theoverflow-clip-marginproperty. Unlikeoverflow: hidden, it allows you to hide overflow on one axis while keeping overflow on the other axis visible. -
User agent client hints:
The
Sec-CH-UAHTTP request header and thenavigator.userAgentDataAPI expose browser and platform information used to vary responses and application logic. User agent client hints are similar to user agent strings but more privacy-preserving and safer to parse. -
Depth sensing:
An
XRDepthInformationobject represents a measurement of the distance from the user's device to the real-world geometry in the user's environment. -
Lighting estimation:
The
XRLightProbeandXRLightEstimateobjects represent real-world environmental lighting conditions during a WebXR session.
New in Firefox
The following features are now available in Firefox:
-
display: ruby:
The
display: rubyCSS declaration renders an element with the box layout of a<ruby>HTML element. Child elements may use equivalents to<ruby>internal elements such asdisplay: ruby-basefor<rb>. - HTTP/3: HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
-
outline:
The
outlineCSS shorthand sets the color, style, and width of a line around an element, outside of the border. -
:user-valid and :user-invalid:
The
:user-validand:user-invalidpseudo-classes match form controls that have been marked as valid or invalid based on their validation constraints.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
display: ruby:
The
display: rubyCSS declaration renders an element with the box layout of a<ruby>HTML element. Child elements may use equivalents to<ruby>internal elements such asdisplay: ruby-basefor<rb>. - HTTP/3: HTTP/3 is a major revision of the HTTP network protocol, providing improved performance and efficiency by using QUIC as the underlying transport protocol.
-
outline:
The
outlineCSS shorthand sets the color, style, and width of a line around an element, outside of the border. -
:user-valid and :user-invalid:
The
:user-validand:user-invalidpseudo-classes match form controls that have been marked as valid or invalid based on their validation constraints.
New in Safari
The following features are now available in Safari:
-
autocorrect:
The
autocorrectglobal HTML attribute controls whether to automatically correct spelling or punctuation errors for user input. -
EXT_float_blend WebGL extension:
The
EXT_float_blendextension for WebGL 1.0 and 2.0 contexts adds 32-bit floating-point components to blending and draw buffers. -
EXT_texture_compression_rgtc WebGL extension:
The
EXT_texture_compression_rgtcextension for WebGL 1.0 and 2.0 contexts adds RGTC compressed texture formats. RGTC is a block-based texture compression format suited for unsigned and signed red and red-green textures. Also known as Red-Green Texture Compression. -
Individual transform properties:
The
translate,rotate, andscaleCSS properties apply single transformations independently, as opposed to applying multiple transformations with thetransformCSS property. -
Intl.Segmenter:
The
Intl.SegmenterAPI creates a locale-aware text splitter that can separate a string into meaningful graphemes, words, or sentences. -
KHR_parallel_shader_compile WebGL extension:
The
KHR_parallel_shader_compileextension for WebGL 1.0 and 2.0 contexts checks the status of shader compilation without blocking the runtime. -
PerformanceTiming and PerformanceNavigation:
The
window.performance.timingandwindow.performance.navigationAPIs report performance timing information for events that occur during the loading and use of the current page. -
prefers-contrast media query:
The
prefers-contrastCSS media query sets styles based on whether the user prefers more or less contrast, the difference between foreground and background colors. - Streams: The streams API creates, composes, and consumes continuously generated data.
-
WEBGL_compressed_texture_s3tc_srgb WebGL extension:
The
WEBGL_compressed_texture_s3tc_srgbextension for WebGL 1.0 and 2.0 contexts adds S3TC compressed texture formats for the sRGB colorspace tocompressedTexImage2D()andcompressedTexSubImage2D(). -
WebVTT cue alignment:
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using
lineandpositionsettings in WebVTT files or thelineAlignandpositionAlignproperties ofVTTCueusing JavaScript. - WebVTT regions: WebVTT regions set the areas of the video where captions or subtitles should be rendered, such as placing roll-up captions used for live captions.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
autocorrect:
The
autocorrectglobal HTML attribute controls whether to automatically correct spelling or punctuation errors for user input. -
Individual transform properties:
The
translate,rotate, andscaleCSS properties apply single transformations independently, as opposed to applying multiple transformations with thetransformCSS property. -
Intl.Segmenter:
The
Intl.SegmenterAPI creates a locale-aware text splitter that can separate a string into meaningful graphemes, words, or sentences. -
KHR_parallel_shader_compile WebGL extension:
The
KHR_parallel_shader_compileextension for WebGL 1.0 and 2.0 contexts checks the status of shader compilation without blocking the runtime. -
PerformanceTiming and PerformanceNavigation:
The
window.performance.timingandwindow.performance.navigationAPIs report performance timing information for events that occur during the loading and use of the current page. -
prefers-contrast media query:
The
prefers-contrastCSS media query sets styles based on whether the user prefers more or less contrast, the difference between foreground and background colors. - Streams: The streams API creates, composes, and consumes continuously generated data.
-
WEBGL_compressed_texture_s3tc_srgb WebGL extension:
The
WEBGL_compressed_texture_s3tc_srgbextension for WebGL 1.0 and 2.0 contexts adds S3TC compressed texture formats for the sRGB colorspace tocompressedTexImage2D()andcompressedTexSubImage2D(). -
WebVTT cue alignment:
The WebVTT cue alignment settings control which part of the cue is aligned with the given line and position. Cue alignment is set using
lineandpositionsettings in WebVTT files or thelineAlignandpositionAlignproperties ofVTTCueusing JavaScript. - WebVTT regions: WebVTT regions set the areas of the video where captions or subtitles should be rendered, such as placing roll-up captions used for live captions.