@@ -6,11 +6,12 @@ import 'dart:js_util' as jsutil;
66import 'dart:typed_data' ;
77
88import 'package:collection/collection.dart' ;
9- import 'package:dart_webrtc/src/event.dart' ;
109import 'package:js/js_util.dart' ;
1110import 'package:web/web.dart' as web;
1211import 'package:webrtc_interface/webrtc_interface.dart' ;
1312
13+ import 'package:dart_webrtc/src/e2ee.worker/e2ee.logger.dart' ;
14+ import 'package:dart_webrtc/src/event.dart' ;
1415import 'rtc_rtp_receiver_impl.dart' ;
1516import 'rtc_rtp_sender_impl.dart' ;
1617import 'rtc_transform_stream.dart' ;
@@ -191,6 +192,7 @@ class KeyProviderImpl implements KeyProvider {
191192 'sharedKey' : options.sharedKey,
192193 'ratchetSalt' : base64Encode (options.ratchetSalt),
193194 'ratchetWindowSize' : options.ratchetWindowSize,
195+ 'failureTolerance' : options.failureTolerance,
194196 if (options.uncryptedMagicBytes != null )
195197 'uncryptedMagicBytes' : base64Encode (options.uncryptedMagicBytes! ),
196198 'keyRingSize' : options.keyRingSize,
@@ -201,8 +203,11 @@ class KeyProviderImpl implements KeyProvider {
201203 ]);
202204
203205 await events.waitFor <WorkerResponse >(
204- filter: (event) => event.msgId == msgId,
205- duration: Duration (seconds: 5 ));
206+ filter: (event) {
207+ logger.fine ('waiting for init on msg: $msgId ' );
208+ return event.msgId == msgId;
209+ },
210+ duration: Duration (seconds: 15 ));
206211 }
207212
208213 @override
@@ -217,8 +222,11 @@ class KeyProviderImpl implements KeyProvider {
217222 ]);
218223
219224 await events.waitFor <WorkerResponse >(
220- filter: (event) => event.msgId == msgId,
221- duration: Duration (seconds: 5 ));
225+ filter: (event) {
226+ logger.fine ('waiting for dispose on msg: $msgId ' );
227+ return event.msgId == msgId;
228+ },
229+ duration: Duration (seconds: 15 ));
222230
223231 _keys.clear ();
224232 }
@@ -241,8 +249,12 @@ class KeyProviderImpl implements KeyProvider {
241249 ]);
242250
243251 await events.waitFor <WorkerResponse >(
244- filter: (event) => event.msgId == msgId,
245- duration: Duration (seconds: 5 ));
252+ filter: (event) {
253+ logger.fine ('waiting for setKey on msg: $msgId ' );
254+ return event.msgId == msgId;
255+ },
256+ duration: Duration (minutes: 15 ),
257+ );
246258
247259 _keys[participantId] ?? = [];
248260 if (_keys[participantId]! .length <= index) {
@@ -268,8 +280,11 @@ class KeyProviderImpl implements KeyProvider {
268280 ]);
269281
270282 var res = await events.waitFor <WorkerResponse >(
271- filter: (event) => event.msgId == msgId,
272- duration: Duration (seconds: 5 ));
283+ filter: (event) {
284+ logger.fine ('waiting for ratchetKey on msg: $msgId ' );
285+ return event.msgId == msgId;
286+ },
287+ duration: Duration (seconds: 15 ));
273288
274289 return base64Decode (res.data['newKey' ]);
275290 }
@@ -289,8 +304,11 @@ class KeyProviderImpl implements KeyProvider {
289304 ]);
290305
291306 var res = await events.waitFor <WorkerResponse >(
292- filter: (event) => event.msgId == msgId,
293- duration: Duration (seconds: 5 ));
307+ filter: (event) {
308+ logger.fine ('waiting for exportKey on msg: $msgId ' );
309+ return event.msgId == msgId;
310+ },
311+ duration: Duration (seconds: 15 ));
294312
295313 return base64Decode (res.data['exportedKey' ]);
296314 }
@@ -308,8 +326,11 @@ class KeyProviderImpl implements KeyProvider {
308326 ]);
309327
310328 var res = await events.waitFor <WorkerResponse >(
311- filter: (event) => event.msgId == msgId,
312- duration: Duration (seconds: 5 ));
329+ filter: (event) {
330+ logger.fine ('waiting for exportSharedKey on msg: $msgId ' );
331+ return event.msgId == msgId;
332+ },
333+ duration: Duration (seconds: 15 ));
313334
314335 return base64Decode (res.data['exportedKey' ]);
315336 }
@@ -326,8 +347,11 @@ class KeyProviderImpl implements KeyProvider {
326347 })
327348 ]);
328349 var res = await events.waitFor <WorkerResponse >(
329- filter: (event) => event.msgId == msgId,
330- duration: Duration (seconds: 5 ));
350+ filter: (event) {
351+ logger.fine ('waiting for ratchetSharedKey on msg: $msgId ' );
352+ return event.msgId == msgId;
353+ },
354+ duration: Duration (seconds: 15 ));
331355
332356 return base64Decode (res.data['newKey' ]);
333357 }
@@ -346,8 +370,11 @@ class KeyProviderImpl implements KeyProvider {
346370 ]);
347371
348372 await events.waitFor <WorkerResponse >(
349- filter: (event) => event.msgId == msgId,
350- duration: Duration (seconds: 5 ));
373+ filter: (event) {
374+ logger.fine ('waiting for setSharedKey on msg: $msgId ' );
375+ return event.msgId == msgId;
376+ },
377+ duration: Duration (seconds: 15 ));
351378 }
352379
353380 @override
@@ -363,8 +390,11 @@ class KeyProviderImpl implements KeyProvider {
363390 ]);
364391
365392 await events.waitFor <WorkerResponse >(
366- filter: (event) => event.msgId == msgId,
367- duration: Duration (seconds: 5 ));
393+ filter: (event) {
394+ logger.fine ('waiting for setSifTrailer on msg: $msgId ' );
395+ return event.msgId == msgId;
396+ },
397+ duration: Duration (seconds: 15 ));
368398 }
369399}
370400
0 commit comments