Hacker News 近日一篇关于 WebKit 的帖子引起了众多讨论和关注,帖子内容主要是提到 WebKit 内核包含了对 YouTube 进行“特别定制”的代码。
代码位于如下目录:https://github.com/WebKit/WebKit/blob/main/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
WebKit 是开源的 Web 浏览器引擎。它被用于苹果的 Safari 浏览器,其分支 Blink 是由 Google 主导开发的开源浏览器渲染引擎。Blink 属于浏览器内核 Chromium 的一部分。
开发者指出,当第一部 iPhone 发布时,YouTube 使用的还是 Flash 技术——而不是 HTML5。对于这种情况,Safari 通过特殊的代码来使用自带播放器播放视频,而不是显示一个空白方块。这段代码就是负责该逻辑。
不过又有人发现,这段代码是在 2014 年编写的,时间远在第一代 iPhone 发布之后,而且今年有人试图删除这段代码,但没有获得开发团队的同意,因为现在一些网站依赖于这种 hack 手段。
在评论区中,还有开发者列举了其他相似的案例,比如 Chromium 包含的"flash_embed_rewrite.cc"代码希望在 Flash 删除之前替换他们在野外嵌入的长尾;Windows 95 包含的特定代码可查看 SimCity 是否正在运行,如果运行,则以不同的方式分配内存。甚至有开发者将乔布斯的毕业典礼演讲放到了 Webkit 的测试用例中。
你还知道哪些其他有趣的 hack 案例,欢迎在评论区分享。
评论删除后,数据将无法恢复
WebKit 包含专门针对 YouTube 的处理代码
Hacker News 近日一篇关于 WebKit 的帖子引起了众多讨论和关注,帖子内容主要是提到 WebKit 内核包含了对 YouTube 进行“特别定制”的代码。
代码位于如下目录:https://github.com/WebKit/WebKit/blob/main/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
开发者指出,当第一部 iPhone 发布时,YouTube 使用的还是 Flash 技术——而不是 HTML5。对于这种情况,Safari 通过特殊的代码来使用自带播放器播放视频,而不是显示一个空白方块。这段代码就是负责该逻辑。
不过又有人发现,这段代码是在 2014 年编写的,时间远在第一代 iPhone 发布之后,而且今年有人试图删除这段代码,但没有获得开发团队的同意,因为现在一些网站依赖于这种 hack 手段。
在评论区中,还有开发者列举了其他相似的案例,比如 Chromium 包含的"flash_embed_rewrite.cc"代码希望在 Flash 删除之前替换他们在野外嵌入的长尾;Windows 95 包含的特定代码可查看 SimCity 是否正在运行,如果运行,则以不同的方式分配内存。甚至有开发者将乔布斯的毕业典礼演讲放到了 Webkit 的测试用例中。
你还知道哪些其他有趣的 hack 案例,欢迎在评论区分享。