category
Network & Loading
Fetch, HTTP cache, No-Vary-Search, Speculation Rules, prerendering, prefetch, sec-purpose, WebTransport, sockets, Smart Card.
55 of 58 demos built, across 25 releases.
Chrome 157 (2)
-
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 ...
-
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 (1)
-
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...
Chrome 155 (2)
-
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 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 154 (6)
-
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 on by default
Chrome will now prompt 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.
-
CORS enforcement for Background Fetch
Starting in Chrome 154, 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...
-
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 specialized WebHID devices on Android
WebHID now allows web applications to interact with a wider range of devices. Standard Human Interface Device (HID) examples include mice, keyboards, touchscreens, and gamepads. Those are accessible with high-level input...
-
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 (1)
-
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 152 (1)
-
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 (2)
-
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 ...
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...