Skip to content

Commit ea029c2

Browse files
authored
Merge pull request #39 from td-famedly/td/logs
missing fault tolerance, better worker reports and a increased timeout for worker tasks
2 parents ab0438d + 6571ab3 commit ea029c2

15 files changed

+64
-23
lines changed

lib/src/e2ee.worker/e2ee.cryptor.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import 'dart:js_util' as jsutil;
55
import 'dart:math';
66
import 'dart:typed_data';
77

8-
import 'package:dart_webrtc/src/rtc_transform_stream.dart';
98
import 'package:web/web.dart' as web;
109

10+
import 'package:dart_webrtc/src/rtc_transform_stream.dart';
1111
import 'crypto.dart' as crypto;
1212
import 'e2ee.keyhandler.dart';
1313
import 'e2ee.logger.dart';

lib/src/e2ee.worker/e2ee.worker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import 'dart:js_util' as js_util;
44
import 'dart:typed_data';
55

66
import 'package:collection/collection.dart';
7-
import 'package:dart_webrtc/src/rtc_transform_stream.dart';
87
import 'package:logging/logging.dart';
98
import 'package:web/web.dart' as web;
109

10+
import 'package:dart_webrtc/src/rtc_transform_stream.dart';
1111
import 'e2ee.cryptor.dart';
1212
import 'e2ee.keyhandler.dart';
1313
import 'e2ee.logger.dart';

lib/src/factory_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dart:async';
22
import 'dart:convert';
3+
34
import 'package:js/js.dart';
45
import 'package:js/js_util.dart';
56
import 'package:web/web.dart' as web;

lib/src/frame_cryptor_impl.dart

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ import 'dart:js_util' as jsutil;
66
import 'dart:typed_data';
77

88
import 'package:collection/collection.dart';
9-
import 'package:dart_webrtc/src/event.dart';
109
import 'package:js/js_util.dart';
1110
import 'package:web/web.dart' as web;
1211
import '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';
1415
import 'rtc_rtp_receiver_impl.dart';
1516
import 'rtc_rtp_sender_impl.dart';
1617
import '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

lib/src/media_recorder_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'dart:async';
22
import 'dart:js' as js;
33
import 'dart:js_interop';
4+
45
import 'package:web/web.dart' as web;
56
import 'package:webrtc_interface/webrtc_interface.dart';
67

lib/src/media_stream_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dart:async';
22
import 'dart:js_interop';
3+
34
import 'package:web/web.dart' as web;
45
import 'package:webrtc_interface/webrtc_interface.dart';
56

lib/src/mediadevices_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:async';
22
import 'dart:js' as js;
33
import 'dart:js_interop';
44
import 'dart:js_util' as jsutil;
5+
56
import 'package:web/web.dart' as web;
67
import 'package:webrtc_interface/webrtc_interface.dart';
78

lib/src/rtc_data_channel_impl.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dart:async';
22
import 'dart:js_interop';
3+
34
import 'package:js/js_util.dart' as jsutil;
45
import 'package:web/web.dart' as web;
56
import 'package:webrtc_interface/webrtc_interface.dart';

lib/src/rtc_peerconnection_impl.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import 'dart:js_interop';
44
import 'dart:js_interop_unsafe';
55
import 'dart:js_util' as jsutil;
66

7-
import 'package:dart_webrtc/dart_webrtc.dart';
87
import 'package:js/js_util.dart';
98
import 'package:platform_detect/platform_detect.dart';
109
import 'package:web/web.dart' as web;
1110

11+
import 'package:dart_webrtc/dart_webrtc.dart';
1212
import 'media_stream_track_impl.dart';
1313
import 'rtc_data_channel_impl.dart';
1414
import 'rtc_dtmf_sender_impl.dart';

lib/src/rtc_rtp_capailities_imp.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:js_util' as jsutil;
2+
23
import 'package:webrtc_interface/webrtc_interface.dart';
34

45
class RTCRtpCapabilitiesWeb {

0 commit comments

Comments
 (0)