aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bluetooth
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bluetooth')
-rw-r--r--components/script/dom/bluetooth/bluetoothdevice.rs11
-rw-r--r--components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs10
-rw-r--r--components/script/dom/bluetooth/bluetoothremotegattserver.rs10
-rw-r--r--components/script/dom/bluetooth/bluetoothremotegattservice.rs23
4 files changed, 34 insertions, 20 deletions
diff --git a/components/script/dom/bluetooth/bluetoothdevice.rs b/components/script/dom/bluetooth/bluetoothdevice.rs
index 49f38d6f843..8eafc696330 100644
--- a/components/script/dom/bluetooth/bluetoothdevice.rs
+++ b/components/script/dom/bluetooth/bluetoothdevice.rs
@@ -103,6 +103,7 @@ impl BluetoothDevice {
&self,
service: &BluetoothServiceMsg,
server: &BluetoothRemoteGATTServer,
+ can_gc: CanGc,
) -> DomRoot<BluetoothRemoteGATTService> {
let service_map_ref = &self.attribute_instance_map.service_map;
let mut service_map = service_map_ref.borrow_mut();
@@ -115,7 +116,7 @@ impl BluetoothDevice {
DOMString::from(service.uuid.clone()),
service.is_primary,
service.instance_id.clone(),
- CanGc::note(),
+ can_gc,
);
service_map.insert(service.instance_id.clone(), Dom::from_ref(&bt_service));
bt_service
@@ -125,6 +126,7 @@ impl BluetoothDevice {
&self,
characteristic: &BluetoothCharacteristicMsg,
service: &BluetoothRemoteGATTService,
+ can_gc: CanGc,
) -> DomRoot<BluetoothRemoteGATTCharacteristic> {
let characteristic_map_ref = &self.attribute_instance_map.characteristic_map;
let mut characteristic_map = characteristic_map_ref.borrow_mut();
@@ -142,7 +144,7 @@ impl BluetoothDevice {
characteristic.authenticated_signed_writes,
characteristic.reliable_write,
characteristic.writable_auxiliaries,
- CanGc::note(),
+ can_gc,
);
let bt_characteristic = BluetoothRemoteGATTCharacteristic::new(
&service.global(),
@@ -150,7 +152,7 @@ impl BluetoothDevice {
DOMString::from(characteristic.uuid.clone()),
&properties,
characteristic.instance_id.clone(),
- CanGc::note(),
+ can_gc,
);
characteristic_map.insert(
characteristic.instance_id.clone(),
@@ -174,6 +176,7 @@ impl BluetoothDevice {
&self,
descriptor: &BluetoothDescriptorMsg,
characteristic: &BluetoothRemoteGATTCharacteristic,
+ can_gc: CanGc,
) -> DomRoot<BluetoothRemoteGATTDescriptor> {
let descriptor_map_ref = &self.attribute_instance_map.descriptor_map;
let mut descriptor_map = descriptor_map_ref.borrow_mut();
@@ -185,7 +188,7 @@ impl BluetoothDevice {
characteristic,
DOMString::from(descriptor.uuid.clone()),
descriptor.instance_id.clone(),
- CanGc::note(),
+ can_gc,
);
descriptor_map.insert(
descriptor.instance_id.clone(),
diff --git a/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs b/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs
index 25119fdda99..eebc86ef8fe 100644
--- a/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs
+++ b/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs
@@ -309,14 +309,16 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTCharacteristic {
// Step 7.
BluetoothResponse::GetDescriptors(descriptors_vec, single) => {
if single {
- promise.resolve_native(
- &device.get_or_create_descriptor(&descriptors_vec[0], self),
- );
+ promise.resolve_native(&device.get_or_create_descriptor(
+ &descriptors_vec[0],
+ self,
+ can_gc,
+ ));
return;
}
let mut descriptors = vec![];
for descriptor in descriptors_vec {
- let bt_descriptor = device.get_or_create_descriptor(&descriptor, self);
+ let bt_descriptor = device.get_or_create_descriptor(&descriptor, self, can_gc);
descriptors.push(bt_descriptor);
}
promise.resolve_native(&descriptors);
diff --git a/components/script/dom/bluetooth/bluetoothremotegattserver.rs b/components/script/dom/bluetooth/bluetoothremotegattserver.rs
index db21f1fb88e..fbc8f21f997 100644
--- a/components/script/dom/bluetooth/bluetoothremotegattserver.rs
+++ b/components/script/dom/bluetooth/bluetoothremotegattserver.rs
@@ -148,7 +148,7 @@ impl BluetoothRemoteGATTServerMethods<crate::DomTypeHolder> for BluetoothRemoteG
}
impl AsyncBluetoothListener for BluetoothRemoteGATTServer {
- fn handle_response(&self, response: BluetoothResponse, promise: &Rc<Promise>, _can_gc: CanGc) {
+ fn handle_response(&self, response: BluetoothResponse, promise: &Rc<Promise>, can_gc: CanGc) {
match response {
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattserver-connect
BluetoothResponse::GATTServerConnect(connected) => {
@@ -171,12 +171,16 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTServer {
BluetoothResponse::GetPrimaryServices(services_vec, single) => {
let device = self.Device();
if single {
- promise.resolve_native(&device.get_or_create_service(&services_vec[0], self));
+ promise.resolve_native(&device.get_or_create_service(
+ &services_vec[0],
+ self,
+ can_gc,
+ ));
return;
}
let mut services = vec![];
for service in services_vec {
- let bt_service = device.get_or_create_service(&service, self);
+ let bt_service = device.get_or_create_service(&service, self, can_gc);
services.push(bt_service);
}
promise.resolve_native(&services);
diff --git a/components/script/dom/bluetooth/bluetoothremotegattservice.rs b/components/script/dom/bluetooth/bluetoothremotegattservice.rs
index bee14b01737..5c768411013 100644
--- a/components/script/dom/bluetooth/bluetoothremotegattservice.rs
+++ b/components/script/dom/bluetooth/bluetoothremotegattservice.rs
@@ -165,22 +165,24 @@ impl BluetoothRemoteGATTServiceMethods<crate::DomTypeHolder> for BluetoothRemote
}
impl AsyncBluetoothListener for BluetoothRemoteGATTService {
- fn handle_response(&self, response: BluetoothResponse, promise: &Rc<Promise>, _can_gc: CanGc) {
+ fn handle_response(&self, response: BluetoothResponse, promise: &Rc<Promise>, can_gc: CanGc) {
let device = self.Device();
match response {
// https://webbluetoothcg.github.io/web-bluetooth/#getgattchildren
// Step 7.
BluetoothResponse::GetCharacteristics(characteristics_vec, single) => {
if single {
- promise.resolve_native(
- &device.get_or_create_characteristic(&characteristics_vec[0], self),
- );
+ promise.resolve_native(&device.get_or_create_characteristic(
+ &characteristics_vec[0],
+ self,
+ can_gc,
+ ));
return;
}
let mut characteristics = vec![];
for characteristic in characteristics_vec {
let bt_characteristic =
- device.get_or_create_characteristic(&characteristic, self);
+ device.get_or_create_characteristic(&characteristic, self, can_gc);
characteristics.push(bt_characteristic);
}
promise.resolve_native(&characteristics);
@@ -189,13 +191,16 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTService {
// Step 7.
BluetoothResponse::GetIncludedServices(services_vec, single) => {
if single {
- return promise.resolve_native(
- &device.get_or_create_service(&services_vec[0], &device.get_gatt()),
- );
+ return promise.resolve_native(&device.get_or_create_service(
+ &services_vec[0],
+ &device.get_gatt(),
+ can_gc,
+ ));
}
let mut services = vec![];
for service in services_vec {
- let bt_service = device.get_or_create_service(&service, &device.get_gatt());
+ let bt_service =
+ device.get_or_create_service(&service, &device.get_gatt(), can_gc);
services.push(bt_service);
}
promise.resolve_native(&services);