Some parts of our media stack make assumptions about whether data is static (meaning that repeated reads return the same data). Specifically, MSE is non-static and other sources are usually treated as static.
However, some non-MSE sources are not actually static. For example, file:// URLs and FileSystem objects accessed via blob URLs can be changed at any time. An example use case may be a WebRTC-based torrent client that saves to a FileSystem object and plays back partial content via a blob URL while blocks are still being downloaded. In this case we may incorrectly cache empty blocks that are actually filled in by the time they are played.
We should determine the full scope of the problem and decide if any fix is necessary. It is probable that no fix is necessary, because without the MSE APIs there is no way for a player to indicate missing ranges and so synchronization may never be reliable.
Comment 1 by yini...@chromium.org
, May 1 2017