Bug 1027992 - Patch: Throw an exception when Promise can't be created for enable/disable adapter requests. r=bz

This commit is contained in:
Jocelyn Liu 2014-06-24 15:29:34 +08:00
parent dc1119e59e
commit a74d3de836
3 changed files with 14 additions and 9 deletions

View File

@ -663,10 +663,13 @@ BluetoothAdapter::SetPairingConfirmation(const nsAString& aDeviceAddress,
}
already_AddRefed<Promise>
BluetoothAdapter::EnableDisable(bool aEnable)
BluetoothAdapter::EnableDisable(bool aEnable, ErrorResult& aRv)
{
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(GetOwner());
NS_ENSURE_TRUE(global, nullptr);
if(!global) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
}
nsRefPtr<Promise> promise = new Promise(global);
@ -716,15 +719,15 @@ BluetoothAdapter::EnableDisable(bool aEnable)
}
already_AddRefed<Promise>
BluetoothAdapter::Enable()
BluetoothAdapter::Enable(ErrorResult& aRv)
{
return EnableDisable(true);
return EnableDisable(true, aRv);
}
already_AddRefed<Promise>
BluetoothAdapter::Disable()
BluetoothAdapter::Disable(ErrorResult& aRv)
{
return EnableDisable(false);
return EnableDisable(false, aRv);
}
BluetoothAdapterAttribute

View File

@ -124,9 +124,9 @@ public:
SetAuthorization(const nsAString& aDeviceAddress, bool aAllow,
ErrorResult& aRv);
already_AddRefed<Promise> EnableDisable(bool aEnable);
already_AddRefed<Promise> Enable();
already_AddRefed<Promise> Disable();
already_AddRefed<Promise> EnableDisable(bool aEnable, ErrorResult& aRv);
already_AddRefed<Promise> Enable(ErrorResult& aRv);
already_AddRefed<Promise> Disable(ErrorResult& aRv);
already_AddRefed<DOMRequest>
Connect(BluetoothDevice& aDevice,

View File

@ -117,8 +117,10 @@ interface BluetoothAdapter : EventTarget {
* enabled/disabled.
*/
// Promise<void>
[Throws]
Promise enable();
// Promise<void>
[Throws]
Promise disable();
/**