BluetoothDevice
BluetoothGatt
BluetoothDeviceWrapper
+mDevice: BluetoothDevice
BluetoothGattWrapper
+mGatt: BluetoothGatt
ChromeBluetoothDevice
+mDevice: BluetoothDeviceWrapper
+mBluetoothGatt: BluetoothGattWrapper
chromium/src/third_party/android_tools/sdk/sources/android-23/android/bluetooth
Android SDK
chromium/src/device/bluetooth/android/java/src/org/chromium/device/bluetooth
Chromium (java)
BluetoothDeviceAndroid
+j_device_: ChromeBluetoothDevice
chromium/src/device/bluetooth
Chromium/device (c++)
BluetoothDevice
+gatt_services_: BluetoothGattService[]
BluetoothAdapterAndroid
chromium/src/third_party/WebKit/Source/modules/bluetooth/*.cpp
Blink (c++)
BluetoothDevice
+m_device: mojom::blink::WebBluetoothDevicePtr
+m_bluetooth: Member<Bluetooth>
+bluetooth(): Bluetooth*
WebBluetooth (javascript)
BluetoothDevice
+gatt: BluetoothRemoteGATTServer
+name: DOMString?
+id: DOMString
+ongattserverdisconnected: EventHandler
chromium/src/third_party/WebKit/Source/modules/bluetooth/*.idl
chromium/src/content/browser/bluetooth
Chromium/content (c++)
BluetoothAdapter
instantiate
Main Process (Browser Process)
Render Process
Bluetooth
+m_service: mojom::blink::WebBluetoothServicePtr
+service(): mojom::blink::WebBluetoothService*
Bluetooth
+requestDevice(): Promise<BluetoothDevice>
ChromeBluetoothRemoteGattCharacteristic
+mCharacteristic: BluetoothGattCharacteristicWrapper
BluetoothGattCharacteristicWrapper
+mCharacteristic: BluetoothGattCharacteristic
BluetoothGattCharacteristic
BluetoothRemoteGattCharacteristicAndroid
+j_characteristic_: ChromeBluetoothRemoteGattCharacteristic
BluetoothGattCharacteristic
BluetoothRemoteGattServiceAndroid
+j_service_: ChromeBluetoothRemoteGattService
+characteristics_: BluetoothRemoteGattCharacteristicAndroid[]
ChromeBluetoothRemoteGattService
+mService: BluetoothGattServiceWrapper
BluetoothGattServiceWrapper
+mService: BluetoothGattService
BluetoothGattService
0..N
1
0..N
1
BluetoothRemoteGATTService
+m_service: mojom::blink::WebBluetoothRemoteGATTServicePtr
+m_device: Member<BluetoothDevice>
BluetoothRemoteGATTCharacteristic
+m_characteristic: mojom::blink::WebBluetoothRemoteGATTCharacteristicPtr
BluetoothRemoteGATTService
+uuid: UUID
+isPrimary: boolean
+device: BluetoothDevice
+getCharacteristic(characteristic:BluetoothCharacteristicUUID): Promise<BluetoothRemoteGATTCharacteristic>
+getCharacteristics(characteristic:(optional BluetoothCharacteristicUUID): Promise<sequence<BluetoothRemoteGATTCharacteristic>>
BluetoothRemoteGATTCharacteristic
+service: BluetoothRemoteGATTService
+uuid: UUID
+properties: BluetoothCharacteristicProperties
+value: DataView?
+readValue(): Promise<DataView>
+writeValue(value:BufferSource): Promise<void>
+startNotifications(): Promise<BluetoothRemoteGATTCharacteristic>
+stopNotifications(): Promise<BluetoothRemoteGATTCharacteristic>
Actor
getCharacteristic
getCharacteristic
m_device->bluetooth()->service()->RemoteServiceGetCharacteristics
GetCharacteristics
ensureCharacteristicsCreated
BluetoothGattService
getCharacteristics
getCharacteristics
return characteristics
return characteristics-wrappers
CreateGattRemoteCharacteristic
Create
create
new
return new instance
WebBluetooth
BluetoothRemoteGATTServer
+device: BluetoothDevice
+connected: boolean
+getPrimaryService(service:BluetoothServiceUUID): Promise<BluetoothRemoteGATTService>
+getPrimaryServices(service:optional BluetoothServiceUUID): Promise<sequence<BluetoothRemoteGATTService>>
+connect(): Promise<BluetoothRemoteGATTServer>
+disconnect(): void
getPrimaryService
getPrimaryService
discoverServices
discoverServices
onServicesDiscovered
CreateGattRemoteService
onConnectionStateChange
GetGattServices
gatt_services_.set
This creation of a Characteristic by the Service provides
+ An opportunity when under test for Fake objects to create
the appropriate new type of object.
+ A object reference that can be returned to C++ to have
the necessary access.
+ The Wrappers or Fakes to maintain necessary peer refeferences.
BluetoothRemoteGATTServer
+m_device: Member<BluetoothDevice>
m_device->bluetooth()->service()->RemoteServerGetPrimaryServices
Mojo IPC call
Mojo IPC call
WebBluetoothServiceImpl
+binding_: mojo::Binding<blink::mojom::WebBluetoothService>
+allowed_devices_map_: BluetoothAllowedDevicesMap
+RemoteServiceGetCharacteristics(): void
+RemoteServerGetPrimaryServices(): void
BluetoothAllowedDevicesMap
communicate through
communicate with
RemoteServiceGetCharacteristics
RemoteServerGetPrimaryServices
1
1
1
1