observeLinks method
Implementation
@override
Stream<DeferredLink> observeLinks() {
// Multi-stream so listeners attach to [_controller] synchronously on listen
// (async* + yield* can miss events emitted in the same turn).
return Stream<DeferredLink>.multi((listener) {
if (readyForNavigation &&
pendingDeferred != null &&
mode != LinkProcessingMode.webOnly) {
listener.add(pendingDeferred!);
}
final sub = _controller.stream.listen(
listener.add,
onError: listener.addError,
onDone: listener.close,
);
listener.onCancel = () {
sub.cancel();
};
});
}