chromium/third_party/blink/renderer/modules/bluetooth/bluetooth.idl

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

// https://webbluetoothcg.github.io/web-bluetooth/#bluetooth

[
    Exposed=Window,
    RuntimeEnabled=WebBluetooth,
    SecureContext
] interface Bluetooth : EventTarget {
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothGetAvailability] Promise<boolean> getAvailability();
    [RuntimeEnabled=WebBluetoothGetDevices, CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothGetDevices] Promise<sequence<BluetoothDevice>> getDevices();
    [CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestDevice] Promise<BluetoothDevice> requestDevice (optional RequestDeviceOptions options = {});

    // https://webbluetoothcg.github.io/web-bluetooth/scanning.html#scanning
    [RuntimeEnabled=WebBluetoothScanning, CallWith=ScriptState, RaisesException, MeasureAs=WebBluetoothRequestScan]
    Promise<BluetoothLEScan> requestLEScan (optional BluetoothLEScanOptions options = {});

    [RuntimeEnabled=WebBluetoothScanning] attribute EventHandler onadvertisementreceived;
};