前端前線 2026 年 6 月 20 日

2026-06-20 — Safari TP246 CSS 色彩擴充、Chrome 150 IndexedDB 換 SQLite、Firefox 151 Web Serial 正式上線

primary=https://webkit.org/blog/18128/release-notes-for-safari-technology-preview-246/ primary=https://github.com/WebKit/WebKit/compare/69d300842d37d62d8e54a0e11c66dfcafec72e41...0bc15c78e5116da8de86f87c6deb9d19f0eba6ec primary=https://developer.chrome.com/blog/chrome-150-beta primary=https://hacks.mozilla.org/2026/05/web-serial-support-in-firefox/ primary=https://wicg.github.io/serial/#serial-interface primary=https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API

Safari Technology Preview 246:CSS 色彩擴充、FileSystemHandle 入 IndexedDB,以及 SVG 修正

WebKit Blog · 2026-06-17

Apple 於 2026 年 6 月 17 日發布 Safari Technology Preview 246,涵蓋 macOS Golden Gate 與 macOS Tahoe,對應 WebKit 提交區間 313555@main…315033@main。本次釋出集中在 CSS 色彩函式擴充、Web API 新增,以及長期存在的 SVG 與 Canvas 行為修正。

核心改動:CSS 色彩與字型

light-dark() 函式新增對 <image> 值的支援,開發者可依作業系統的亮色或暗色模式自動切換圖片來源,不再侷限於純色值。同一脈絡下,image(<color>) 語法也在 <image> 值型別中正式啟用,允許以任意色彩值產生實心色塊圖像,作為 CSS 背景或 mask 的來源。

color-mix() 獲得一項語義擴充:原本只支援兩個顏色引數,本次預覽版開始允許混合兩個以上的色彩,對應 CSS Color Level 5 草案。此外,alpha() 相對色彩函式也同步落地,可在不拆解原色的情況下直接調整透明度,例如 alpha(var(--brand) 50%)

字型方面,font-variant-emoji 屬性現已啟用,可控制 emoji 以文字或圖形形式呈現;word-break: auto-phrase 亦同步開放,供日文等語言依語意邊界斷行,而非單純依字元位置。

規格細節:Web API 新增

本次預覽版新增 FileSystemHandle 物件可儲存至 IndexedDB,讓 Web 應用程式得以持久化使用者授權的檔案系統控制代碼,下次開啟頁面時無需重新請求授權。此功能對離線優先應用(如文字編輯器、程式碼工具)具有明顯實用價值。

HTTP 回應標頭 Origin-Agent-Cluster 獲得支援,允許瀏覽器將特定來源隔離至獨立的代理程式叢集,強化記憶體隔離並降低側通道攻擊面。SVG <a> 元素現在也可作為 Origin.from() 的引數,完善跨 SVG 場景的來源解析邏輯。

Popover 關閉監聽器整合(Popover Close Watcher integration)讓 popover 的關閉行為可攔截並與瀏覽器的導覽歷史機制協作,改善單頁應用中返回按鈕與 popover 生命週期的互動。

影響範圍

SVG 修正部分,<use> 元素不再強制要求 fragment identifier,可直接引用完整 SVG 文件;vector-effect 屬性與 <animateMotion>rotate 屬性均獲修正。Canvas 方面,CanvasPath.roundRect() 的 radii 引數改為選擇性,使呼叫更為簡潔。

CSS 修正涵蓋 flex 布局中 aspect-ratio 的錯誤計算text-decoration-thickness 在繼承鏈中的異常傳播,以及 CSS Container Style Queries 在 display: contents 元素上的行為。CSS Anchor Positioning 的非預期 viewport 錨點問題也在本次更新中修正,對使用錨定浮層的 UI 元件有直接影響。

  • color-mix() 支援兩個以上顏色引數(CSS Color Level 5)
  • light-dark() 接受 <image> 值型別
  • alpha() 相對色彩函式
  • font-variant-emoji 屬性啟用
  • word-break: auto-phrase 啟用
  • FileSystemHandle 可存入 IndexedDB
  • Origin-Agent-Cluster HTTP 標頭支援
  • Popover close watcher 整合

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


Chrome 150 Beta:IndexedDB 改用 SQLite 後端、WebGPU Immediates,以及全面擴充的 CSS 工具

Chrome Developer Blog · 2026-06-03

Google 於 2026 年 6 月 3 日發布 Chrome 150 Beta,帶來 IndexedDB 儲存層架構替換、WebGPU 著色器資料傳遞機制、以及超過十五項 CSS 新特性。本次 Beta 版同時推出 Email Verification Protocol(EVP)Origin Trial,為帳號驗證流程提供替代方案。

核心改動:IndexedDB SQLite 後端

IndexedDB 的底層儲存引擎從 LevelDB 與平面檔案的混合架構改寫為 SQLite,適用於新建立的資料存放區(data store)。現有資料存放區不受影響,瀏覽器將在使用者的 Profile 生命週期中逐步遷移。SQLite 後端提供更一致的事務語意,並透過單一檔案簡化瀏覽器內部的資源管理。

同屬 Web API 領域,data: URL 的 Worker 現在獲得不透明來源(opaque origin),符合 HTML 規範要求,避免這類 Worker 共享主頁面的來源上下文;MediaStreamTrackProcessor 新增 discardedFramestotalFrames 屬性,使媒體管線的幀率監控更為精確。

規格細節:WebGPU Immediates 與 CSS 擴充

WebGPU 新增 Immediate 位址空間,透過 setImmediateData() 方法在渲染通道(render pass)、計算通道(compute pass)及渲染束(render bundle)編碼器上直接傳遞少量頻繁更新的資料至著色器,無需建立 GPU buffer 物件或 bind group。此機制對每次繪製呼叫都需要更新參數(如物件索引、材質索引、變換矩陣)的場景具有明顯效能改善。

CSS 方面的新增項目量大而涵蓋面廣。text-fit 屬性可自動縮放文字節點的字型大小以完全填滿容器寬度,適用於標題排版等需動態適配的場景。zoom 屬性從此支援 CSS 過渡(transition)與動畫,補足了長期以來的規格缺口。flex-wrap: balance 仿照 text-wrap: balance 的概念,在多行 flex 容器中均勻分配各行內容量。

/* CSS URL request modifiers - Chrome 150 新增 */
background-image: url("image.png" cross-origin() integrity("sha256-abc123"));

/* polygon() 圓角參數 */
clip-path: polygon(round 8px, 0 0, 100% 0, 100% 100%, 0 100%);

/* animatable zoom */
.card {
  zoom: 1;
  transition: zoom 0.3s ease;
}
.card:hover {
  zoom: 1.05;
}

CSS URL request modifiers 引入 cross-origin()integrity()referrer-policy() 等修飾子,允許在 url() 函式內直接宣告資源的跨域模式與完整性雜湊值,無需依賴 JavaScript fetch 層。

影響範圍

媒體元素偽類別 :playing:paused:seeking:buffering:stalled:muted:volume-locked 全部落地,讓開發者得以純 CSS 響應媒體播放狀態,無需 JavaScript 事件監聽。focusgroup 屬性宣告式地為複合元件提供方向鍵導覽,簡化無障礙鍵盤互動的實作。

程式化捲動(scrollTo()scrollBy())現在回傳 Promise,可等待捲動完成或被中斷,消弭了過去必須監聽 scrollend 事件才能得知捲動結束的不確定性。popover=hint 的堆疊模型簡化後,hint popover 不再關閉無關的 auto popover,減少意外的 UI 交互影響。

  • IndexedDB SQLite 後端(新資料存放區)
  • WebGPU setImmediateData() Immediate 位址空間
  • text-fit 屬性
  • CSS zoom 動畫支援
  • flex-wrap: balance
  • CSS URL request modifiers(cross-origin()integrity()referrer-policy()
  • 媒體元素偽類別(:playing:paused:seeking 等)
  • focusgroup 屬性
  • 程式化捲動 Promise
  • data: URL Worker 取得不透明來源
  • Email Verification Protocol(EVP)Origin Trial

原始來源:Chrome Developer Blog — Chrome 150 Beta


Firefox 151 支援 Web Serial API:瀏覽器直連微控制器的技術細節

Mozilla Hacks · 2026-05-21

Mozilla 於 Firefox 151 桌面版正式啟用 Web Serial API,允許網頁透過 JavaScript 直接讀寫序列埠裝置,無需安裝原生應用程式。此 API 由 WICG 孵化,Chrome 自 89 版起已支援,Firefox 的加入使其在主要桌面瀏覽器中的覆蓋率大幅提升。

核心改動:API 結構與連線流程

Web Serial API 的進入點為 navigator.serial(或 Web Worker 中的 WorkerNavigator.serial),提供兩個主要方法:

  • Serial.requestPort(options?):在使用者手勢觸發下顯示裝置選擇對話框,可透過 usbVendorId/usbProductId 或藍牙服務 UUID 篩選裝置
  • Serial.getPorts():取得站台已獲授權且仍連接的連接埠列表,不需使用者互動

取得 SerialPort 物件後,需呼叫 SerialPort.open(options) 建立連線。SerialOptions 字典的必填欄位為 baudRate,其餘為選填:

const port = await navigator.serial.requestPort();
await port.open({
  baudRate: 115200,   // 必填
  dataBits: 8,        // 預設 8,可為 7
  stopBits: 1,        // 預設 1,可為 2
  parity: "none",     // "none" | "even" | "odd"
  bufferSize: 255,    // 預設 255 bytes
  flowControl: "none" // "none" | "hardware"(RTS/CTS)
});

連線開啟後,資料傳輸透過 Streams API 進行:port.readable 回傳 ReadableStreamport.writable 回傳 WritableStream,允許以背壓(backpressure)感知的串流管線處理大量資料。硬體訊號控制(DTR、RTS、break、DCD、CTS、RI、DSR)則透過 setSignals()getSignals() 管理,滿足嵌入式韌體的握手需求。

受影響版本

Firefox 151 桌面版(Windows、macOS、Linux)為首個支援版本。Firefox for Android 不包含在此次釋出中,行動平台的支援計劃尚未公布。企業部署下,Web Serial 預設停用,需透過 DefaultSerialGuardSetting 政策設定開放。

瀏覽器版本平台
Chrome89+桌面
Edge89+桌面
Firefox151+桌面
Safari不支援

修補與緩解:安全模型

安全脈絡(Secure Context)為必要條件,Web Serial API 僅在 HTTPS 或 localhost 下可用。每次連線均需明確的使用者手勢觸發 requestPort(),瀏覽器不暴露裝置枚舉能力,防止以裝置特徵進行指紋追蹤。站台可透過 HTTP 回應標頭 Permissions-Policy: serial=() 明確禁用此 API。

規範層面,Web Serial 目前仍在 WICG 孵化階段,Mozilla 已向 WHATWG 提交 標準化提案 PR #264,嘗試建立新的工作串流(workstream)進行正式標準化。中央管轄的藍牙服務 UUID 與 USB 廠商/產品 ID 黑名單機制亦列入規範,供瀏覽器廠商阻止特定高風險裝置的存取。

此 API 支援的硬體類型涵蓋 USB CDC-ACM 裝置、藍牙 SPP 模擬序列埠,以及系統直連序列埠,常見範例包括 ESP32、Raspberry Pi Pico、3D 印表機、LEGO 裝置與 CircuitPython 相容開發板。與 WebUSB API(原始 USB 存取)及 WebHID API(HID 輸入裝置)在使用場景上有所區隔,適合需要標準串列通訊協定的韌體互動場景。

原始來源:Mozilla Hacks — Announcing Web Serial Support in Firefox · WICG Web Serial API Specification · MDN Web Serial API


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