File System Access API:浏览器如何安全地跨越沙箱访问本地文件

2019 年,一个名为「Native File System API」的提案出现在 WICG(Web Incubator Community Group)的讨论区。它的目标很直接:让 Web 应用能够像原生应用一样读写用户的本地文件。三年后,Chrome 86 正式发布了这项功能,更名为 File System Access API。而在大洋彼岸,Mozilla 的工程师在 GitHub issue 中留下了五个字的评价:「harmful」(有害)。 ...

11 min · 5087 words
Blog Cover

CSS Grid轨道尺寸分配算法:为什么你的列宽总与你预想的不一样

当你写下 grid-template-columns: 1fr 1fr 1fr 时,你是否真正理解那三个 fr 是如何瓜分容器宽度的?当你发现设置了 minmax(200px, 1fr) 的列在某些情况下却只有100px时,你是否知道浏览器在背后做了什么? ...

9 min · 4194 words

内容安全策略为何成为浏览器安全的双刃剑:从白名单陷阱到严格模式的十年演进

2019年3月,一名安全研究员发现了一个令人不安的事实:在全球排名前100万的网站中,部署了CSP的网站仅有4.6%,而其中超过一半的策略可以被轻易绕过。这项由Google安全团队主导的研究揭示了一个残酷的真相——这个被设计为XSS攻击"终结者"的安全机制,在实践中正变得形同虚设。 ...

15 min · 7256 words

浏览器视频处理为何终于摆脱了WebAssembly的依赖:WebCodecs API的架构解析与性能突围

2021年,Chromium团队在Chrome 94中正式发布了WebCodecs API。这个看似低调的新特性,实际上解决了困扰Web开发者十五年的根本问题:浏览器视频处理要么是"黑盒"(无法控制细节),要么是"低效"(需要WebAssembly搬运编解码器)。 ...

17 min · 8270 words

当WebSocket遇上QUIC:WebTransport如何重塑浏览器实时通信的四十年技术演进

2024年,WebTransport API在Chrome 97、Firefox 114、Edge 97中正式发布。这个基于HTTP/3的浏览器API,承诺为实时通信带来「接近原生」的性能体验。W3C WebTransport工作组正在推进规范向Candidate Recommendation阶段演进,目标在2025年完成标准化。但问题的根源要追溯得更远——四十年来,TCP协议的设计选择一直在制约着浏览器端的实时通信能力。 ...

14 min · 6966 words

字体加载的隐形战争:从 FOIT 到 FOUT 再到零布局位移的技术演进

1997年,Internet Explorer 4成为第一个支持@font-face的浏览器。当其他浏览器还在用系统字体渲染网页时,IE给开发者打开了通往排版自由的大门——但伴随着一个问题:如果字体还没加载完,用户会看到什么? ...

9 min · 4133 words