Contact emailsrak...@chromium.org

Explainerhttps://github.com/explainers-by-googlers/fetch-retry/tree/main

SpecificationNone

Design docs
https://docs.google.com/document/d/1C9lAn3tqXsrjxiid1qCC9qSL7jfA1PZdoo2lgL8L5Pw/edit?tab=t.0

Summary

Allow web developers to indicate that a fetch() request should be retried,
to have a greater guarantee on it being reliably sent, even if the network
is flaky. This is especially important for keepalive fetches, where the
request might outlive the document, which can no longer watch for its
failure and do manual retry. We intend to only support this for keepalive
fetches for now because of implementation simplicity, and also the fact
that all the use cases would benefit from being keepalive first.


Blink componentBlink>Loader
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ELoader%22>

Motivation

fetch() requests can fail due to transient network errors. Manual
JavaScript retries are complex and impossible to be done after page unload
(e.g. for keepalive fetches), causing data loss for critical/high-value
beacons. This proposal introduces a configurable, browser-managed retry
mechanism within fetch(). It allows web developers to indicate that a
fetch() request should be retried, to have a greater guarantee on it being
reliably sent, even if the network is flaky.


Initial public proposalhttps://github.com/WICG/proposals/issues/217

TAG reviewNone

TAG review statusPending

Risks


Interoperability and Compatibility

None


*Gecko*: No signal

*WebKit*: No signal

*Web developers*: Positive
Internal/Google developers are interested in origin trial.

*Other signals*:

Security

Resource Exhaustion: Malicious or misconfigured sites could attempt to
trigger excessive retries, potentially impacting network resources or
target servers. Mitigation relies on browsers enforcing strict, reasonable
limits on maxAttempts and maxAge, alongside implementing backoff delays.
Information Leakage (Retry-Attempt Header): The proposed Retry-Attempt
header explicitly reveals the retry state of a request to the target server
and any intermediaries. While useful for debugging and server
logic/deduplication, it does constitute information disclosure about the
client's network behavior for that request, but the risk is likely low.
Timing Attacks/Information Leakage: The timing patterns of retry attempts
could theoretically leak some information about network conditions. This is
unlikely to provide substantially more information than can already be
inferred by observing standard network request timings and failures.
Additionally the browser will add random delays/jitters as well. The risk
is considered low.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

None


Debuggability

None


Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?No

Flag name on about://flags

Finch feature nameFetchRetry

Requires code in //chrome?False

Tracking bughttps://crbug.com/417930271

Estimated milestones
DevTrial on desktop 138
DevTrial on Android 138

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5181984581877760?gate=5075324035137536

This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
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+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACPC1r6QFoqcmdoEMeG4JKJXGLqvGW%2BMr-UZj%2Br6HrQ%3DTNqKYQ%40mail.gmail.com.

Reply via email to