前端前線 2026 年 6 月 27 日

2026-06-27 — Safari TP 246 色彩擴充、LaTeX.wasm 瀏覽器排版、SQLite 3.53.3 修補

primary=https://webkit.org/blog/18128/release-notes-for-safari-technology-preview-246/ primary=https://github.com/SwiftLaTeX/SwiftLaTeX primary=https://sqlite.org/releaselog/3_53_3.html






Frontend 技術週報 — 2026-06-27


Safari Technology Preview 246:color-mix() 多色混合、FileSystemHandle 存入 IndexedDB

WebKit Blog · 2026-06-18

Apple 於 2026 年 6 月 18 日發布 Safari Technology Preview 246,適用於 macOS Golden Gate 與 macOS Tahoe,涵蓋從 commit 313555@main315033@main 共約 1,478 筆提交。本版在 CSS 色彩函式、影像值型別、Web Storage 整合等方面帶來多項新特性,同時修復逾三十個排版與無障礙問題。

核心改動

CSS 色彩系統獲得顯著擴充:color-mix() 現在支援三色(含)以上的混合,不再僅限於兩個色值;新增 alpha() 相對色彩函式,可對現有顏色進行相對透明度計算;light-dark() 函式也首度接受 <image> 值,而非僅限於顏色,令深色模式切換的可能性大為提升。

image(<color>) 現在被納入 <image> 值型別,意即凡接受圖片的 CSS 屬性(如 background-image)均可直接填入顏色值,省去獨立圖層的需求。字型渲染方面,font-variant-emoji 屬性與 word-break: auto-phrase 均進入預覽啟用狀態,前者控制 Emoji 是否以文字或圖形形式顯示,後者使日文等語言的自動斷詞更為精準。

CSS 修復清單同樣值得關注。Flex 排版aspect-ratio 內在尺寸計算已對齊規格;text-decoration-thickness 在子元素含非 inline 樣式時的傳播邏輯修正;Container Style Queries 搭配 display: contents 的解析問題已解決;CSS Anchor Positioning 中錨點不當吸附至 viewport-fixed 元素的缺陷一併修正。

規格細節

Web API 層面,FileSystemHandle 物件現可存入 IndexedDB,讓開發者能跨 session 保存對使用者本地檔案的參照,而無需每次重新請求授權。Origin-Agent-Cluster HTTP 回應標頭支援已就位,可讓網站選擇進入以來源為單位的 agent cluster,強化記憶體隔離。CanvasPath.roundRect()radii 引數改為選填,和規格一致。

HTML 方面,Popover close watcher 整合已實作,SVG <a> 元素現可作為 Origin.from() 的引數。JavaScript 修正了 TypedArray 建構子在 buffer sequence 邊際案例的行為,以及 WebAssembly.Memory / WebAssembly.Module 的複製與傳輸語意,均以對齊規格為目標。

影響範圍

以下功能進入可實際測試的預覽狀態:

  • color-mix() 多色混合語法(CSS Color Level 5)
  • alpha() 相對色彩函式
  • light-dark() 接受 <image>
  • font-variant-emoji 屬性
  • word-break: auto-phrase
  • FileSystemHandle 可存入 IndexedDB
  • SVG <use> 不再需要 fragment identifier

IntersectionObserver 亦修正了兩項已知問題:已分離文件(detached document)中的觀測目標不再觸發通知,且 boundingClientRect 現在能正確計入 CSS zoom 縮放。Web Inspector 在 Layout 與 Rendering 事件面板中新增獨立欄位顯示節點關聯,有助於診斷複雜的渲染時序問題。

原始來源:WebKit Blog — Release Notes for Safari Technology Preview 246


LaTeX.wasm:將完整 LaTeX 引擎編譯進瀏覽器

SwiftLaTeX / Hacker News · 2026-06-23

SwiftLaTeX 專案以 LaTeX.wasm 為名,將 pdfTeX 與 XeTeX 兩大 TeX 引擎透過 Emscripten 編譯為 WebAssembly 二進位,使瀏覽器能在本地完成完整的 LaTeX 排版,無需後端伺服器。本方案以 GNU AGPL-3.0 授權開源,並提供可嵌入頁面的 JavaScript 函式庫介面。

背景

傳統「線上 LaTeX 編輯器」(如 Overleaf)仰賴雲端伺服器執行 TeX 排版引擎,網路延遲與伺服器資源成為瓶頸。WebAssembly 的成熟讓直接在瀏覽器端執行完整 C/C++ 程式成為可能;SwiftLaTeX 的 C 與 C++ 程式碼比例分別為 58% 和 40.5%,絕大部分為 TeX 引擎本體的移植成果。

WASM 路徑讓排版計算完全在使用者裝置上進行,資料不離開本地,對處理敏感文件的場景(如法律或學術草稿)具有隱私優勢。LaTeX 套件檔案(.sty、字型等)可從 CTAN 或自訂鏡像伺服器按需載入,僅在首次使用時下載,之後由瀏覽器快取。

規格細節

SwiftLaTeX 提供兩個預編譯的 WASM 二進位:pdftex.wasmxetex.wasm(配合 dvipdfm.wasm)。

引擎WASM 檔案適用場景Unicode / OpenType 支援
PdfTeXpdftex.wasm英文文件、較小體積有限
XeTeXxetex.wasm + dvipdfm.wasm多語言、OpenType 字型完整

官方推薦 XeTeX 作為首選,因其內建 UTF-8 與 OpenType 字型支援,產出 PDF 與本地 TexLive / MikTeX 環境結果一致。嵌入使用只需透過 <script> 標籤載入函式庫,呼叫 API 傳入 .tex 原始碼即可取得 PDF blob。

// 最小化使用範例
import { PdfTeXEngine } from './PdfTeXEngine.js';

const engine = new PdfTeXEngine();
await engine.loadEngine();
engine.writeMemFSFile('main.tex', '\\documentclass{article}\\begin{document}Hello\\end{document}');
engine.setEngineMainFile('main.tex');
const result = await engine.compileLaTeX();
// result.pdf 為 Uint8Array

影響範圍

對前端開發者而言,此方案讓純靜態部署的 LaTeX 渲染成為可能,適合文件產生器、學術論文預覽、或教學平台等場景,不再需要維護獨立的排版伺服器。WYSIWYG 模式(直接編輯 PDF 元件)目前仍標記為實驗性。

需注意的是,兩個 WASM 引擎本體體積不小,首次載入的網路開銷須納入使用者體驗考量;LaTeX 套件的按需下載策略可緩解部分問題,但仍不適合對載入時間極度敏感的場景。LuaTeX 引擎支援目前尚未實作,是常見的社群回饋需求。

原始來源:GitHub — SwiftLaTeX/SwiftLaTeX | Hacker News 討論


SQLite 3.53.3 修補釋出:AI 回報缺陷集中修復

SQLite Project · 2026-06-26

SQLite 團隊於 2026 年 6 月 26 日釋出 3.53.3,屬 3.53 系列第三個維護版本,主要修復自 3.53.03.53.13.53.2 以來由 AI 工具回報的問題。此次無新特性,純粹針對已知缺陷進行修補,並不影響向下相容性。

背景

3.53.0 為一個功能豐富的大版本,帶來 ALTER TABLE 新增與移除 NOT NULLCHECK 約束、新 JSON 函式 json_array_insert()、浮點數預設精度從 15 位提升至 17 位有效數字(可透過 SQLITE_DBCONFIG_FP_DIGITS 調整),以及 JavaScript/WASM 的 opfs-wl VFS(Web Locks 實作)等特性。3.53.3 的任務是穩固這些新功能的邊際行為。

官方釋出說明特別指出,本次修復的問題「大多來自 AI」,顯示 LLM 輔助的模糊測試(fuzzing)已成為 SQLite 品質流程的一部分。詳細提交記錄可透過 check-in timeline(version-3.53.0version-3.53.3)追蹤個別缺陷的來龍去脈。

核心改動

本次修補版本的 Source ID 為:

2026-06-26 20:14:12 d4c0e51e4aeb96955b99185ab9cde75c339e2c29c3f3f12428d364a10d782c62

sqlite3.c 合併檔的 SHA3-256 雜湊值為 28e484abdaa43630e34040ef6ed92be973a1ad54107803d8af5145b889c23ed7,可用於驗證下載完整性。具體修復項目未在釋出說明中逐條列出,需查閱 check-in timeline 才能得知每筆提交修正的確切行為。

3.53 系列的另一項值得前端開發者注意的特性是 opfs-wl VFS:這是針對瀏覽器 Origin Private File System(OPFS)的 Web Locks 版本實作,讓多個 Web Worker 或 SharedWorker 能安全地並行存取同一個 SQLite 資料庫,解決先前 opfs VFS 在多執行緒場景下的鎖定競爭問題。

影響範圍

使用 3.53.x 的專案建議直接升級至 3.53.3,無需做任何 API 或 schema 修改:

  • 伺服器端應用(Node.js、Python、Rust 等綁定):更新 SQLite 靜態庫或動態庫即可
  • 瀏覽器端(sql.jswa-sqlite、官方 WASM 建置):等待各下游專案釋出對應的 WASM 重建版本
  • 嵌入式裝置:可從官方下載頁取得新的 amalgamation 原始碼重新編譯

浮點數精度變更(17 位有效數字,自 3.53.0 起)對儲存或序列化浮點數的應用可能造成輸出格式差異;若需維持與舊版行為一致,可在連線初始化時呼叫 sqlite3_db_config(db, SQLITE_DBCONFIG_FP_DIGITS, 15, 0) 回退至 15 位。

版本發布日期性質
3.53.02026-03(估)功能版本
3.53.1維護修補
3.53.2維護修補
3.53.32026-06-26維護修補(AI 回報缺陷)

原始來源:SQLite Release Log — 3.53.3 | SQLite News



End of article
0
Would love your thoughts, please comment.x
()
x