Contact emails
m...@chromium.org, denom...@chromium.org, pending-beacon-experim...@chromium.org


Explainer
https://github.com/WICG/pending-beacon/blob/main/docs/fetch-later-api.md


Specification
https://whatpr.org/fetch/1647/07662d3...139351f.html


Design docs

https://github.com/WICG/pending-beacon/blob/main/docs/fetch-later-api.md
https://docs.google.com/document/d/1U8XSnICPY3j-fjzG35UVm6zjwL6LvX6ETU3T8WrzLyQ/edit#heading=h.ms1oipx914vf


Summary

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: * The document is 
destroyed. * After a user-specified time. For privacy reason, all pending 
requests will be flushed upon document entering bfcache no matter how much time 
is left. * Browser decides it's time to send it. The API returns a 
FetchLaterResult that contains a boolean field "activated" that may be updated 
to tell whether the deferred request has been sent out or not. On successful 
sending, the whole response will be ignored by browser, including body and 
headers. Nothing at all should be processed or updated, as the page may have 
already be gone. Note that from the point of view of the API user, the exact 
send time is unknown.



Blink component
Blink>Network>FetchAPI


Search tags
beacon, pending beacon, page unload beacon, unload beacon, fetchlater


TAG review
https://github.com/w3ctag/design-reviews/issues/887


TAG review status
Issues addressed


Origin Trial Name
FetchLater API


Chromium Trial Name
FetchLaterAPI


Origin Trial documentation link
https://chromium.googlesource.com/chromium/src/+/main/docs/experiments/fetch-later.md


WebFeature UseCounter name
kFetchLater


Risks




Interoperability and Compatibility

None


Gecko: Positive (https://github.com/mozilla/standards-positions/issues/703)

WebKit: Support (https://github.com/WebKit/standards-positions/issues/85)

Web developers: Positive 
(https://discourse.wicg.io/t/proposal-stateful-javascript-page-unload-beacon-api/5776)

Other signals: W3C WebPerf: 
https://w3c.github.io/web-performance/meetings/2022/2022-03-31/index.html


Security

https://github.com/WICG/pending-beacon/blob/main/docs/fetch-later-api.md#security-considerations
 
https://docs.google.com/document/d/1U8XSnICPY3j-fjzG35UVm6zjwL6LvX6ETU3T8WrzLyQ/edit?pli=1#heading=h.kztg1uvdyoki



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?

FetchLater is a new JS API.




Debuggability

There are no particular debugging APIs made available or Chrome DevTools 
integrations yet.



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
Yes
This is a JS API that will be available to Blink platforms.



Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/fetch/fetch-later



DevTrial instructions
https://chromium.googlesource.com/chromium/src/+/main/docs/experiments/fetch-later.md


Flag name on about://flags
FetchLaterAPI


Finch feature name
FetchLaterAPI


Requires code in //chrome?
True


Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=1465781


Launch bug
https://launch.corp.google.com/launch/4272588


Availability expectation
Feature is initially available only in Chromium browsers. Mozilla 
Implementation Request: https://bugzilla.mozilla.org/show_bug.cgi?id=1936180 
WebKit Implementation Request: https://bugs.webkit.org/show_bug.cgi?id=284347


Adoption expectation
Feature will be used by some partner(s) to provide functionality within 12 
months of launch in Chrome.


Adoption plan
With the launch announcement, we will communicate with those who have been 
interested in this API.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source 
repository and its open-source dependencies to function?
N/A


Sample links

https://github.com/WICG/pending-beacon/blob/main/docs/fetch-later-api.md#key-scenarios


Estimated milestones


Shipping on desktop 134

Origin trial desktop first 121

Origin trial desktop last 126

Origin trial extension 1 end milestone 132

DevTrial on desktop 120

Shipping on Android 134

Origin trial Android first 121

Origin trial Android last 126

DevTrial on Android 120




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, changing to naming or structure of the API in a 
non-backward-compatible way).
https://github.com/whatwg/fetch/pull/1647


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


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/KXnqpUpVwPQ
Intent to Experiment: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAH3JASUZRWPgtO7b%3DQ%2BXOEEg7LMXnuoq3PFVv_EpARwbntf-ZQ%40mail.gmail.com
Intent to Extend Experiment 1: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/00000000000037b78d062141b4f1%40google.com



This intent message was generated by Chrome Platform Status.

-- 
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/67ac7ec8.2b0a0220.49add.2034.GAE%40google.com.

Reply via email to