| Index: device/bluetooth/public/interfaces/device.mojom | 
| diff --git a/device/bluetooth/public/interfaces/device.mojom b/device/bluetooth/public/interfaces/device.mojom | 
| index 71922af2439e8515f4db175fa1991cecaa06a992..b8ee6ef753ef3669fd4914f96d7a73351dde2645 100644 | 
| --- a/device/bluetooth/public/interfaces/device.mojom | 
| +++ b/device/bluetooth/public/interfaces/device.mojom | 
| @@ -6,6 +6,33 @@ module bluetooth.mojom; | 
|  | 
| import "device/bluetooth/public/interfaces/uuid.mojom"; | 
|  | 
| +// Values representing the possible properties of a characteristic, which | 
| +// define how the characteristic can be used. Each of these properties serve | 
| +// a role as defined in the Bluetooth Specification. | 
| +// |EXTENDED_PROPERTIES| is a special property that, if present, | 
| +// indicates that there is a characteristic descriptor (namely the | 
| +// "Characteristic Extended Properties Descriptor" with UUID 0x2900) that | 
| +// contains additional properties pertaining to the characteristic. | 
| +// The properties |RELIABLE_WRITE| and |WRITABLE_AUXILIARIES| are retrieved from | 
| +// that characteristic. | 
| +enum Property { | 
| +  NONE = 0, | 
| +  BROADCAST = 1, | 
| +  READ = 2, | 
| +  WRITE_WITHOUT_RESPONSE = 4, | 
| +  WRITE = 8, | 
| +  NOTIFY = 16, | 
| +  INDICATE = 32, | 
| +  AUTHENTICATED_SIGNED_WRITES = 64, | 
| +  EXTENDED_PROPERTIES = 128, | 
| +  RELIABLE_WRITE = 256, | 
| +  WRITABLE_AUXILIARIES = 512, | 
| +  READ_ENCRYPTED = 1024, | 
| +  WRITE_ENCRYPTED = 2048, | 
| +  READ_ENCRYPTED_AUTHENTICATED = 4096, | 
| +  WRITE_ENCRYPTED_AUTHENTICATED = 8192 | 
| +}; | 
| + | 
| // TODO(crbug.com/657632): Remove when numerical values can be optional. | 
| struct RSSIWrapper { | 
| int8 value; | 
| @@ -25,6 +52,12 @@ struct ServiceInfo { | 
| bool is_primary; | 
| }; | 
|  | 
| +struct CharacteristicInfo { | 
| +  string id; | 
| +  UUID uuid; | 
| +  uint32 properties; | 
| +}; | 
| + | 
| interface Device { | 
| // Disconnects and deletes the Device. | 
| Disconnect(); | 
| @@ -35,4 +68,8 @@ interface Device { | 
|  | 
| // Gets the GATT Services in this device's GATT Server. | 
| GetServices() => (array<ServiceInfo> services); | 
| + | 
| +  // Gets the GATT Characteristics in the GATT Service with |service_id|. | 
| +  GetCharacteristics(string service_id) => | 
| +      (array<CharacteristicInfo> characteristics); | 
| }; | 
|  |