From fae2beeda0b125547fb105017f77166dcf497a9f Mon Sep 17 00:00:00 2001 From: Zakor Gyula Date: Thu, 9 Feb 2017 17:32:01 +0100 Subject: [PATCH] Reorder startNotifications steps --- components/bluetooth/lib.rs | 6 +++--- .../dom/bluetoothremotegattcharacteristic.rs | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/components/bluetooth/lib.rs b/components/bluetooth/lib.rs index bcfa1b9c4dcd..9091d8ebf358 100644 --- a/components/bluetooth/lib.rs +++ b/components/bluetooth/lib.rs @@ -886,7 +886,7 @@ impl BluetoothManager { // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-startnotifications // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetoothremotegattcharacteristic-stopnotifications fn enable_notification(&mut self, id: String, enable: bool) -> BluetoothResponseResult { - // (StartNotifications) Step 2 - 3. + // (StartNotifications) Step 3 - 4. // (StopNotifications) Step 1 - 2. if !self.characteristic_is_cached(&id) { return Err(BluetoothError::InvalidState); @@ -909,11 +909,11 @@ impl BluetoothManager { // (StopNotification) Step 5. Ok(_) => return Ok(BluetoothResponse::EnableNotification(())), - // (StartNotification) Step 4. + // (StartNotification) Step 5. Err(_) => return Err(BluetoothError::NotSupported), } }, - // (StartNotification) Step 3. + // (StartNotification) Step 4. None => return Err(BluetoothError::InvalidState), } } diff --git a/components/script/dom/bluetoothremotegattcharacteristic.rs b/components/script/dom/bluetoothremotegattcharacteristic.rs index 7e72bb57a987..636b9dc96f42 100644 --- a/components/script/dom/bluetoothremotegattcharacteristic.rs +++ b/components/script/dom/bluetoothremotegattcharacteristic.rs @@ -209,22 +209,22 @@ impl BluetoothRemoteGATTCharacteristicMethods for BluetoothRemoteGATTCharacteris return p; } - // Step 4. + // Step 2. + if !self.Service().Device().Gatt().Connected() { + p.reject_error(p_cx, Network); + return p; + } + + // Step 5. if !(self.Properties().Notify() || self.Properties().Indicate()) { p.reject_error(p_cx, NotSupported); return p; } - // TODO: Step 5: Implement `active notification context set` for BluetoothRemoteGATTCharacteristic. - - // Step 6. - if !self.Service().Device().Gatt().Connected() { - p.reject_error(p_cx, Network); - return p; - } + // TODO: Step 6: Implement `active notification context set` for BluetoothRemoteGATTCharacteristic. - // Note: Steps 2 - 3, 7 - 11 are implemented in components/bluetooth/lib.rs in enable_notification function + // Note: Steps 3 - 4, 7 - 11 are implemented in components/bluetooth/lib.rs in enable_notification function // and in handle_response function. let sender = response_async(&p, self); self.get_bluetooth_thread().send(