PerformanceObserver: supportedEntryTypes static property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

Note: This feature is available in Web Workers.

The static supportedEntryTypes read-only property of the PerformanceObserver interface returns an array of the entryType values supported by the user agent.

As the list of supported entries varies per browser and is evolving, this property allows web developers to check which are available.

Value

An array of PerformanceEntry.entryType values.

Examples

Using the console to check supported types

To find out which entryType values a browser supports, enter PerformanceObserver.supportedEntryTypes into the console. This will return an array of supported values.

js
PerformanceObserver.supportedEntryTypes;

// returns ["element", "event", "first-input", "largest-contentful-paint", "layout-shift", "long-animation-frame", "longtask", "mark", "measure", "navigation", "paint", "resource", "visibility-state"] in the main thread in Chrome 129
// returns ["mark", "measure", "resource"] in a worker thread in Chrome 129

Checking for unsupported types

The following function checks for support of an array of possible entry types. The unsupported types are logged to the console, however this information could be logged to client-side analytics to indicate that the particular type could not be observed.

js
function detectSupport(entryTypes) {
  for (const entryType of entryTypes) {
    if (!PerformanceObserver.supportedEntryTypes.includes(entryType)) {
      console.log(entryType);
    }
  }
}

detectSupport(["resource", "mark", "first-input", "largest-contentful-paint"]);

Specifications

Specification
Performance Timeline
# supportedentrytypes-attribute

Browser compatibility

BCD tables only load in the browser