@@ -24,6 +24,7 @@ namespace mozilla {
24
24
self->mManagerThread , callsite, \
25
25
[self, promiseId, callsite]( \
26
26
PMFCDMChild::method##Promise::ResolveOrRejectValue&& result) { \
27
+ MutexAutoLock lock (self->mMutex ); \
27
28
auto iter = self->mPendingGenericPromises .find (promiseId); \
28
29
if (iter == self->mPendingGenericPromises .end ()) { \
29
30
return ; \
@@ -135,15 +136,18 @@ void MFCDMChild::Shutdown() {
135
136
mRemoteRequest .DisconnectIfExists ();
136
137
mInitRequest .DisconnectIfExists ();
137
138
138
- for (auto & promise : mPendingSessionPromises ) {
139
- promise.second .RejectIfExists (NS_ERROR_ABORT, __func__);
140
- }
141
- mPendingSessionPromises .clear ();
139
+ {
140
+ MutexAutoLock lock (mMutex );
141
+ for (auto & promise : mPendingSessionPromises ) {
142
+ promise.second .RejectIfExists (NS_ERROR_ABORT, __func__);
143
+ }
144
+ mPendingSessionPromises .clear ();
142
145
143
- for (auto & promise : mPendingGenericPromises ) {
144
- promise.second .RejectIfExists (NS_ERROR_ABORT, __func__);
146
+ for (auto & promise : mPendingGenericPromises ) {
147
+ promise.second .RejectIfExists (NS_ERROR_ABORT, __func__);
148
+ }
149
+ mPendingGenericPromises .clear ();
145
150
}
146
- mPendingGenericPromises .clear ();
147
151
148
152
mRemotePromiseHolder .RejectIfExists (NS_ERROR_ABORT, __func__);
149
153
mCapabilitiesPromiseHolder .RejectIfExists (NS_ERROR_ABORT, __func__);
@@ -274,6 +278,7 @@ RefPtr<MFCDMChild::SessionPromise> MFCDMChild::CreateSessionAndGenerateRequest(
274
278
__func__);
275
279
}
276
280
281
+ MutexAutoLock lock (mMutex );
277
282
MOZ_ASSERT (mPendingSessionPromises .find (aPromiseId) ==
278
283
mPendingSessionPromises .end ());
279
284
mPendingSessionPromises .emplace (aPromiseId,
@@ -287,6 +292,7 @@ RefPtr<MFCDMChild::SessionPromise> MFCDMChild::CreateSessionAndGenerateRequest(
287
292
SendCreateSessionAndGenerateRequest (params)->Then (
288
293
mManagerThread , __func__,
289
294
[self, aPromiseId, this ](const MFCDMSessionResult& result) {
295
+ MutexAutoLock lock (mMutex );
290
296
auto iter = mPendingSessionPromises .find (aPromiseId);
291
297
if (iter == mPendingSessionPromises .end ()) {
292
298
return ;
@@ -303,6 +309,7 @@ RefPtr<MFCDMChild::SessionPromise> MFCDMChild::CreateSessionAndGenerateRequest(
303
309
},
304
310
[self, aPromiseId,
305
311
this ](const mozilla::ipc::ResponseRejectReason& aReason) {
312
+ MutexAutoLock lock (mMutex );
306
313
auto iter = mPendingSessionPromises .find (aPromiseId);
307
314
if (iter == mPendingSessionPromises .end ()) {
308
315
return ;
@@ -325,6 +332,7 @@ RefPtr<GenericPromise> MFCDMChild::LoadSession(
325
332
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
326
333
}
327
334
335
+ MutexAutoLock lock (mMutex );
328
336
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
329
337
mPendingGenericPromises .end ());
330
338
mPendingGenericPromises .emplace (aPromiseId,
@@ -343,6 +351,7 @@ RefPtr<GenericPromise> MFCDMChild::UpdateSession(uint32_t aPromiseId,
343
351
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
344
352
}
345
353
354
+ MutexAutoLock lock (mMutex );
346
355
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
347
356
mPendingGenericPromises .end ());
348
357
mPendingGenericPromises .emplace (aPromiseId,
@@ -361,6 +370,7 @@ RefPtr<GenericPromise> MFCDMChild::CloseSession(uint32_t aPromiseId,
361
370
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
362
371
}
363
372
373
+ MutexAutoLock lock (mMutex );
364
374
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
365
375
mPendingGenericPromises .end ());
366
376
mPendingGenericPromises .emplace (aPromiseId,
@@ -378,6 +388,7 @@ RefPtr<GenericPromise> MFCDMChild::RemoveSession(uint32_t aPromiseId,
378
388
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
379
389
}
380
390
391
+ MutexAutoLock lock (mMutex );
381
392
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
382
393
mPendingGenericPromises .end ());
383
394
mPendingGenericPromises .emplace (aPromiseId,
@@ -395,6 +406,7 @@ RefPtr<GenericPromise> MFCDMChild::SetServerCertificate(
395
406
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
396
407
}
397
408
409
+ MutexAutoLock lock (mMutex );
398
410
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
399
411
mPendingGenericPromises .end ());
400
412
mPendingGenericPromises .emplace (aPromiseId,
@@ -412,6 +424,7 @@ RefPtr<GenericPromise> MFCDMChild::GetStatusForPolicy(
412
424
return GenericPromise::CreateAndReject (NS_ERROR_ABORT, __func__);
413
425
}
414
426
427
+ MutexAutoLock lock (mMutex );
415
428
MOZ_ASSERT (mPendingGenericPromises .find (aPromiseId) ==
416
429
mPendingGenericPromises .end ());
417
430
mPendingGenericPromises .emplace (aPromiseId,
0 commit comments