Bug 1776878 - Extract the WorkerRef initialization from the EventCallback constructor. r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D150491
This commit is contained in:
Jens Stutte 2022-07-06 17:43:24 +00:00
Родитель 291489917d
Коммит 3a75178002
1 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -280,7 +280,9 @@ OffscreenCanvas::CreateEncodeCompleteCallback(Promise* aPromise) {
class EncodeCallback : public EncodeCompleteCallback {
public:
explicit EncodeCallback(Promise* aPromise)
: mPromise(aPromise), mCanceled(false) {
: mPromise(aPromise), mCanceled(false) {}
void MaybeInitWorkerRef() {
WorkerPrivate* wp = GetCurrentThreadWorkerPrivate();
if (wp) {
mWorkerRef = WeakWorkerRef::Create(
@ -327,7 +329,9 @@ OffscreenCanvas::CreateEncodeCompleteCallback(Promise* aPromise) {
Atomic<bool> mCanceled;
};
return MakeAndAddRef<EncodeCallback>(aPromise);
RefPtr<EncodeCallback> p = MakeAndAddRef<EncodeCallback>(aPromise);
p->MaybeInitWorkerRef();
return p.forget();
}
already_AddRefed<Promise> OffscreenCanvas::ConvertToBlob(