Firefox Tomorrow

web api interface

BackgroundFetchRegistration

View on MDN ↗

Limited availabilityAvailable in workers

The BackgroundFetchRegistration interface of the Background Fetch API represents an individual background fetch.

A BackgroundFetchRegistration instance is returned by the fetch() or get() methods, and therefore there has no constructor.

Instance properties

Also inherits properties from its parent, EventTarget.

  • id Read only Experimental
    • : A string containing the background fetch’s ID.
  • uploadTotal Read only Experimental
    • : A Number containing the total number of bytes to be uploaded.
  • uploaded Read only Experimental
    • : A Number containing the size in bytes successfully sent, initially 0.
  • downloadTotal Read only Experimental
    • : A Number containing the total size in bytes of this download. This is the value set when the background fetch was registered, or 0.
  • downloaded Read only Experimental
    • : A Number containing the size in bytes that has been downloaded, initially 0.
  • result Read only Experimental
    • : Returns an empty string initially, on completion either the string "success" or "failure".
  • failureReason Read only Experimental
    • : A string with a value that indicates a reason for a background fetch failure. Can be one of the following values: "", "aborted", "bad-status", "fetch-error", "quota-exceeded", "download-total-exceeded".
  • recordsAvailable Read only Experimental
    • : A Boolean indicating whether the recordsAvailable flag is set.

Instance methods

Also inherits methods from its parent, EventTarget.

Events

Also inherits events from its parent, EventTarget.

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

Examples

The following code creates a BackGroundFetchRegistration as bgFetch, with an id of "my-fetch".

navigator.serviceWorker.ready.then(async (swReg) => {
  const bgFetch = await swReg.backgroundFetch.fetch(
    "my-fetch",
    ["/ep-5.mp3", "ep-5-artwork.jpg"],
    {
      title: "Episode 5: Interesting things.",
      icons: [
        {
          sizes: "300x300",
          src: "/ep-5-icon.png",
          type: "image/png",
        },
      ],
      downloadTotal: 60 * 1024 * 1024,
    },
  );
});

Logging the id to the console returns "my-fetch".

console.log(bgFetch.id); // "my-fetch"

The match() method can be used to find a particular BackgroundFetchRecord from those that are part of the registration.

bgFetch.match("/ep-5.mp3").then(async (record) => {
  if (!record) {
    console.log("No record found");
    return;
  }

  console.log(`Here's the request`, record.request);
  const response = await record.responseReady;
  console.log(`And here's the response`, response);
});

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.