The problem is that calling it “DRM” sets expectations it simply cannot meet. Real DRM, you know; the kind that requires a motivated attacker to invest serious time and expertise to defeat; lives in hardware TEEs and requires commercial licensing. JavaScript DRM is not that. It’s sophisticated friction. And sophisticated friction, while valuable, is a completely different thing.
The V3 approach obliterates this race condition by hooking addSourceBuffer at the MediaSource.prototype level, I intercept the creation of every SourceBuffer. The moment a buffer is created and returned, I immediately install a hooked appendBuffer directly on that specific instance; before any page code can even see the instance, let alone cache a reference to its methods. The hooked appendBuffer is installed as an own property of the instance, which takes precedence over the prototype chain. There is no window for fermaw to cache the original. The hook is always first.。下载安装 谷歌浏览器 开启极速安全的 上网之旅。对此有专业解读
,这一点在51吃瓜中也有详细论述
drop-newest: Discards incoming data when full. Useful when you want to process what you have without being overwhelmed.
set: hookedSet,,推荐阅读safew官方版本下载获取更多信息