chromium/third_party/blink/renderer/core/timing/performance_observer.idl

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/performance-timeline/#dom-performanceobservercallback
callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries, PerformanceObserver observer, optional PerformanceObserverCallbackOptions options = {});

// https://w3c.github.io/performance-timeline/#the-performanceobserver-interface
[
    ActiveScriptWrappable,
    Exposed=(Window,Worker)
] interface PerformanceObserver {
    [CallWith=ScriptState] constructor(PerformanceObserverCallback callback);
    [RaisesException, CallWith=ScriptState] void observe(optional PerformanceObserverInit options = {});
    void disconnect();
    PerformanceEntryList takeRecords();
    [SameObject, SaveSameObject, CallWith=ScriptState] static readonly attribute FrozenArray<DOMString> supportedEntryTypes;
};