On desktop Chrome, we are enabling a change that keeps the browser process and relevant profile alive while fetch(..., {keepalive: true}) or fetchLater() requests are pending. This allows those requests to complete when the last tab in the last browser window closes, instead of being dropped:
https://issues.chromium.org/issues/408010432
The hold lasts only while requests are pending. Existing keepalive request quotas and timeouts continue to apply. Android behavior is unchanged.
Implementation: https://chromium-review.googlesource.com/c/chromium/src/+/8181986
Default-on CL: https://chromium-review.googlesource.com/c/chromium/src/+/8382658
No action is required from web developers.
Can you speak to the interop situation here? Will this only work in Chrome, or do other browsers already do this?
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bb27f5ec-1546-4142-bfce-ff375e3da300n%40chromium.org.
The exact last-window behavior is not currently interoperable across shipping browsers. Fetch’s keepalive semantics allow a request to outlive its initiating document, but do not require the browser application itself to remain alive during shutdown, so this is still best-effort rather than a delivery guarantee.
For WebKit, I am carrying Yoav’s implementation of fetchLater():
https://github.com/WebKit/WebKit/pull/73271
That implementation explicitly tests delivery after the last WKWebView is closed, including with an ephemeral data store. The PR is still open, so this is intended alignment rather than behavior available in Safari today. Getting it through WebKit review, EWS, and any additional splitting may take some time.
Firefox supports fetch(..., {keepalive: true}) and Mozilla has a positive standards position on fetchLater(), but fetchLater() itself is not implemented yet:
https://bugzilla.mozilla.org/show_bug.cgi?id=1936180
There is also an existing Firefox bug for beacons being dropped when the browser closes:
https://bugzilla.mozilla.org/show_bug.cgi?id=1609653
So, as far as I can tell, Chrome will initially be the only shipping browser with this explicit last-window lifetime handling. WebKit work is underway toward similar behavior; Firefox is supportive of the API, but does not currently have the equivalent implementation.
Once the WebKit work is done, I would also be happy to give the Firefox implementation a try. No promises, though, I am still a Chromium guy at heart. :)
On 9/9/26 6:24 p.m., Helmut Januschka wrote:
The exact last-window behavior is not currently interoperable across shipping browsers. Fetch’s
keepalivesemantics allow a request to outlive its initiating document, but do not require the browser application itself to remain alive during shutdown, so this is still best-effort rather than a delivery guarantee.For WebKit, I am carrying Yoav’s implementation of
fetchLater():
https://github.com/WebKit/WebKit/pull/73271That implementation explicitly tests delivery after the last
WKWebViewis closed, including with an ephemeral data store. The PR is still open, so this is intended alignment rather than behavior available in Safari today. Getting it through WebKit review, EWS, and any additional splitting may take some time.Firefox supports
fetch(..., {keepalive: true})and Mozilla has a positive standards position onfetchLater(), butfetchLater()itself is not implemented yet:
https://bugzilla.mozilla.org/show_bug.cgi?id=1936180There is also an existing Firefox bug for beacons being dropped when the browser closes:
https://bugzilla.mozilla.org/show_bug.cgi?id=1609653So, as far as I can tell, Chrome will initially be the only shipping browser with this explicit last-window lifetime handling. WebKit work is underway toward similar behavior; Firefox is supportive of the API, but does not currently have the equivalent implementation.
Once the WebKit work is done, I would also be happy to give the Firefox implementation a try. No promises, though, I am still a Chromium guy at heart. :)
--Am Mi., 9. Sept. 2026 um 23:48 Uhr schrieb Mike Taylor <mike...@chromium.org>:
Can you speak to the interop situation here? Will this only work in Chrome, or do other browsers already do this?
On 9/9/26 3:56 p.m., Helmut Januschka wrote:
--On desktop Chrome, we are enabling a change that keeps the browser process and relevant profile alive while fetch(..., {keepalive: true}) or fetchLater() requests are pending. This allows those requests to complete when the last tab in the last browser window closes, instead of being dropped:
https://issues.chromium.org/issues/408010432
The hold lasts only while requests are pending. Existing keepalive request quotas and timeouts continue to apply. Android behavior is unchanged.
Implementation: https://chromium-review.googlesource.com/c/chromium/src/+/8181986
Default-on CL: https://chromium-review.googlesource.com/c/chromium/src/+/8382658No action is required from web developers.
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bb27f5ec-1546-4142-bfce-ff375e3da300n%40chromium.org.
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/e76f0a00-2ba2-4db3-b8d3-ac622f20b7c7%40chromium.org.