📃 July 2020 release notes
Newly available
The following features are newly available:
-
column-span:
The
column-spanCSS property controls whether a child element extends across all columns of a multi-column parent. -
line-break:
The
line-breakCSS property sets how strictly to apply rules for wrapping text to new lines, especially for symbols and punctuation. -
min(), max(), and clamp():
The
min()andmax()CSS functions return the minimum or maximum of the arguments, whileclamp()clamps a value to a given range. -
Numeric separators:
To improve readability for numeric literals, underscores (
_) can be used as separators. For example,1_050.95is equivalent to1050.95. -
Pointer Events:
Pointer events, such as
pointerdown, and thePointerEventAPI, represent general pointing inputs, from a wide range of devices, such as a mouse, pen or stylus, or touch with one or more fingers. Not to be confused with thepointer-eventsCSS property. -
Promise.allSettled():
The
Promise.allSettled()static method waits for an array of promises to settle (resolve or reject). -
queueMicrotask():
The
queueMicrotask()method schedules a function to run after the currently running synchronous JavaScript finishes but before returning to the event loop. -
:read-only and :read-write:
The
:read-onlyand:read-writeCSS pseudo-classes match elements that are read-only or read-write, respectively. For example,:read-onlymatches<input>and<textarea>elements with thereadonlyattribute. -
Resize observer:
The
ResizeObserverAPI observes and reacts to changes in the size of DOM elements. -
revert:
The
revertCSS keyword resets any property to its previous default, provided by either the user or browser stylesheets. For example, settingdisplay: reverton a<div>will likely result indisplay: block, the browser default style. This is often confused withinitial. -
Shadow parts:
The
partandexportpartsHTML attributes expose elements of a shadow DOM as named parts, which can be selected by the::part()CSS pseudo-element for styling. -
text-underline-position:
The
text-underline-positionCSS property sets the position of underlines on text. For example,text-underline-position: underplaces the underline below the text, avoiding crossing descenders. The underline may be further adjusted by thetext-underline-offsetproperty.
New in Chrome
The following features are now available in Chrome:
-
appearance:
The
appearanceCSS property controls the appearance of form controls. Usingappearance: nonedisables any default native appearance and allows the elements to be styled with CSS. -
Flexbox gap:
The
gapCSS property in a flexbox layout sets the size of the space between items. -
Layout instability:
The
layout-shiftperformance entry andLayoutShiftAPI measures the layout stability of web pages based on movements of the elements on the page. They're used to calculate Cumulative Layout Shift (CLS), a common metric for perceived stability. -
ruby-position:
The
ruby-positionCSS property sets the position of a ruby annotation in relation to its base text. Annotations can display over, under, or interleaved with the base text. -
Screen wake lock:
The
navigator.wakeLock.request("screen")API prevents the device's screen from dimming or being turned off. -
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. - Web animations: The web animation API programmatically creates, inspects, and controls element animations, to change and synchronize appearance over time.
New in Chrome Android
The following features are now available in Chrome Android:
-
Application shortcuts:
The
shortcutsweb app manifest member registers common actions of an installed web app with the device. The device can present these actions to the user in contextually appropriate locations, such as jump lists on Windows or the app launcher on Android. -
appearance:
The
appearanceCSS property controls the appearance of form controls. Usingappearance: nonedisables any default native appearance and allows the elements to be styled with CSS. - Content Index: The Content Index API allows developers to register their offline enabled content with the browser.
-
Flexbox gap:
The
gapCSS property in a flexbox layout sets the size of the space between items. -
Layout instability:
The
layout-shiftperformance entry andLayoutShiftAPI measures the layout stability of web pages based on movements of the elements on the page. They're used to calculate Cumulative Layout Shift (CLS), a common metric for perceived stability. -
ruby-position:
The
ruby-positionCSS property sets the position of a ruby annotation in relation to its base text. Annotations can display over, under, or interleaved with the base text. -
Screen wake lock:
The
navigator.wakeLock.request("screen")API prevents the device's screen from dimming or being turned off. -
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. - Web animations: The web animation API programmatically creates, inspects, and controls element animations, to change and synchronize appearance over time.
-
WebOTP:
The
OTPCredentialAPI represents a one-time-password (OTP).
New in Edge
The following features are now available in Edge:
-
appearance:
The
appearanceCSS property controls the appearance of form controls. Usingappearance: nonedisables any default native appearance and allows the elements to be styled with CSS. -
Flexbox gap:
The
gapCSS property in a flexbox layout sets the size of the space between items. -
Layout instability:
The
layout-shiftperformance entry andLayoutShiftAPI measures the layout stability of web pages based on movements of the elements on the page. They're used to calculate Cumulative Layout Shift (CLS), a common metric for perceived stability. -
ruby-position:
The
ruby-positionCSS property sets the position of a ruby annotation in relation to its base text. Annotations can display over, under, or interleaved with the base text. -
Screen wake lock:
The
navigator.wakeLock.request("screen")API prevents the device's screen from dimming or being turned off. -
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. - Web animations: The web animation API programmatically creates, inspects, and controls element animations, to change and synchronize appearance over time.
New in Firefox
The following features are now available in Firefox:
-
Logical assignments:
The logical AND assignment (
&&=) and the logical OR assignment (||=) operators short-circuit the respective binary logical operators. -
Nullish coalescing:
The nullish coalescing (
??) and nullish coalescing assignment (??=) operators return (or assign) its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand. -
Promise.any():
The
Promise.any()static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with anAggregateErrorwhen all of the promises have rejected. -
SharedArrayBuffer and Atomics:
The
SharedArrayBufferobject represents bytes shared between multiple workers and the main thread. TheAtomicsobject safely accessesSharedArrayBufferdata to make sure predictable values are read and written and that operations are not interrupted. -
Reference types (WebAssembly):
The
externreftype can be both a value type and a table element type, whilefuncrefcan be a value type. - Threads and atomics (WebAssembly): Threads in WebAssembly run code in parallel, while atomic memory instructions can guarantee that no two threads can read or write to shared memory at the same time.
-
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. -
SharedArrayBuffer in WebGL:
SharedArrayBufferobjects can be used in WebGL APIs that previously only worked withArrayBufferobjects.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
AudioWorklet:
The
AudioWorkletAPI runs module code in a separate thread, specifically for non-blocking, low latency audio processing. -
clip-path:
The
clip-pathCSS property and SVG attribute set the visible area of an element. Everything outside the area will be hidden. -
contain:
The
containCSS property sets limits to the scope of styles, layout, and paint rendering for speed and efficiency. Thenonekeyword value disables containment,strictis equivalent tocontain: size layout style paint, andcontentis equivalent tocontain: layout style paint. -
Layout containment:
The
contain: layoutCSS declaration isolates the inside of an element such that it cannot affect the layout of the rest of the page or be affected by the rest of the page. This permits the browser to avoid slower layout calculations. -
Paint containment:
The
contain: paintCSS declaration prevents an element's descendants from being drawn outside the boundaries of the containing element, with any overflow clipped. This permits the browser to avoid slower painting calculations. -
Size containment:
The
contain: sizeCSS declaration sets an element's dimensions exclusively by itsheightandwidthproperties, ignoring its contents and descendants. This permits the browser to avoid slower layout calculations. -
Document colors:
A document's
bgColor,fgColor,alinkColor,linkColor, andvlinkColorproperties get and set the background, foreground, active link, link, and visited link colors of that document. -
document.write():
The
document.open(),document.write(),document.writeln(), anddocument.close()methods write content to a document, possibly while that document is still loading. -
execCommand():
The
execCommand()method reads and writes from the clipboard and performs editing commands on editable text, such as changing the font name or style. Related methods check whether commands are supported, enabled, or applied. -
HTML media capture:
The
captureHTML attribute for<input type="file">elements allows the user to capture media using the device's camera or microphone. -
Individual transform properties:
The
translate,rotate, andscaleCSS properties apply single transformations independently, as opposed to applying multiple transformations with thetransformCSS property. -
inputmode:
The
inputmodeglobal HTML attribute gives a hint about what type of data is to be entered into an<input>element, such astext,numeric, oremail, so the browser may help the user enter data using an adapted input mechanism, such as an on-screen virtual keyboard. -
Intl.ListFormat:
The
Intl.ListFormatAPI creates a locale-aware formatter that turns iterable objects into localized strings. -
Intl.Locale:
The
Intl.LocaleAPI parses Unicode locale identifiers, with language, region, and script codes, such aszh-Hans-CNoren-GB. -
Intl.RelativeTimeFormat:
The
Intl.RelativeTimeFormatAPI creates a locale-aware formatter that turns an object representing a relative time (such as '1 day ago') into a localized string. -
Logical assignments:
The logical AND assignment (
&&=) and the logical OR assignment (||=) operators short-circuit the respective binary logical operators. - Web app manifest: A web app manifest file provides metadata about the site. The browser can use the metadata to install the site as a standalone application on the user's device. The metadata usually includes the app's name, icon, description, and ways in which the app wishes to integrate with the device.
-
Motion path:
The
offsetCSS property animates an element along a defined motion path. -
Nullish coalescing:
The nullish coalescing (
??) and nullish coalescing assignment (??=) operators return (or assign) its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand. -
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. -
Preloading responsive images:
The
imagesrcsetandimagesizesattributes with therel="preload"attribute for the<link>HTML element starts fetching responsive images before they're found in the body of the document. -
Promise.any():
The
Promise.any()static method returns a promise that fulfills as soon as the first of an iterable of promises fulfills, with that promise's value. Otherwise, it rejects with anAggregateErrorwhen all of the promises have rejected. -
Quotes:
The
quotesCSS property sets the quotation marks inserted via thecontentCSS property or<q>element. -
navigator.share():
The
navigator.share()method invokes the device's native sharing mechanism and passes text, links, files, and other content to share targets. Also known as the Web Share API. -
SharedArrayBuffer and Atomics:
The
SharedArrayBufferobject represents bytes shared between multiple workers and the main thread. TheAtomicsobject safely accessesSharedArrayBufferdata to make sure predictable values are read and written and that operations are not interrupted. -
String replaceAll():
The
replaceAll()method of strings returns a new string where all matches of a pattern (a string or regular expression) have been substituted with a replacement string. -
Subgrid:
The
subgridvalue for thegrid-template-columnsandgrid-template-rowsproperties allows a grid item to inherit the grid definition of its parent grid container. -
text-underline-offset:
The
text-underline-offsetCSS property shifts underlines on text from the initial position by a given distance. The initial position is affected by thetext-underline-positionproperty. -
Two-value display property:
The
displayCSS property accepts multiple keyword values, such asinline flexorblock flow, to explicitly set an element's inner and outer layout mode. Also known as 2-value, multi-keyword, or multiple value syntax. -
user-select:
The
user-selectCSS property controls which elements can be selected by the user. - BigInt to i64 conversion (WebAssembly): Integer values pass bidirectionally between JavaScript and WebAssembly, converted to i64 values in WebAssembly or BigInt values in JavaScript.
-
Bulk memory operations (WebAssembly):
Bulk memory operations, such as
copyandinit, mirror the efficiency of nativememcpyandmemmoveoperations. - Multi-value (WebAssembly): Instructions and blocks can produce multiple result values.
-
Reference types (WebAssembly):
The
externreftype can be both a value type and a table element type, whilefuncrefcan be a value type. - Threads and atomics (WebAssembly): Threads in WebAssembly run code in parallel, while atomic memory instructions can guarantee that no two threads can read or write to shared memory at the same time.
-
Weak references:
The
WeakRefandFinalizationRegistryobjects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection. - Web animations: The web animation API programmatically creates, inspects, and controls element animations, to change and synchronize appearance over time.
-
SharedArrayBuffer in WebGL:
SharedArrayBufferobjects can be used in WebGL APIs that previously only worked withArrayBufferobjects.