Safari Technology Preview 243:ES 模組載入器重寫、shadowrootslotassignment 屬性、90+ 修復
WebKit Blog · 2026-05-07
Apple 於 2026 年 5 月 7 日發布 Safari Technology Preview 243,支援 macOS Tahoe 與 macOS Sequoia。本版本包含 ES 模組載入器的完整重寫、新的 HTML 宣告式 Shadow DOM 屬性 shadowrootslotassignment、CSS contain: style 對計數器的支援,以及 90 個以上的 bug 修復。
ES 模組載入器重寫
本版核心變更為「為修正 top-level await 多個正確性問題而完整重寫 ES 模組載入器」。top-level await 允許在模組最頂層使用 await 表達式,但其初始化順序與 Promise 處理語意在各引擎間歷來有細微差異。此次重寫對齊 ECMAScript 規格,修正了模組樹(module graph)中多個依賴初始化的邊界案例——尤其是多個模組相互依賴且包含 top-level await 時,執行順序可能與規格預期不符的情況。
新 HTML 特性:shadowrootslotassignment
宣告式 Shadow DOM 的 <template> 標籤現在支援 shadowrootslotassignment 屬性,允許開發者在不使用 JavaScript 的情況下指定 slot 分配模式。
shadowrootslotassignment="named":使用者空間 DOM 的子元素按slot="name"屬性分配到對應具名 slot(預設行為)shadowrootslotassignment="manual":slot 分配由 JavaScript 的slot.assign()手動控制,不依賴slot屬性
Manual slot assignment 對需要精細控制 slot 映射的組件框架(如設計系統)特別有用,避免了因 slot 屬性衝突導致的意外分配。
CSS contain: style 與其他新特性
新增 contain: style 對 CSS 引用計數器(quote counters)的支援:style containment 現在正確阻止計數器的作用域洩漏穿越 containment 邊界,讓元件化架構中的計數器行為可預測。此外,WGSL 著色器現在支援 clip_distances 內建值(WebGPU),用戶自訂裁切平面(user-defined clip planes)的 GPU 支援更完整。CSS text-autospace 新增 insert 關鍵字,控制 CJK 與拉丁字元間距插入行為。
90+ 修復涵蓋 flex 與 grid 版面計算、RegExp Unicode 模式、Intl API、VoiceOver 無障礙存取,以及 WebVTT 字幕解析。
原始來源:WebKit Blog
WAICT 提案:瀏覽器以密碼學 append-only log 驗證 JavaScript 完整性
Mozilla Hacks · 2026-05-05
Mozilla 發表 WAICT(Web Application Integrity, Consistency and Transparency) 提案,針對端對端加密 Web 應用(如 Signal、WhatsApp Web)的根本安全缺陷:即使應用程式實作了 E2EE,惡意或被攻陷的伺服器仍可對特定用戶提供經篡改的 JavaScript,在用戶端解密前攔截資料。早期原型已在 Firefox Nightly 中可用,規格開發者包括 Cloudflare、自由新聞基金會與 Meta。
問題根源
傳統 Web 安全模型依賴對伺服器的信任:用戶假定伺服器發送的程式碼是開發者所意圖的版本。此信任假設對敏感應用程式(通訊、金融、醫療)尤為脆弱——攻擊者無需破解加密,只需在 JavaScript 載入前注入鍵盤記錄器或截取明文。TLS 確保傳輸安全,但無法保證內容的授權性。
WAICT 的技術機制
WAICT 在數位簽章之外增加「公開承諾(public commitment)」層:
- 完整性(Integrity):瀏覽器執行的程式碼必須符合開發者在 manifest 中承諾的版本
- 透明度(Transparency):manifest 公開記錄在 append-only log,任何人可獨立稽核
工作流程:開發者發布時將應用程式版本(含所有 JavaScript bundle 的雜湊)提交至可稽核的 log;用戶端瀏覽器驗證下載的程式碼是否與 log 中的記錄吻合;對不在 log 中的程式碼,瀏覽器拒絕執行。Append-only 屬性確保即使開發者本人也無法在不留公開記錄的情況下撤回或修改版本。
影響範圍
WAICT 直接對應的威脅模型是:被攻陷的 CDN 對特定用戶提供惡意 JavaScript、針對記者或活動人士的精準投毒攻擊、以及內部惡意人士推送未授權版本。此方案的關鍵代價是發布流程變更:每次部署都必須提交 log 條目,Canary 版本和 A/B 測試需要明確記錄。Firefox Nightly 的原型實作正在蒐集開發者回饋,規格尚未定稿。
原始來源:Mozilla Hacks