The ImageBitmap Rendering Context for <canvas>

<img>

ImageBitmap

ImageBitmapRenderingContext

<canvas>

<canvas>

const image = await createImageBitmap(imageBlob); const canvas = document.createElement('canvas'); const context = canvas.getContext('bitmaprenderer'); context.transferFromImageBitmap(image); canvas.toBlob((outputJPEGBlob) => { // Do something with outputJPEGBlob. }, 'image/jpeg');

createImageBitmap()

imageBlob

createImageBitmap()

CSS Typed Object Model

el.style.opacity = 0.3; el.style.opacity === "0.3"

el.attributeStyleMap.set("opacity", CSS.number("0.3")); el.attributeStyleMap.get("opacity").value === 0.3

CSSUnitValue

Asynchronous Clipboard API

execCommand('copy')

try { await navigator.clipboard.writeText("Hello, clipboard."); } catch { console.error("Unable to write to clipboard."); }

const data = await navigator.clipboard.readText(); console.log("From the clipboard:", data);

AudioWorklet

ScriptProcessorNode

ScriptProcessorNode

AudioWorklet

Other Features in this Release

Blink > Animation

add

accumulate

Blink > CSS

The mathematical expressions calc(), min() , and max() are now supported in media queries, as required by the CSS Values and Units Module Level 4 specification. This change brings them in line with other types of rules where these functions are allowed anywhere a number is allowed.

, and are now supported in media queries, as required by the CSS Values and Units Module Level 4 specification. This change brings them in line with other types of rules where these functions are allowed anywhere a number is allowed. Floating point values are now allowed in the rgb() and rgba() functions.

Blink > Feature Policy

deviceorientation

deviceorientationabsolute

devicemotion

'self'

Blink > File API

Blink > Forms

The <textarea> element and the <select> element now support the autocomplete attribute as required by the specification.

element and the element now support the attribute as required by the specification. A mutable checkbox now fires three events as required by the HTML specification: a click event, then an input event, then a change event. Formerly only the click and change events were fired.

Blink > Fullscreen

window.focus(),

Blink > GetUserMedia

MediaStreamTrack

MediaTrackCapabilities

Blink > JavaScript

The Function.prototype.toString() function now returns exactly what is written in the source code. This includes whitespace and other text that may have been used. For example, if there is a comment between the function keyword and the function name, the comment is now returned in addition to the keyword and name.

function now returns exactly what is written in the source code. This includes whitespace and other text that may have been used. For example, if there is a comment between the function keyword and the function name, the comment is now returned in addition to the keyword and name. JSON is now a syntactic subset of ECMAScript, which allows line separator (U+2028) and paragraph separator (U+2029) symbols in string literals.

The catch clause of a try statement can now be used without a parameter.

clause of a statement can now be used without a parameter. String.prototype.trimStart() and String.prototype.trimEnd() are now available as the standards-based way of trimming whitespace from strings, in addition to String.prototype.trim() which was already implemented. The non-standard trimLeft() and trimRight() remain as aliases of the new methods for backward compatibility.

and are now available as the standards-based way of trimming whitespace from strings, in addition to which was already implemented. The non-standard and remain as aliases of the new methods for backward compatibility. The Array.prototype.values() method returns a new array iterator object that contains the values for each index in the array.

Blink > Layout

The grid prefix has been removed from the CSS gutter properties: grid-gap becomes gap grid-row-gap becomes row-gap grid-column-gap becomes column-gap



The default value for all three is normal and the prefixed properties are aliases of the new ones. Note that column-gap property already exists and is used by css-multicol .

Elements with the display properties table-row , table-row-group , table-header-group , table-footer-group , table-cell , and table-caption that have a transform property are now containing blocks for fixed position elements. Blink currently does not make <tr> , <tbody> , <tfoot> , and <thead> be containing blocks for fixed-position elements.

Blink > Media

As announced earlier, autoplay is now allowed only when either the media won't play sound, after the user clicks or taps on the site, or (on desktop) if the user has previously shown an interest in media on the site. This will reduce unexpected video playbacks with sound when first opening a web page.

is now allowed only when either the media won't play sound, after the user clicks or taps on the site, or (on desktop) if the user has previously shown an interest in media on the site. This will reduce unexpected video playbacks with sound when first opening a web page. The Media Capabilities, Decoding Info API allows websites to get more information about the decoding abilities of the client. This enables more informed selection of media streams for the user, avoiding scenarios such as where the client is unable to smoothly and power-efficiently decode a resolution that might have been picked based only on available bandwidth and screen size.

Blink > Network

The Request object now supports a keepalive property which allows a fetch to continue after a tab is closed. This feature is invoked by passing a boolean in the constructor's initialization object. Its value can be read back from the object itself. This property can be used with sendBeacon() as well.

property which allows a fetch to continue after a tab is closed. This feature is invoked by passing a boolean in the constructor's initialization object. Its value can be read back from the object itself. This property can be used with as well. New AbortSignal and AbortController interfaces allow a fetch to be canceled. To accomplish this create an AbortController object and pass its signal property as an option to fetch . Calling abortController.abort() cancels the fetch. There's more information in our abortable fetch article, but a small code example is shown below.

const controller = new AbortController(); const signal = controller.signal; const requestPromise = fetch(url, { signal }); // Abort the fetch: controller.abort();

Blink > ServiceWorker

A service worker can no longer respond to a request whose mode is same-origin with a response whose type is CORS . This is a security measure recently added to the Fetch specification.

with a response whose type is . This is a security measure recently added to the Fetch specification. FetchEvent.clientId now returns an empty string instead of null when it isn't set. For example, this can occur during a navigation request.

Blink > WebRTC

CreateDTMFSender()

Deprecations and Interoperability Improvements

Blink > CSS

object-position

perspective-origin

top right 20%

Blink > HTML

Blink > Input

Blink > Web Audio

AudioParam.prototype.value

AudioParam

AudioParam.prototype.setTargetAtTime()

Posted by Naina Raisinghani