Firefox Tomorrow

web api interface

WindowClient

View on MDN ↗

Available in workers

The WindowClient interface of the ServiceWorker API represents the scope of a service worker client that is a document in a browsing context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.

Instance methods

WindowClient inherits methods from its parent interface, Client.

  • focus()
    • : Gives user input focus to the current client.
  • navigate()
    • : Loads a specified URL into a controlled client page.

Instance properties

WindowClient inherits properties from its parent interface, Client.

  • ancestorOrigins Read only Experimental
    • : An array of strings that indicates the ancestor origins of the browsing context represented by this WindowClient in reverse order.
  • focused Read only
    • : A boolean that indicates whether the current client has focus.
  • visibilityState Read only
    • : Indicates the visibility of the current client. This value can be one of "hidden" or "visible".

Example

self.addEventListener("notificationclick", (event) => {
  console.log("On notification click: ", event.notification.tag);
  event.notification.close();

  // This looks to see if the current is already open and
  // focuses if it is
  event.waitUntil(
    clients
      .matchAll({
        type: "window",
      })
      .then((clientList) => {
        for (const client of clientList) {
          if (client.url === "/" && "focus" in client) {
            client.focus();
            break;
          }
        }
        if (clients.openWindow) return clients.openWindow("/");
      }),
  );
});

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also