aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bluetooth.rs17
-rw-r--r--components/script/dom/webidls/Bluetooth.webidl4
2 files changed, 19 insertions, 2 deletions
diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs
index 82d455e5f4f..82c39782133 100644
--- a/components/script/dom/bluetooth.rs
+++ b/components/script/dom/bluetooth.rs
@@ -443,6 +443,18 @@ impl BluetoothMethods for Bluetooth {
return p;
}
+ #[allow(unrooted_must_root)]
+ // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-getavailability
+ fn GetAvailability(&self) -> Rc<Promise> {
+ let p = Promise::new(&self.global());
+ // Step 1. We did not override the method
+ // Step 2 - 3. in handle_response
+ let sender = response_async(&p, self);
+ self.get_bluetooth_thread().send(
+ BluetoothRequest::GetAvailability(sender)).unwrap();
+ p
+ }
+
// https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-onavailabilitychanged
event_handler!(availabilitychanged, GetOnavailabilitychanged, SetOnavailabilitychanged);
}
@@ -466,6 +478,11 @@ impl AsyncBluetoothListener for Bluetooth {
// Step 5.
promise.resolve_native(promise_cx, &bt_device);
},
+ // https://webbluetoothcg.github.io/web-bluetooth/#dom-bluetooth-getavailability
+ // Step 2 - 3.
+ BluetoothResponse::GetAvailability(is_available) => {
+ promise.resolve_native(promise_cx, &is_available);
+ }
_ => promise.reject_error(promise_cx, Error::Type("Something went wrong...".to_owned())),
}
}
diff --git a/components/script/dom/webidls/Bluetooth.webidl b/components/script/dom/webidls/Bluetooth.webidl
index fe87d10aa81..6299e661474 100644
--- a/components/script/dom/webidls/Bluetooth.webidl
+++ b/components/script/dom/webidls/Bluetooth.webidl
@@ -29,8 +29,8 @@ dictionary RequestDeviceOptions {
[Pref="dom.bluetooth.enabled"]
interface Bluetooth : EventTarget {
- // [SecureContext]
- // Promise<boolean> getAvailability();
+ [SecureContext]
+ Promise<boolean> getAvailability();
[SecureContext]
attribute EventHandler onavailabilitychanged;
// [SecureContext, SameObject]