Bug 1043250 - Part 3: Update MozMobileMessageManager WebIDL interface and implementation. r=hsinyi

MobileMessageManager / MozMobileMessageManager.webidl:
- Adapt Promise in GetSmscAddress function instead of DOMRequest.
This commit is contained in:
Samael Wang 2015-07-14 14:57:41 +08:00
parent 6deae59629
commit 3943cc4770
3 changed files with 21 additions and 9 deletions

View File

@ -725,7 +725,7 @@ MobileMessageManager::Observe(nsISupports* aSubject, const char* aTopic,
return NS_OK;
}
already_AddRefed<DOMRequest>
already_AddRefed<Promise>
MobileMessageManager::GetSmscAddress(const Optional<uint32_t>& aServiceId,
ErrorResult& aRv)
{
@ -754,15 +754,27 @@ MobileMessageManager::GetSmscAddress(const Optional<uint32_t>& aServiceId,
return nullptr;
}
nsRefPtr<DOMRequest> request = new DOMRequest(window);
nsCOMPtr<nsIMobileMessageCallback> msgCallback = new MobileMessageCallback(request);
rv = smsService->GetSmscAddress(serviceId, msgCallback);
if (NS_FAILED(rv)) {
aRv.Throw(rv);
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
if (!global) {
aRv.Throw(NS_ERROR_UNEXPECTED);
return nullptr;
}
return request.forget();
nsRefPtr<Promise> promise = Promise::Create(global, aRv);
if (aRv.Failed()) {
return nullptr;
}
nsCOMPtr<nsIMobileMessageCallback> msgCallback =
new MobileMessageCallback(promise);
rv = smsService->GetSmscAddress(serviceId, msgCallback);
if (NS_FAILED(rv)) {
promise->MaybeReject(rv);
return promise.forget();
}
return promise.forget();
}
already_AddRefed<Promise>

View File

@ -114,7 +114,7 @@ public:
RetrieveMMS(nsIDOMMozMmsMessage* aMessage,
ErrorResult& aRv);
already_AddRefed<DOMRequest>
already_AddRefed<Promise>
GetSmscAddress(const Optional<uint32_t>& aServiceId,
ErrorResult& aRv);

View File

@ -194,7 +194,7 @@ interface MozMobileMessageManager : EventTarget
DOMRequest retrieveMMS(MozMmsMessage message);
[Throws]
DOMRequest getSmscAddress(optional unsigned long serviceId);
Promise<SmscAddress> getSmscAddress(optional unsigned long serviceId);
/**
* Set the SMSC address.