Hey Everyone,
Apologies that I missed this thread and didn't comment earlier. +hubbe@, who is currently on vacation, but is most familiar with the Cast-related work (and I believe the original author of it).
My understanding is that this work was exploratory, as statistics were indeed showing that during media streaming there were bursts of latency (not loss; packets were ultimately delivered, but got delayed) that we didn't have a running explanation for. This behavior was also notably worse on Windows than on Mac. We speculated that ongoing Wi-Fi scans might lead to this sort of performance impact, and that it was causing issues during streaming.
This private API was intended to enable experimentation to determine if this was the case. Specifically, the data collection around Cast Streaming was built at the extension level, so to do our flavor of A/B testing on whether or not Wi-Fi scans were to blame, we generally have the extension run two sessions (with + without) and then compare the results. I don't know, but hubbe@ might, whether we ultimately ran and concluded anything from the experiment. We de-focused this because we did positively identify the primary cause of Windows queuing behavior, and fixed it. It's not to say that this doesn't contribute - and it is interesting that Michael may have more concrete evidence that we did.
Also, to be clear, the intent was never to provide extensions (even the Cast extension) with low level control; it was to collect data in order to make a permanent decision about whether it was viable to turn off background Wi-Fi scanning during Cast streaming (or more generally, any real-time media streaming e.g. WebRTC). Things were implemented this way only because the fairly robust framework for getting experimental data on streaming performance needed to be extension-driven (vs. Finch driven).
Michael, what we saw seemed to be more on the level of a few 100ms, which wouldn't affect non-realtime media streaming (which typically has a ~20s buffer). If you've got data (and we can use our experiments) to show a real impact, we could consider whether this should be always on during known real-time streaming cases (WebRTC, Cast) without exposing any APIs, or even exposing the fact that this is happening?
Mark.