- From: Jan-Ivar Bruaroey via GitHub <sysbot+gh@w3.org>
- Date: Mon, 11 Mar 2024 22:56:18 +0000
- To: public-webrtc-logs@w3.org
> That is how it is done in Safari. We basically simulate a network failure.
When I test in Safari with https://jan-ivar.github.io/dummy/pc_bfcache.html which has 3 buttons `Start`, `sLD` and `sRD`, which together complete a local-loop connection, I observe the following:
1. pressing `Start`, `sLD`, `sRD`, `←`, `→` ... seems to recover (showing 2 videos) after ~2-5 seconds
2. pressing `Start`, `sLD`, `←`, `→`, `sRD` ... seems to recover (showing 2 videos) after ~14 seconds
This is cool! It recovers thanks to this code:
```js
pc1.oniceconnectionstatechange = async () => {
switch (pc1.iceConnectionState) {
case "disconnected":
case "failed":
await pc1.restartIce();
await sLD.onclick();
await sRD.onclick();
break;
}
};
```
Of course this being a local-loop it doesn't address whether signaling over e.g. WebSocket would recover or https://github.com/w3c/webrtc-extensions/issues/200#issuecomment-1961861356
> This is something websites should be prepared for, at least in theory.
In 1 yes, but in 2 which is during initial signaling (admittedly a narrow gap), `"disconnected"` never fires because `"connected"` never fired, and `"failed"` only fires if sRD comes in, which seems unclear in practice.
Webpages can of course listen to [pageshow](https://html.spec.whatwg.org/multipage/indices.html#event-pageshow) to detect this situation, or detect stalled signaling, but this seems a higher bar than quoted.
Is this fine?
--
GitHub Notification of comment by jan-ivar
Please view or discuss this issue at https://github.com/w3c/webrtc-extensions/issues/200#issuecomment-1989602486 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 11 March 2024 22:56:19 UTC