connect method
Future<WipConnection?>
connect(
{ - bool verbose = false,
})
Implementation
Future<WipConnection?> connect({bool verbose = false}) async {
_wip = await wipTab.connect();
final wipConnection = _wip!;
await wipConnection.log.enable();
wipConnection.log.onEntryAdded.listen((LogEntry entry) {
if (_lostConnectionTime == null ||
entry.timestamp > _lostConnectionTime!) {
_entryAddedController.add(entry);
}
});
await wipConnection.runtime.enable();
wipConnection.runtime.onConsoleAPICalled.listen((ConsoleAPIEvent event) {
if (_lostConnectionTime == null ||
event.timestamp > _lostConnectionTime!) {
_consoleAPICalledController.add(event);
}
});
unawaited(
_exceptionThrownController
.addStream(wipConnection.runtime.onExceptionThrown),
);
unawaited(wipConnection.page.enable());
wipConnection.onClose.listen((_) {
_wip = null;
_disconnectStream.add(null);
_lostConnectionTime = DateTime.now().millisecondsSinceEpoch;
});
if (verbose) {
onLogEntryAdded.listen((entry) {
print('chrome • log:${entry.source} • ${entry.text} ${entry.url}');
});
onConsoleAPICalled.listen((entry) {
print(
'chrome • console:${entry.type} • '
'${entry.args.map((a) => a.value).join(', ')}',
);
});
onExceptionThrown.listen((ex) {
throw 'JavaScript exception occurred: ${ex.method}\n\n'
'${ex.params}\n\n'
'${ex.exceptionDetails.text}\n\n'
'${ex.exceptionDetails.exception}\n\n'
'${ex.exceptionDetails.stackTrace}';
});
}
return _wip;
}