📃 December 2021 release notes
Newly available
The following features are newly available:
-
Contenteditable:
The
contenteditable
global HTML attribute allows the user to edit the content of an element, such as inserting or deleting text. -
SharedArrayBuffer and Atomics:
The
SharedArrayBuffer
object represents bytes shared between multiple workers and the main thread. TheAtomics
object safely accessesSharedArrayBuffer
data to make sure predictable values are read and written and that operations are not interrupted. - 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.
New in Firefox
The following features are now available in Firefox:
-
Page setup:
The
@page
CSS at-rule sets the page-specific dimensions and margins for content such as printed documents, ebooks, or slides.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
Cursor styles:
The
cursor
CSS property styles the pointer, allowing you to provide hints to the user on how to interact with the hovered element. -
Page setup:
The
@page
CSS at-rule sets the page-specific dimensions and margins for content such as printed documents, ebooks, or slides.
New in Safari
The following features are now available in Safari:
-
Color management for 2D canvas:
The optional
colorSpace
parameter of a 2D canvas'sgetContext()
method chooses the color representation, such as"srgb"
or"display-p3"
. - Exception handling (WebAssembly): Exceptions break the normal control flow of execution to represent exceptional behavior, such as an error. You can respond to the exception in JavaScript code.
New in Safari on iOS
The following features are now available in Safari on iOS:
-
Color management for 2D canvas:
The optional
colorSpace
parameter of a 2D canvas'sgetContext()
method chooses the color representation, such as"srgb"
or"display-p3"
. - Exception handling (WebAssembly): Exceptions break the normal control flow of execution to represent exceptional behavior, such as an error. You can respond to the exception in JavaScript code.