Bug 1842007 - Part 8: Remove DomPromiseListener r=dom-core,edgar

Differential Revision: https://phabricator.services.mozilla.com/D183027
This commit is contained in:
Kagami Sascha Rosylight 2023-09-19 09:58:01 +00:00
parent 2cc2490039
commit 9f2c8f0585
2 changed files with 0 additions and 73 deletions

View File

@ -15,51 +15,4 @@ namespace mozilla::dom {
NS_IMPL_ISUPPORTS0(MozPromiseRejectOnDestructionBase)
NS_IMPL_ISUPPORTS0(DomPromiseListener)
DomPromiseListener::DomPromiseListener(CallbackTypeResolved&& aResolve,
CallbackTypeRejected&& aReject)
: mResolve(std::move(aResolve)), mReject(std::move(aReject)) {}
DomPromiseListener::~DomPromiseListener() {
if (mReject) {
mReject(NS_BINDING_ABORTED);
}
}
void DomPromiseListener::ResolvedCallback(JSContext* aCx,
JS::Handle<JS::Value> aValue,
ErrorResult& aRv) {
if (mResolve) {
mResolve(aCx, aValue);
}
// Let's clear the lambdas in case we have a cycle to ourselves.
Clear();
}
void DomPromiseListener::RejectedCallback(JSContext* aCx,
JS::Handle<JS::Value> aValue,
ErrorResult& aRv) {
if (mReject) {
nsresult errorCode = NS_ERROR_DOM_NOT_NUMBER_ERR;
if (aValue.isInt32()) {
errorCode = nsresult(aValue.toInt32());
} else if (aValue.isObject()) {
RefPtr<::mozilla::dom::DOMException> domException;
UNWRAP_OBJECT(DOMException, aValue, domException);
if (domException) {
errorCode = domException->GetResult();
}
}
mReject(errorCode);
}
// Let's clear the lambdas in case we have a cycle to ourselves.
Clear();
}
void DomPromiseListener::Clear() {
mResolve = nullptr;
mReject = nullptr;
}
} // namespace mozilla::dom

View File

@ -73,32 +73,6 @@ class MozPromiseRejectOnDestruction final
const char* mCallSite;
};
// This class is used to set C++ callbacks once a dom Promise a resolved or
// rejected.
class DomPromiseListener final : public PromiseNativeHandler {
NS_DECL_ISUPPORTS
public:
using CallbackTypeResolved =
std::function<void(JSContext*, JS::Handle<JS::Value>)>;
using CallbackTypeRejected = std::function<void(nsresult)>;
DomPromiseListener(CallbackTypeResolved&& aResolve,
CallbackTypeRejected&& aReject);
void Clear();
void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,
ErrorResult& aRv) override;
void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,
ErrorResult& aRv) override;
private:
~DomPromiseListener();
CallbackTypeResolved mResolve;
CallbackTypeRejected mReject;
};
} // namespace mozilla::dom
#endif // mozilla_dom_PromiseNativeHandler_h