// Copyright 2021 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/compute-pressure/#dom-pressuresource
enum PressureSource {
"cpu"
};
// https://w3c.github.io/compute-pressure/#the-pressureobserver-object
[
Exposed=(DedicatedWorker,SharedWorker,Window),
RuntimeEnabled=ComputePressure,
SecureContext
] interface PressureObserver {
[
MeasureAs=PressureObserver_Constructor
] constructor(PressureUpdateCallback callback);
[
CallWith=ScriptState,
MeasureAs=PressureObserver_Observe,
RaisesException
] Promise<undefined> observe(PressureSource source,
optional PressureObserverOptions options = {});
[
MeasureAs=PressureObserver_Unobserve
] void unobserve(PressureSource source);
[MeasureAs=PressureObserver_Disconnect] void disconnect();
[
SameObject,
SaveSameObject
] static readonly attribute FrozenArray<PressureSource> knownSources;
[
MeasureAs=PressureObserver_TakeRecords
] sequence<PressureRecord> takeRecords();
};