diff options
author | Yerkebulan Tulibergenov <yerkebulan@gmail.com> | 2025-02-23 04:12:21 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-23 12:12:21 +0000 |
commit | 0383ba9a5b940de76823462ebc1b95298ea50903 (patch) | |
tree | 23c9539a19729c7ec065dbe6cfb9bb2843a2721c /components/script/dom/bluetooth | |
parent | adb831eefea3b98369dab56fa1ef4f668900974c (diff) | |
download | servo-0383ba9a5b940de76823462ebc1b95298ea50903.tar.gz servo-0383ba9a5b940de76823462ebc1b95298ea50903.zip |
refactor: add CanGc as argument to Promise::resolve (#35616)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
Diffstat (limited to 'components/script/dom/bluetooth')
7 files changed, 32 insertions, 36 deletions
diff --git a/components/script/dom/bluetooth/bluetooth.rs b/components/script/dom/bluetooth/bluetooth.rs index 7ea54e11d20..e1401b9d04e 100644 --- a/components/script/dom/bluetooth/bluetooth.rs +++ b/components/script/dom/bluetooth/bluetooth.rs @@ -589,7 +589,7 @@ impl AsyncBluetoothListener for Bluetooth { BluetoothResponse::RequestDevice(device) => { let mut device_instance_map = self.device_instance_map.borrow_mut(); if let Some(existing_device) = device_instance_map.get(&device.id.clone()) { - return promise.resolve_native(&**existing_device); + return promise.resolve_native(&**existing_device, can_gc); } let bt_device = BluetoothDevice::new( &self.global(), @@ -609,12 +609,12 @@ impl AsyncBluetoothListener for Bluetooth { }); // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-requestdevice // Step 5. - promise.resolve_native(&bt_device); + promise.resolve_native(&bt_device, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-getavailability // Step 2 - 3. BluetoothResponse::GetAvailability(is_available) => { - promise.resolve_native(&is_available); + promise.resolve_native(&is_available, can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } @@ -655,7 +655,7 @@ impl PermissionAlgorithm for Bluetooth { // Step 3. if let PermissionState::Denied = status.get_state() { status.set_devices(Vec::new()); - return promise.resolve_native(status); + return promise.resolve_native(status, CanGc::note()); } // Step 4. @@ -727,7 +727,7 @@ impl PermissionAlgorithm for Bluetooth { // https://w3c.github.io/permissions/#dom-permissions-query // Step 7. - promise.resolve_native(status); + promise.resolve_native(status, CanGc::note()); } // https://webbluetoothcg.github.io/web-bluetooth/#request-the-bluetooth-permission diff --git a/components/script/dom/bluetooth/bluetoothdevice.rs b/components/script/dom/bluetooth/bluetoothdevice.rs index 8eafc696330..025b3435492 100644 --- a/components/script/dom/bluetooth/bluetoothdevice.rs +++ b/components/script/dom/bluetooth/bluetoothdevice.rs @@ -327,14 +327,14 @@ impl BluetoothDeviceMethods<crate::DomTypeHolder> for BluetoothDevice { } impl AsyncBluetoothListener for BluetoothDevice { - 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-bluetoothdevice-unwatchadvertisements BluetoothResponse::WatchAdvertisements(_result) => { // Step 3.1. self.watching_advertisements.set(true); // Step 3.2. - promise.resolve_native(&()); + promise.resolve_native(&(), can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } diff --git a/components/script/dom/bluetooth/bluetoothpermissionresult.rs b/components/script/dom/bluetooth/bluetoothpermissionresult.rs index 7c0053987c7..2a02936d5f7 100644 --- a/components/script/dom/bluetooth/bluetoothpermissionresult.rs +++ b/components/script/dom/bluetooth/bluetoothpermissionresult.rs @@ -112,7 +112,7 @@ impl AsyncBluetoothListener for BluetoothPermissionResult { // https://w3c.github.io/permissions/#dom-permissions-request // Step 8. - return promise.resolve_native(self); + return promise.resolve_native(self, can_gc); } let bt_device = BluetoothDevice::new( &self.global(), @@ -135,7 +135,7 @@ impl AsyncBluetoothListener for BluetoothPermissionResult { // https://w3c.github.io/permissions/#dom-permissions-request // Step 8. - promise.resolve_native(self); + promise.resolve_native(self, can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } diff --git a/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs b/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs index eebc86ef8fe..f06bb03efac 100644 --- a/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs +++ b/components/script/dom/bluetooth/bluetoothremotegattcharacteristic.rs @@ -309,11 +309,10 @@ 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), can_gc, - )); + ); return; } let mut descriptors = vec![]; @@ -321,7 +320,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTCharacteristic { let bt_descriptor = device.get_or_create_descriptor(&descriptor, self, can_gc); descriptors.push(bt_descriptor); } - promise.resolve_native(&descriptors); + promise.resolve_native(&descriptors, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-readvalue BluetoothResponse::ReadValue(result) => { @@ -337,7 +336,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTCharacteristic { .fire_bubbling_event(atom!("characteristicvaluechanged"), can_gc); // Step 5.5.4. - promise.resolve_native(&value); + promise.resolve_native(&value, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-writevalue BluetoothResponse::WriteValue(result) => { @@ -348,7 +347,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTCharacteristic { *self.value.borrow_mut() = Some(ByteString::new(result)); // Step 7.5.3. - promise.resolve_native(&()); + promise.resolve_native(&(), can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-startnotifications // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-stopnotifications @@ -358,7 +357,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTCharacteristic { // (StartNotification) Step 11. // (StopNotification) Step 5. - promise.resolve_native(self); + promise.resolve_native(self, can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } diff --git a/components/script/dom/bluetooth/bluetoothremotegattdescriptor.rs b/components/script/dom/bluetooth/bluetoothremotegattdescriptor.rs index 9aeabd23a22..41ccc0f68d0 100644 --- a/components/script/dom/bluetooth/bluetoothremotegattdescriptor.rs +++ b/components/script/dom/bluetooth/bluetoothremotegattdescriptor.rs @@ -181,7 +181,7 @@ impl BluetoothRemoteGATTDescriptorMethods<crate::DomTypeHolder> for BluetoothRem } impl AsyncBluetoothListener for BluetoothRemoteGATTDescriptor { - 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-bluetoothremotegattdescriptor-readvalue BluetoothResponse::ReadValue(result) => { @@ -193,7 +193,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTDescriptor { *self.value.borrow_mut() = Some(value.clone()); // Step 5.4.3. - promise.resolve_native(&value); + promise.resolve_native(&value, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattdescriptor-writevalue BluetoothResponse::WriteValue(result) => { @@ -205,7 +205,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTDescriptor { // Step 7.4.3. // TODO: Resolve promise with undefined instead of a value. - promise.resolve_native(&()); + promise.resolve_native(&(), can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } diff --git a/components/script/dom/bluetooth/bluetoothremotegattserver.rs b/components/script/dom/bluetooth/bluetoothremotegattserver.rs index fbc8f21f997..b4c59a1fbcc 100644 --- a/components/script/dom/bluetooth/bluetoothremotegattserver.rs +++ b/components/script/dom/bluetooth/bluetoothremotegattserver.rs @@ -164,18 +164,17 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTServer { self.connected.set(connected); // Step 5.2.5. - promise.resolve_native(self); + promise.resolve_native(self, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#getgattchildren // Step 7. 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), can_gc, - )); + ); return; } let mut services = vec![]; @@ -183,7 +182,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTServer { let bt_service = device.get_or_create_service(&service, self, can_gc); services.push(bt_service); } - promise.resolve_native(&services); + promise.resolve_native(&services, can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } diff --git a/components/script/dom/bluetooth/bluetoothremotegattservice.rs b/components/script/dom/bluetooth/bluetoothremotegattservice.rs index 5c768411013..99acff24fbe 100644 --- a/components/script/dom/bluetooth/bluetoothremotegattservice.rs +++ b/components/script/dom/bluetooth/bluetoothremotegattservice.rs @@ -172,11 +172,10 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTService { // 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), can_gc, - )); + ); return; } let mut characteristics = vec![]; @@ -185,17 +184,16 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTService { device.get_or_create_characteristic(&characteristic, self, can_gc); characteristics.push(bt_characteristic); } - promise.resolve_native(&characteristics); + promise.resolve_native(&characteristics, can_gc); }, // https://webbluetoothcg.github.io/web-bluetooth/#getgattchildren // 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), can_gc, - )); + ); } let mut services = vec![]; for service in services_vec { @@ -203,7 +201,7 @@ impl AsyncBluetoothListener for BluetoothRemoteGATTService { device.get_or_create_service(&service, &device.get_gatt(), can_gc); services.push(bt_service); } - promise.resolve_native(&services); + promise.resolve_native(&services, can_gc); }, _ => promise.reject_error(Error::Type("Something went wrong...".to_owned())), } |