chromium 54 chrome 各个版本发布功能列表(109-119)

chromium Features 109-119

From https://chromestatus.com/features

chromium109 Features:12

  1. Auto range support for font descriptors inside @font-face rule

Auto range support for variable fonts in ‘font-weight’, ‘font-style’ and ‘font-stretch’ descriptors inside ‘@font-face’ rule.

  1. CSS ‘lh’ Length Unit

The ‘lh’ unit adds support for expressing CSS lengths relative to the line-height.

That is typically useful for specifying the height of an element to fit a whole number of lines. Example: textarea { height: 5lh }

  1. CSS hyphenate-limit-chars property

Specifies the minimum number of characters in a hyphenated word. When applying the hyphenation, the optimal minimum number of characters in the word, before the hyphen, or after the hyphen can vary by the design of the page, or by the language. This property allows the finer grained control of the hyphenation.

  1. HTTP response status code in Resource Timing

Adds a field to PerfomanceResourceTiming to indicate the HTTP response status when the resource was fetched.

  1. MathML

Supports MathML Core, a language for describing mathematical notation embeddable in HTML and SVG. MathML is rendered in a CSS-compatible way with OpenType MATH and exposed via platform accessibility APIs. MathML styling is enabled by CSS features including those dedicated to math layout (math-depth, math-shift and math-style properties, ‘math’ display value, ‘math’ font-family name and ‘math-auto’ text-transform). Finally, the MathMLElement interface provides a convenient way to manipulate MathML in scripts.

  1. MediaTrackSupportedConstraints.suppressLocalAudioPlayback

Consider a Web application APP which is display-capturing a tab TAB. We add a mechanism by which APP may control whether the audio playing in TAB would be played out of the user’s local speakers.

  1. Origin Private File System (OPFS) on Android

Enable the Origin Private File System (OPFS) part of File System Access API on Android. This includes all of the File System Access API surface, minus show*Picker() methods and Drag-and-Drop API integration.

With FSA API on OPFS, a site can access its per-origin, private file system and are able to perform file operations via FileSystemSyncAccessHandle with improved performance.

The original API, including both OPFS and non-OPFS, was shipped in M86 for desktop, and the extension with SyncAccessHandle was shipped in M102.
https://chromestatus.com/feature/6284708426022912
https://chromestatus.com/feature/5702777582911488

  1. Same-site cross-origin prerendering triggered by the speculation rules API

Previously 1 we launched same-origin prerendering triggered by the speculation rules API. This expands coverage to also allow triggering same-site cross-origin pages 2. This prerendering will be done with credentials and storage access, but such prerender targets will need to opt in by using the Supports-Loading-Mode: credentialed-prerender header.

  1. Snap border, outline and column-rule widths before layout

Snap border, outline and column-rule widths before layout to avoid gaps between backgrounds and borders caused by paint-time snapping. With this change, Blink will match Gecko and WebKit.

  1. WebTransport BYOB readers

Support BYOB(bring-your-own-buffer) readers for WebTransport to allow reading into a developer-supplied buffer. BYOB readers can minimize buffer copies, as well as reduce memory allocations.

  1. Deprecate Event.path

Event.path is a non-standard API that returns the event’s path, which is an array of the objects on which listeners will be invoked. It is supported by Blink only, causing web compatibility issues. Web developers should switch to the equivalent standard API Event.composedPath(), which returns the same result.

12.Conditional Focus

Extend the getDisplayMedia() API by adding a CaptureController object which can be passed in as a parameter. This object exposes a setFocusBehavior() method. By calling this method, an app can control whether the captured tab/window is focused when capture starts, or whether the capturing page should retain focus.

chromium110 Features:17

  1. AudioContext.setSinkId()

AudioContext.setSinkId sets the ID of the audio device to use for output. This allows the AudioContext to route audio to a connected output device of user’s choosing.

  1. CSS Initial Letters

Enables a typographic decoration called “initial letter” or “drop caps.” Initial letters are large, decorative letters that have been used to start new sections of text since before the invention of printing. In fact, their use predates lowercase letters entirely.

  1. Client Hints persistency in Android WebView

We aim to add support for persistent Client Hints to Android Webview for parity with the rest of the platform. For more details on the Client Hints system see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints

  1. FedCM: cross-origin iframe support

Adds cross-origin iframe support for the FedCM API via a permissions policy. It enables websites to sandbox the scripts from identity providers which trigger the FedCM API in a cross-origin iframe, so that they do not have full control over the whole page. This also allows use cases where it is the iframe itself which requires a sign-in from the user. In both cases, the parent frame must provide the iframe with the permissions policy ‘identity-credentials-get’.

  1. FileSystemHandle.remove() method

A “remove self” method for a FileSystemHandle.

Currently, it is not possible to remove a file or directory given its handle. You must obtain the handle of the parent directory and call FileSystemDirectoryHandle.removeEntry().

This method enables the common use case where you obtain a file handle from showSaveFilePicker(), but then decide you don’t want to save after all, and delete the file.

  1. Iframe credentialless

Iframe credentialless give developers a way to load documents in third party iframes using new and ephemeral contexts.

Iframe credentialless are a generalization of COEP credentialless to support 3rd party iframes that may not deploy COEP. Like with COEP credentialless, we replace the opt-in of cross-origin subresources by avoiding to load non-public resources. This will remove the constraint that 3rd party iframes must support COEP in order to be embedded in a COEP page and will unblock developers looking to adopt cross-origin-isolation.

This way, developers using COEP can now embed third party iframes that do not.

  1. Methods that change Array and TypedArray by copy

Provides additional methods on Array.prototype and TypedArray.prototype to enable changes on the array by returning a new copy of it with the change.

  1. Prefetching triggered by the speculation rules API

Prefetching fetches the main resource for a future navigation, keeping it in memory so that it can be used to speed up the next navigation. This launch includes both same-site prefetching, and cross-site prefetching in the case where no credentials are present for the destination site.

  1. Private network access for workers: warning-only mode

Applies Private Network Access checks to web workers: dedicated workers, shared workers and service workers.

These checks apply to all worker-specific fetches:

  • initial worker script fetch
  • fetch within workers
  • service worker script update fetch

If the fetch is from an insecure context, we’d show a warning in DevTools. If the fetch is from a secure context, we’d send a preflight. If the preflight fails, we’ll also show a warning in DevTools.

  1. Secure Payment Confirmation - Opt-Out Support

Adds an ‘opt-out’ flow to Secure Payment Confirmation. When the (optional) input flag is set, the SPC UXes will render an ‘opt-out’ link of some sort that the user can interact with to indicate to the relying party that they wish to be opted out.

See https://github.com/w3c/secure-payment-confirmation/issues/172

  1. Speculation rules: Content Security Policy extension

Speculation rules are inlined in script tags, but their use will be restricted by Content Security Policy as unsafe inline scripts even if the speculation rules are safe.

So, we extend the Content Security Policy to have a new source keyword, ‘inline-speculation-rules’, for inline uses of speculation rules. With this new keyword, we can permit inline speculation rules without permitting inline scripts.

  1. TLS ClientHello extension permutation

Randomize the order of TLS ClientHello extensions, to reduce potential ecosystem brittleness.

This change is only visible to HTTPS server implementers.

  1. Use Non-Transitional IDNA Processing in URLs

Enable IDNA 2008 in Non-Transitional Mode for URL processing, aligning Chrome’s behavior with Firefox and Safari.

Chrome currently uses IDNA 2008 in Transitional Mode in URL processing. The main difference between Transitional and Non-Transitional Mode is the handling of four characters known as deviation characters: ß (LATIN SMALL LETTER SHARP S), ς (GREEK SMALL LETTER FINAL SIGMA), ZWJ (Zero width joiner) and ZWNJ (Zero width non-joiner).

In Transitional mode, deviation characters are handled the same as IDNA2003: ß is mapped to ss, ς is mapped to σ, and ZWJ and ZWNJ are deleted. In Non-Transitional mode, domains containing these characters are allowed in domain names without mapping, and thus can resolve to different IP addresses. For example, typing “faß.de” in Chrome and Firefox opens different sites today.

Enabling Non-Transitional IDNA in Chrome will allow deviation characters in domain names. Firefox and Safari already made this change in 2016 and continue to use Non-Transitional URL processing.

  1. web-share permission policy

Controls access to navigator.share().

By default, third-party iframes do not have permission to use the Web Share API.

  1. Deprecate and remove WebSQL in non-secure contexts

We intend to deprecate and remove usage of WebSQL in non-secure contexts.

Deprecation: M105
Removal: M110

  1. Features: Remove window.webkitStorageInfo

We propose to remove support for the legacy storage quota API, window.webkitStorageInfo.

Originally introduced in 2011, Chrome implemented the prefixed quota API which was immediately succeeded by the Quota API which as since been deprecated as well. The legacy storage quota API was never implemented by any other browser, and has been marked deprecated since 2013.

  1. Web app launch handler

Add a “launch_handler” web app manifest member that enables web apps to customize their launch behavior across all types of app launch triggers.

Example usage:
{
“name”: “Example app”,
“start_url”: “/index.html”,
“launch_handler”: {
“client_mode”: “navigate-existing”
}
}

This will cause all launches of the Example app to focus an existing app window and navigate it (if it exists) instead of always launching a new app window.

chromium111 Features:19

  1. Add “window-management” as an alias for permission and permission policy “window-placement”

Adds “window-management” as an alias for “window-placement” permission and permission-policy strings. This is part of a larger effort to rename the strings by eventually deprecating and removing “window-placement”. The terminology change improves the longevity of the descriptor as the Window Management API evolves over time.

  1. CSS Color Module Level 4 and color-mix()

All features described in CSS Color 4 (https://www.w3.org/TR/css-color-4/) are now enabled! This includes four device-independent color types (lab, Oklab, lch and Oklch), the color() function and user-defined color spaces for gradients and animations. The incredibly useful color-mix() function from CSS Color 5 (https://www.w3.org/TR/css-color-5/#color-mix) has also been included as a bonus!

  1. CSS Root Font Units: ‘rex’, ‘rch’, ‘ric’, ‘rlh’

Adds root font units.

Previously, only ‘rem’ has been supported in Chrome. This feature adds root element variants of ex, ch, ic, and lh.

  1. CSS Selectors 4 Pseudo-Class :nth-child(an + b of S)

Extend :nth-child(an + b) to take a selector, and the same with :nth-last-child. So e.g. :nth-child(3 of .c) is the third .c under a given parent. (This is not the same as .c:nth-child(3), which is a .c that must also be the third element under a given parent.)

  1. CSS Trigonometric functions

Add trigonometric functions sin(), cos(), tan(), asin(), acos(), atan(), atan2() to CSS math expressions.

MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions#trigonometric_functions

  1. Media Session API: Presenting slides actions

Adds “previousslide” and “nextslide” actions to the existing Media Session API.

  1. Resizable ArrayBuffer and growable SharedArrayBuffer

Extend the ArrayBuffer constructors to take an additional maximum length that allows in-place growth and shrinking of buffers. Similarly, SharedArrayBuffer is extended to take an additional maximum length that allows in-place growth.

  1. Speculation rules: referrer policy key

This extends the speculation rules 1 syntax to allow developers to specify the referrer policy to use with speculative requests triggered by speculation rules.

This also reintroduces the “sufficiently-strict referrer policy” requirement 2.

1 https://chromestatus.com/feature/5740655424831488
2 https://github.com/WICG/nav-speculation/blob/main/fetch.md#stripping-referrer-information

  1. Streaming declarative shadow DOM

Chromium has shipped 1 a version of declarative shadow DOM in M90 which currently has 0.014% usage 2. Mostly, that is due to the spec PR being stalled with no input from other implementers. Recently, there has been renewed interest in the feature, and discussions have resumed. As part of those discussions, two changes have been generally agreed upon:

  1. Rename the