• Chrome 90 Beta: AV1 Encoder for WebRTC, New Origin Trials, and More
  • Chromium Dev
  • The Nuggets translation Project
  • Translator: Hoarfroster
  • Label: Others

This article was published on Thursday, March 11, 2021

Unless otherwise noted, the changes described below apply to updates to the Beta Channel version of Chrome for Android, Chrome OS, Linux, macOS, and Windows. You can learn more about the features listed here by linking to this article or visiting the list on ChromeStatus.com. Chrome 90 was released in Beta on March 11, 2021.

AV1 encoder

Chrome desktop currently has a built-in AV1 encoder. The encoder has been specially optimized by us and can be integrated with WebRTC for video conferencing. The advantages of AV1 coding include:

  • Better compression efficiency than other types of video encoding can reduce bandwidth consumption and improve visual quality
  • Ability to enable video for users over very low bandwidth networks (video delivery at 30kbps or less)
  • Compared with other codecs such as VP9, screen sharing efficiency is significantly improved.

This is an important addition to WebRTC, which also recently became an official W3C and IETF standard.

Origin Trails Original test

This version of Chrome introduces what is called “raw testing,” which allows us to try out new features in the browser and provide feedback to the Web standards community on usability, usability, and effectiveness. To register any raw tests currently supported by Chrome (including those described below), visit the Chrome Raw Test Console. To learn more about raw testing in Chrome, visit the Web Developer’s Guide to Raw Testing. Microsoft Edge runs its own raw tests separately from Chrome. For more information, see the Microsoft Edge Origin Trials Developer console.

New raw test content

getCurrentBrowsingContextMedia()

MediaDevices. GetCurrentBrowsingContextMedia () method allows us to use the current TAB of the video capture MediaStream (and possible audio), similar to getDisplayMedia (). But unlike getDisplayMedia(), calling this new method gives the user a simple accept reject dialog box. If the user acceptance, will capture the current TAB, 2 in all other performance getCurrentBrowsingContextMedia () and getDisplayMedia () is exactly the same. The original test is expected to launch in Chrome 92.

MediaStreamTrackPluggable flow (also called Breakout Box)

This is an API for manipulating raw media hosted by MediaStreamTracks, which can manipulate the decoder part of a codec such as a camera, microphone, screen capture, or codec, and will output the decoder part of the codec. It uses the WebCodecs interface to represent raw media frames and exposes them using streams, similar to the way the WebRTC Plugable stream API exposes encoded data from RTCPeerConnections, and is designed to support the following use cases:

  • Funny Hats: Refers to the processing of media before encoding and after decoding to provide effects such as background removal, Funny Hats, sound effects.
  • Machine learning: Refers to applications such as real-time object recognition/annotation.

The original test is expected to launch in Chrome 92.

WebAssembly exception handling

WebAssembly now provides exception handling capabilities. Exception handling allows code to interrupt control flow when an exception is thrown. An exception can be anything known to a WebAssembly module, or it can be an unknown exception thrown by a called import function. The original test is expected to launch in Chrome 94.

Start the original test

The following sections of Chrome’s original test section have been launched:

WebXR AR lighting estimation

Lighting estimation allows a site to query an estimate of ambient lighting conditions in a WebXR session. This exposes both the spherical harmonics that represent ambient lighting and the cube-mapped textures that represent “reflection”. Adding “Lighting estimation” can make your model more natural and make it more suitable for the user’s environment.

Other features are updated in this release

CSS

aspect-ratio

If you specify only one of the width or height on any element, the aspect-ratio attribute automatically calculates the other dimensions. When used for animation, this property is set to non-interpolating by default (meaning that it captures the target value) to provide a smooth interpolation from one aspect ratio to another.

Pseudo class for custom state

We now expose the State of the custom element through the CSS State pseudo class. The state of built-in elements changes over time based on user interactions and other factors, and is exposed to developers through pseudo-classes. For example, some form controls have an invalid state, which is exposed through the :invalid pseudo class. Since custom elements also have state, it makes sense to expose their state in a similar way to built-in elements.

implementationappearance-webkit-appearanceauto

Change the default value of the CSS properties appearance and -webkit-appearance for the following form controls to auto.

  • <input type=color> and <select>
  • Android only:<input type=date>,<input type=datetime-local>,<input type=month>,<input type=time>As well as<input type=week>

Note that the default rendering of these controls has not been changed.

overflow: clipattribute

The clip value of overflow causes the contents of the box container to be clipped to the edge of the overflow part of the box, and there is no longer a scrolling interface for this element, and the contents cannot be scrolled by the user or programmatically. In addition, the box is not treated as a scroll container and does not launch a new formatting context. This value performs better than Overflow: Hidden.

overflow-clip-marginattribute

The overflow-clip-margin attribute allows you to specify how far an element is allowed to go beyond the boundary before clipping. It also allows developers to extend clip boundaries. This is especially useful for situations such as ink spills.

Permissions-PolicyThe header

The Permissions-Policy HTTP header replaces the existing feature-policy header “for controlling Permissions and providing powerful functionality. This header allows web sites to more strictly restrict access to granted element sources.

The Feature Policy API, introduced in Chrome 74, has recently been renamed to Permissions Policy, and the HTTP header has also been renamed. At the same time, the community has identified a new syntax for this, based on HTTP’s structured field values.

throughCross-Origin-Read-BlockingTo protect theapplication/x-protobuffer

We protect application/ X-ProtoBuffer from speculative execution attacks by adding it to the list of never sniffed MIME types used by cross-origin-read-blocking. Application/x-protobuf is already protected as a never listening MIME type. Application/X-Protobuffer is another common MIME type, defined by the Protobuf library as ALT_CONTENT_TYPE.

www.chromestatus.com/feature/567…

Look for the end of the file in the file system access API

When the data is passed to the extend to the end of the file FileSystemWritableFileStream. Write (), will now be written 0 x00 (NUL) extended file. This allows us to create sparse files and greatly simplify the process of saving content to files when we receive out-of-order data to write. Without this feature, applications that receive messy file content (such as BitTorrent downloads) will have to manually resize files early or as needed during writing.

StaticRange constructor

Currently, Range is the only constructible Range type available to Web developers. However, Range objects are mutable, making them difficult to maintain. For each DOM tree change, all affected Range objects need to be updated. The new StaticRange object does not. It represents a lightweight Range type that is much easier to maintain than the Range. StaticRange’s constructability allows Web developers to use them for scopes that do not need to be updated every time the DOM tree changes.

Support in<picture><source>Specifies the width and height on the element

Theelement within the element now supports defining width and height using the width and height attributes, allowing Chrome to calculate the aspect ratio for the element. This is the same as similar behavior for the
,

, and

The WebAudioOscillatorOptions.periodicWaveDo not empty

We can no longer set periodicWave to NULL when creating a new OscillatorNode object. This value is set on the Options object passed to the OscillatorNode() constructor, and now the WebAudio specification does not allow it to be set to NULL. Chrome and Firefox both follow this rule.

The renewal of the JavaScript

This version of Chrome comes with version 9.0 of the V8 JavaScript engine built in. In particular, the changes listed below are included. A full list of the latest features can also be found in the V8 release notes:

Relative indexing methods for arrays, strings, and TypedArrays

Array, String, and TypedArray now support the at() method, which supports relative indexes with negative numbers. For example, the following code returns the last item in a given array.

let arr = [1.2.3.4];
arr.at(-1);
Copy the code

Deprecate and remove

This version of Chrome introduces the following deprecated and deleted items. Visit ChromeStatus.com for current deprecated and previously removed items.

Remove content security Policy directive “Plug-in Type”

The plugin-types directive allows developers to restrict the types of plug-ins that can be loaded via HTML elements ofor . This allows developers to block Flash loading in their pages. Now that Adobe and Chrome have stopped supporting Flash, we don’t really need this policy anymore.

Delete the WebRTC RTP data channel

Support for non-standard RTP data channels has been removed from Chrome. Users should switch to a standard SCTP-based data channel.

fornavigator.pluginsnavigator.mimeTypesreturnnull

Calls to navigator.plugins and Navigator.mimetypes in Chrome return NULL. With the removal of Flash, we no longer need to return anything for these properties.