category
Network & Loading
Fetch, HTTP cache, No-Vary-Search, Speculation Rules, prerendering, prefetch, sec-purpose, WebTransport, sockets, Smart Card.
55 of 82 demos built, across 29 releases.
Chrome 160 (1)
-
Web Bluetooth: BluetoothRemoteGATTServer.maxWriteWithoutResponseSize
Adds BluetoothRemoteGATTServer.maxWriteWithoutResponseSize, which reports the largest payload that writeValueWithoutResponse() can send in one ATT packet. A maxwritewithoutresponsesizechanged event notifies applications ...
Chrome 159 (9)
-
Prerendering cross-origin iframes
Prerenders cross-origin iframes with an opt-in response header. Browsers will now prerender all cross-origin frames if the top-level frame's HTTP response includes the Supports-Loading-Mode: prerender-cross-origin-fra...
-
WebTransport congestion control
Adds the congestionControl constructor option and read-only attribute to WebTransport. Applications can request "default", "throughput", or "low-latency" behavior, allowing the user agent to select suitable congestion-co...
-
WebTransport connection statistics
WebTransport.getStats() provides asynchronous statistics for an existing connection: round-trip time measurements when available, an estimated sending rate when available, and counts of expired, lost, and dropped datagra...
-
WebTransport Datagram readable stream type
Adds the WebTransportOptions.datagramsReadableType constructor option. By default, incoming WebTransport Datagrams are exposed through a default ReadableStream . Applications that require BYOB reading can request a re...
-
WebTransport Datagram writable streams and prioritization
Adds the modern WebTransport Datagram sending API. WebTransportDatagramDuplexStream.createWritable() creates independent WebTransportDatagramsWritable streams. Each writable has mutable sendGroup and sendOrder attribute...
-
WebTransport keying material export
Adds WebTransport.exportKeyingMaterial(), which allows an application to derive cryptographic keying material bound to an established WebTransport session. The method accepts application provided binary label and contex...
-
WebTransport receive stream
Adds the standardized WebTransportReceiveStream interface, a ReadableStream subclass used for incoming unidirectional streams and the readable side of bidirectional streams. Its getStats() method returns per-stream byte ...
-
WebTransport send groups and send-stream prioritization
WebTransport already lets sites send data through WritableStreams. This feature lets applications assign outgoing streams to send groups and use sendOrder to prioritize streams within each group. It also provides sending...
-
WebTransportError API alignment and serialization
Updates Chromium WebTransportError to match the current WebTransport specification. Adds the standard (message, options) constructor while preserving the shipped dictionary constructor for compatibility; carries the full...
Chrome 158 (5)
-
Source Specific Multicast for Direct Sockets API
Adds Source-Specific Multicast (SSM) support to the Direct Sockets API, allowing Isolated Web Apps to optionally specify a source address when joining multicast groups to receive UDP packets only from that source. Withou...
-
Support for WebHID
The [WebHID API](https://developer.chrome.com/docs/extensions/how-to/web-platform/webhid) enables web applications to interact with Human Interface Devices (HIDs) over USB and Bluetooth beyond standard system input mappi...
-
WebTransport anticipated concurrent incoming streams
Allows WebTransport applications to indicate how many incoming streams they expect to have open at once. Constructor hints configure the initial QUIC stream allowance, reducing the risk that a server that needs high stre...
-
WebTransport draining
WebTransport.draining is a promise that resolves when the server indicates that the WebTransport session will be gracefully retired. Applications can use this signal to establish a replacement session while existing stre...
-
WebTransport reliability attributes
Adds the WebTransport.reliability instance attribute and static WebTransport.supportsReliableOnly attribute. These APIs indicate whether the user agent supports WebTransport over exclusively reliable connections and whet...
Chrome 157 (3)
-
CORS enforcement for Background Fetch
Starting in Chrome 157, the Background Fetch API now enforces Cross-Origin Resource Sharing (CORS). This update aligns Chromium's implementation with the intent of the [Background Fetch spec](https://wicg.github.io/back...
-
Disconnect WebSockets on BFCache entry
Chrome is changing its behavior to allow pages with active WebSocket connections to enter the Back/Forward Cache. To achieve this, active WebSockets are now disconnected when a page is cached. Previously, active WebSocke...
-
Web Bluetooth: Make BluetoothRemoteGATTServer an EventTarget
BluetoothRemoteGATTServer inherits from EventTarget, exposing the standard addEventListener(), removeEventListener(), and dispatchEvent() methods. This enables connection-level events to be dispatched directly on the GAT...
Chrome 156 (2)
-
Compression dictionary transport Updates
When fetching rel=compression-dictionary links: - Use "compression-dictionary" as request destination. - Properly set request's mode, credentials, referrer and referrerpolicy. - Take into account crossorigin and referre...
-
WebTransport headers and responseHeaders
Adds support for passing custom HTTP request headers via WebTransportOptions and inspecting server response headers through the WebTransport instance. This allows web applications to supply metadata, authentication token...
Chrome 155 (4)
-
WebTransport Datagram readable stream type
Adds the WebTransportOptions.datagramsReadableType constructor option. By default, incoming WebTransport Datagrams are exposed through a default ReadableStream . Applications that require BYOB reading can request a re...
-
WebTransport Datagram writable streams and prioritization
Adds the modern WebTransport Datagram sending API. WebTransportDatagramDuplexStream.createWritable() creates independent WebTransportDatagramsWritable streams. Each writable has mutable sendGroup and sendOrder attribute...
-
WebTransport receive stream
Adds the standardized WebTransportReceiveStream interface, a ReadableStream subclass used for incoming unidirectional streams and the readable side of bidirectional streams. Its getStats() method returns per-stream byte ...
-
WebTransport reliability attributes
Adds the WebTransport.reliability instance attribute and static WebTransport.supportsReliableOnly attribute. These APIs indicate whether the user agent supports WebTransport over exclusively reliable connections and whet...
Chrome 154 (5)
-
Add options bag to WebSocket constructor
Add support for passing an option bag (WebSocketInit dictionary) as the second argument to the WebSocket constructor. The option bag will initially support a "protocols" option, allowing developers to specify subprotocol...
-
Ask-before-HTTP warning on by default
Chrome now prompts users by default when they access an insecure (HTTP) connection. IT admins can control this default behavior via [HttpsOnlyMode](https://chromeenterprise.google/policies/#HttpsOnlyMode) policy.
-
Fetch API: Forward reason from AbortController to fetch Response
Surfaces the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than just the fetch promise. This fills a gap in our compliance with the standard, surfacing the develop...
-
Support for WebHID
The [WebHID API](https://developer.chrome.com/docs/extensions/how-to/web-platform/webhid) enables web applications to interact with Human Interface Devices (HIDs) over USB and Bluetooth beyond standard system input mappi...
-
Support targetAddressSpace option for WebSockets
Add support for passing a targetAddressSpace option in the WebSocket constructor. This allows developers to specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" d...
Chrome 153 (3)
-
WebTransport draining
WebTransport.draining is a promise that resolves when the server indicates that the WebTransport session will be gracefully retired. Applications can use this signal to establish a replacement session while existing stre...
-
WebTransport headers and responseHeaders
Adds support for passing custom HTTP request headers via WebTransportOptions and inspecting server response headers through the WebTransport instance. This allows web applications to supply metadata, authentication token...
-
WebTransport send groups and send-stream prioritization
WebTransport already lets sites send data through WritableStreams. This feature lets applications assign outgoing streams to send groups and use sendOrder to prioritize streams within each group. It also provides sending...
Chrome 152 (3)
-
Disconnect WebSockets on BFCache entry
Chrome is changing its behavior to allow pages with active WebSocket connections to enter the Back/Forward Cache. To achieve this, active WebSockets are now disconnected when a page is cached. Previously, active WebSocke...
-
Source Specific Multicast for Direct Sockets API
Adds Source-Specific Multicast (SSM) support to the Direct Sockets API, allowing Isolated Web Apps to optionally specify a source address when joining multicast groups to receive UDP packets only from that source. Withou...
-
Speculation Rules - moderate viewport heuristics controls
Current viewport heuristics for speculation rules don't give any room for developer experimentation. This experimental feature will provide such controls, and enable developers to figure out if different heuristics para...
Chrome 151 (3)
-
Prefetch activation beacon
The on-prefetch-activation HTTP response header enables servers to specify a telemetry endpoint that the browser notifies when a prefetched resource is used for navigation. Developers gain a reliable signal to measure t...
-
Speculation rules: form_submission field
This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by ...
-
WebTransport anticipated concurrent incoming streams
Allows WebTransport applications to indicate how many incoming streams they expect to have open at once. Constructor hints configure the initial QUIC stream allowance, reducing the risk that a server that needs high stre...
Chrome 150 (1)
-
WebTransport congestion control
Adds the congestionControl constructor option and read-only attribute to WebTransport. Applications can request "default", "throughput", or "low-latency" behavior, allowing the user agent to select suitable congestion-co...
Chrome 149 (1)
-
Disconnect WebSockets on BFCache entry
Chrome is changing its behavior to allow pages with active WebSocket connections to enter the Back/Forward Cache. To achieve this, active WebSockets are now disconnected when a page is cached. Previously, active WebSocke...
Chrome 148 (1)
-
Web Serial API on Android
The Web Serial API provides an interface for connecting to serial devices, either through a serial port on the user’s system or removable USB and Bluetooth devices that emulate a serial port. Now it is supported on Andro...
Chrome 147 (2)
-
JSON and style support for link rel=modulepreload
Adds support for JSON and style module types as <link rel="modulepreload"> destinations. <link rel="modulepreload"> is already supported in Chromium (see https://chromestatus.com/feature/5762805915451392), but it current...
-
Prerendering cross-origin iframes
Prerenders cross-origin iframes with an opt-in response header. Browsers will now prerender all cross-origin frames if the top-level frame's HTTP response includes the Supports-Loading-Mode: prerender-cross-origin-fra...
Chrome 146 (2)
-
Cache sharing for extremely-pervasive resources
For a small number (hundreds) of hand-curated static third-party script, stylesheet and compression-dictionary resources that are used on a large portion of the web, Chrome will use a single-keyed HTTP cache to store tho...
-
Speculation rules: form_submission field
This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by ...
Chrome 145 (2)
-
Cookie Store API `maxAge` attribute
Allows callers to specify a `maxAge` when setting a cookie with the Cookie Store API. Cookie expiry time is already configurable using the `expires` attribute, but `maxAge` provides a more idiomatic option and aligns th...
-
TCP Socket Pool Limit Randomization
By exploiting limits in the connection pool size on Chrome, knowledge can be gained about cross-site state which would otherwise be inaccessible. Specifically, it’s possible (with some statistical certainty) to evaluate ...
Chrome 144 (3)
-
Multicast support for Direct Sockets API
This feature allows [Isolated Web Apps](https://chromeos.dev/en/web/isolated-web-apps) (IWAs) to subscribe to multicast groups and receive User Datagram Protocol (UDP) packets from there. IWAs can now also specify additi...
-
Speculation Rules: prerender-until-script Action
This extends speculation rules to introduce a new action called prerender_until_script. It is designed as an intermediate option between the existing prefetch (which only fetches the main document) and prerender (which...
-
Web App Manifest: specify update eligibility, icon urls are Cache-Control: immutable
Specify an update eligibility algorithm in the manifest spec. This makes the update process more deterministic and predictable, giving the dev more control over whether (and when) updates should apply to existing install...
Chrome 143 (5)
-
Speculation rules: mobile "eager" eagerness improvements
On mobile, "eager" eagerness speculation rules prefetches and prerenders now trigger when HTML anchor elements are in the viewport for a short time. The previous behavior, of starting prefetch/prerenders as soon as poss...
-
TCP Socket Pool Limit Randomization
By exploiting limits in the connection pool size on Chrome, knowledge can be gained about cross-site state which would otherwise be inaccessible. Specifically, it’s possible (with some statistical certainty) to evaluate ...
-
Web App Manifest: specify update eligibility, icon urls are Cache-Control: immutable
Specify an update eligibility algorithm in the manifest spec. This makes the update process more deterministic and predictable, giving the dev more control over whether (and when) updates should apply to existing install...
-
Web Smart Card API
Enables smart card (PC/SC) applications to move to the Web platform. It gives them access to the PC/SC implementation (and card reader drivers) available in the host OS. Administrators can control the availability of th...
-
WebTransport Application Protocol Negotiation
WebTransport Application Protocol Negotiation allows negotiation of the protocol used by the web application within the WebTransport handshake. A web application can specify a list of application protocols offered whe...
Chrome 142 (2)
-
Compression Dictionary TTL
Adds support for an explicit time-to-live for dictionaries used in Compression Dictionary Transport. This is a backward-compatible extension to the "Use-As-Dictionary" HTTP response header that adds a "ttl" parameter. ...
-
Multicast support for Direct Sockets API
This feature allows [Isolated Web Apps](https://chromeos.dev/en/web/isolated-web-apps) (IWAs) to subscribe to multicast groups and receive User Datagram Protocol (UDP) packets from there. IWAs can now also specify additi...
Chrome 141 (5)
-
Stop sending Purpose: prefetch header from prefetches and prerenders
Now that prefetches and prerenders are utilizing the Sec-Purpose header for prefetches and prerenders, we will move to remove the legacy `Purpose: prefetch` header that is still currently passed. This will be behind a fe...
-
No-Vary-Search support for the HTTP disk cache
Enables the HTTP disk cache to use the No-Vary-Search response header to share a cache entry between URLs that differ only in the query parameters. Developers can use No-Vary-Search to specify query parameters that have...
-
Speculation rules: desktop "eager" eagerness improvements
On desktop, "eager" eagerness speculation rules prefetches and prerenders now trigger when users hover on a link for a shorter time than the "moderate" mouse hover time. The previous behavior, of starting prefetch/pre...
-
Update hidden=until-found and details ancestor revealing algorithm
The spec recently had some small changes to the revealing algorithms for hidden=until-found and details elements in order to prevent the browser from getting stuck in an infinite loop: https://github.com/whatwg/html/pull...
-
Web Smart Card API
Enables smart card (PC/SC) applications to move to the Web platform. It gives them access to the PC/SC implementation (and card reader drivers) available in the host OS. Administrators can control the availability of th...
Chrome 140 (1)
-
Http cookie prefix
There are cases where it's important to distinguish on the server side between cookies that were set by the server and ones that were set by the client. One such case is cookies that are normally always set by the ser...
Chrome 139 (3)
-
Fetch retry (for keepalive fetches)
Allow web developers to indicate that a fetch() request should be retried, to have a greater guarantee on it being reliably sent, even if network is flaky. This is especially important for keepalive fetches, where the re...
-
Randomizing TCP Port Allocation on Windows
This launch enables TCP port randomization on versions of Windows (2020 H1 or later) where we do not expect to see issues with re-use of prior ports occurring too fast (causing rejection due to timeouts on port re-use). ...
-
Re-Sizing TCP Connection Pool
This experiment evaluates the impact of changing the per-profile TCP socket pool size from 256 (the current default), down to 255, and up to 257, 512, and 1024 (possibly at 1-2 numbers between those based on findings). W...
Chrome 138 (6)
-
Pass 'Sec-Purpose: prefetch' header with <link rel=prefetch>
Chrome currently passes both 'Purpose: prefetch' and 'Sec-Purpose: prefetch' headers as part of prefetch through speculation rules. However, only 'Purpose: prefetch' is passed with <link rel=prefetch>. We plan to stan...
-
Cache sharing for extremely-pervasive resources
For a small number (hundreds) of hand-curated static third-party script, stylesheet and compression-dictionary resources that are used on a large portion of the web, Chrome will use a single-keyed HTTP cache to store tho...
-
Escape "<" and ">" in attributes on serialization
Escape "<" and ">" in values of attributes on serialization. This mitigates the risk of mutation XSS attacks, which occur when value of an attribute is interpreted as a start tag token after being serialized and re-pa...
-
Speculation rules: mobile "moderate" eagerness improvements
On mobile, "moderate" eagerness speculation rules prefetches and prerenders now trigger when a link enters the viewport and passes other conditions that indicate that it's more likely to be clicked. The previous behav...
-
Speculation rules: target_hint field
This extends speculation rules syntax to allow developers to specify the target_hint field. This field provides a hint to indicate a target navigable where a prerendered page will eventually be activated. For example, w...
-
Web serial over Bluetooth on Android
This feature allows web pages and web apps to connect to serial ports over Bluetooth on Android devices. Chrome on Android now supports Web Serial API over Bluetooth RFCOMM. Existing enterprise policies (DefaultSerialGu...
Chrome 136 (1)
-
Speculation rules: tag field
This enables developers to add tag field to speculation rules. This optional field can be used to track the source of speculation rules, e.g. to treat them differently at an intermediary server. Any tags associated with ...
Chrome 135 (4)
-
fetchLater API
fetchLater() is a JavaScript API to request a deferred fetch. Once called in a document, a deferred request is queued by the browser in the PENDING state, and will be invoked by the earliest of the following conditions: ...
-
No-Vary-Search support for the HTTP disk cache
Enables the HTTP disk cache to use the No-Vary-Search response header to share a cache entry between URLs that differ only in the query parameters. Developers can use No-Vary-Search to specify query parameters that have...
-
Speculation rules: target_hint field
This extends speculation rules syntax to allow developers to specify the target_hint field. This field provides a hint to indicate a target navigable where a prerendered page will eventually be activated. For example, w...
-
Update HTTP request headers, body, and referrer policy on CORS redirect
Update the HTTP request on CORS redirect by removing the request-body-headers and body if the method has changed, and updating the referrer policy. These request updates align with the Fetch spec and match the behavior i...
Chrome 133 (1)
-
Remove <link rel=prefetch> five-minute rule
Previously, when a resource was prefetched using <link rel=prefetch>, we ignored its cache semantics (namely max-age and no-cache) for the first use within 5 minutes, to avoid refetching. Now, we remove this special case...
Chrome 132 (1)
-
Fetch: Request.bytes() and Response.bytes()
Add a bytes() method to the Request and Response interfaces, which returns a promise that resolves with a Uint8Array. While Request and Response have an arrayBuffer() method, we can't read directly from a buffer. We have...
Chrome 131 (1)
-
Direct Sockets API
Allows Isolated Web Apps to establish direct transmission control protocol (TCP) and user datagram protocol (UDP) communications with network devices and systems as well as listen to and accept incoming connections.
Chrome 130 (2)
-
Compression dictionary transport with Shared Brotli and Shared Zstandard
This feature adds support for using designated previous responses, as an external dictionary for content encoding compressing responses with Brotli or Zstandard. Enterprises might experience potential compatibility issu...
-
Web Serial: connected attribute and RFCOMM connection events
This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the...