blob: 16c2dd2c425644b486b9075a78441bdc5e6d805a [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://webbluetoothchrome.github.io/web-bluetooth/#idl-def-bluetoothgattcharacteristic
// Implement BluetoothRemoteGATTCharacteristic interface: https://crbug.com/483344
[
GarbageCollected,
DependentLifetime,
RuntimeEnabled=WebBluetooth,
// TODO(https://crbug.com/584113) Enable Web Bluetooth Experiment.
// OriginTrialEnabled=WebBluetooth,
] interface BluetoothRemoteGATTCharacteristic : EventTarget {//: CharacteristicEventHandlers {
// TODO(ortuno): Add test to make sure service matches the service
// used to call getCharacteristic.
// readonly attribute BluetoothRemoteGATTService service;
readonly attribute UUID uuid;
readonly attribute BluetoothCharacteristicProperties properties;
readonly attribute DataView? value;
// Promise<BluetoothRemoteGATTDescriptor> getDescriptor(BluetoothDescriptorUUID descriptor);
// Promise<sequence<BluetoothRemoteGATTDescriptor>> getDescriptors(optional BluetoothDescriptorUUID descriptor);
[CallWith=ScriptState] Promise<DataView> readValue();
[CallWith=ScriptState] Promise<void> writeValue(BufferSource value);
[CallWith=ScriptState] Promise<void> startNotifications();
[CallWith=ScriptState] Promise<void> stopNotifications();
// TODO(ortuno): Move this to CharacteristicEventHandlers.
// http://crbug.com/537459
attribute EventHandler oncharacteristicvaluechanged;
};