Firefox 45 開發者版本釋出說明
要測試 Firefox 的最新開發者功能,請安裝 Firefox Developer Edition。Firefox 45 已於 2016 年 3 月 8 日釋出。本文件列出了重要的更新,不僅對 Web 開發者有用,對 Firefox 和 Gecko 開發者以及擴充套件開發者也很有幫助。
面向網路開發者的變更
開發者工具
亮點
HTML
- 現在可以直接在 `
<meta>` 元素上設定內容安全策略 (Content Security Policy)(Firefox bug 663570)。 - 在 `
<img>`、`<area>`、`<a>` 和 `<iframe>` 標籤上,`referrer` 屬性已重新命名為 `referrerpolicy`(Firefox bug 1187357)。 - 視口(viewport)的變化或尺寸調整現在會觸發 `
<img srcset>` 的響應式圖片重新選擇(Firefox bug 1166138)。
CSS
-
`
word-spacing` 現在允許使用百分比值(Firefox bug 1038663)。 -
我們對 CSS Grid 的實現進行了改進,不再被視為實驗性功能;它現在在 nightly 和 developer 版本中預設啟用,但在 beta 和 release 版本中不啟用(Firefox bug 1000592)。
- 現在支援 Grid 的間隙(gutters),即 `grid-column-gap`、`grid-row-gap` 和 `grid-gap` 屬性(Firefox bug 1176792)。
- 實現了 Grid Item 的隱含最小尺寸,即 `min-width` 和 `min-height` 的 `auto` 特殊行為(Firefox bug 1176775)。
- 現在 Grid 佈局支援 `
align-self` 和 `justify-self`(Firefox bug 1151213)。 - 現在 Grid 佈局支援 `
align-content` 和 `justify-content`(Firefox bug 1151214)。 - 支援 `grid-template-columns` 和 `grid-template-rows` 的 px 單位的解析值(Firefox bug 978212)。
- 相關的 `
display: contents` 功能自 Firefox 37 起已得到支援。
-
實現了對 CSS Grid 的 CSS Box Alignment 的完全支援,支援缺失的值:`start`、`end`、`self-start`、`self-end`、`left`、`right`、`last-baseline`、`space-evenly`(Firefox bug 1176782)。CSS Box Alignment 目前僅適用於 CSS Flexbox 和 CSS Grid。
-
[css-grid][css-flexbox] 為 `
-
`
float` 和 `clear` 中已新增 `inline-start` 和 `inline-end` 值(Firefox bug 1122918)。在 Nightly 和 Aurora(Dev edition)以及 Firefox OS 上預設啟用;要在 release 或 beta 版本上啟用,需要將 `layout.css.float-logical-values.enabled` 設定為 `true`。 -
已實現 `
text-emphasis`、`text-emphasis-style`、`text-emphasis-color` 和 `text-emphasis-position`;它們預設停用(設定為 `layout.css.text-emphasis.enabled` 為 true 以啟用它們)(Firefox bug 1040668)。 -
為了 Web 相容性,已添加了多個 `-webkit` 字首的屬性和值,可透過 `layout.css.prefixes.webkit` 偏好設定控制,預設值為 `false`。
- 為 Web 相容性添加了 `-webkit-backface-visibility`、`-webkit-perspective` 和 `-webkit-perspective-origin`,可透過 `layout.css.prefixes.webkit` 偏好設定控制,預設值為 `false`(Firefox bug 1179444)。
JavaScript
- ES2015 Classes 現在預設啟用(Firefox bug 1197932)。
- Expression closures 已棄用,現在將在控制檯中顯示警告(Firefox bug 995610)。
- `
String.prototype.replace` 在執行函式引數後不再恢復 RegExp 靜態屬性(Firefox bug 1226936)。 - `
Math.random()` 已更新為更優的 XorShift128+ 演算法(Firefox bug 322529)。
介面/API/DOM
DOM 和 HTML DOM
- 為了相容性,已實現非標準屬性 `
Node.innerText`(Firefox bug 264412)。 - `
HTMLImageElement.srcset` 屬性現在響應尺寸/視口變化(Firefox bug 1166138)。 - 已實現 `
Element.getAttributeNames()`(Firefox bug 1228634)。
WebGL
我們對 WebGL 2 的實現進行了擴充套件。
- 已新增對程式(programs)和著色器(shaders)的支援(Firefox bug 1048743)。
- 已新增對 uniform 和 attribute 的支援(Firefox bug 1048745)。
- 已實現幀緩衝物件(Framebuffer objects)(Firefox bug 1048732)。
- 已實現渲染緩衝物件(Renderbuffer objects)(Firefox bug 1048733)。
IndexedDB
無更改。
Service Workers
- 已實現 `
Clients.get()` 和 `FetchEvent.clientId`(Firefox bug 1222464)。 - 已實現 `
Clients.openWindow()`(Firefox bug 1172870)。 - 呼叫 `
Clients.matchAll()` 時作為引數傳遞的選項物件現在可以包含 `includeUncontrolled` 屬性。這是一個布林值 — 如果設定為 `true`,匹配操作將返回與當前 service worker 具有相同 origin 的所有 service worker 客戶端。否則,它只返回由當前 service worker 控制的 service worker 客戶端。預設為 `false`。
WebRTC
無更改。
新 API
無更改。
雜項
- Web Speech Synthesis API 已在 Firefox 桌面版上實現(Firefox bug 1003439)。
- 已新增 `storage` 事件。
- 已將 `ComputedTiming` 介面新增到我們對 Web Animations API 的實驗性實現中(Firefox bug 1108055)。
- 已新增 `Document.onselectionchange` 事件處理屬性(Firefox bug 1231193)。
- 在透過呼叫 `
MediaStream.removeTrack()` 從媒體流中移除影片軌道後,現在可以使用 `MediaStream.addTrack()` 新增另一個影片軌道並使其播放(Firefox bug 1223696)。
MathML
無更改。
SVG
- 當 cairo 是 Moz2D 後端時,SVG 描邊命中測試存在 bug(Firefox bug 676001)。
- 無法與具有大 `transform` / `translate` 值的元素進行互動(Firefox bug 1217012)。
音訊/影片
- 已修復:由於持續時間四捨五入錯誤導致的音訊播放卡頓的迴歸問題(自 Firefox 41 起)(Firefox bug 1222866)。
HTTP
- `jar:` 協議預設情況下已被停用,Web 內容無法訪問;如果需要,您可以透過將 `network.jar.block-remote-files` 偏好設定設為 `false` 來啟用(Firefox bug 1215235)。
安全
- 現在可以使用 `
<meta>` 元素指定Content-Security-Policy(Firefox bug 663570)。 - 已實現對 `child-src` CSP 策略指令的支援(Firefox bug 1045891)。
- 有效期超過 27 個月的 EV 證書現在被視為並作為 DV 證書處理(Firefox bug 1222903)。
面向附加元件和 Mozilla 開發者的變更
介面
無更改。
XUL
- 標籤組 已被移除。
JavaScript 程式碼模組
無更改。
XPCOM
無更改。
搜尋外掛
從 Firefox 45 開始,使用者配置檔案中的 `searchplugins` 目錄下的搜尋外掛不再在啟動時自動載入。取而代之的是,會維護一個使用者安裝的外掛列表,並且只加載這些外掛。實際上,這意味著安裝新搜尋外掛的唯一方法是使用者在 Firefox 使用者介面中進行安裝(例如,透過 OpenSearch 發現),或者由擴充套件進行安裝。此外,當安裝新的搜尋外掛時,會記錄有關其來源的更多資訊,以供將來用於配置檔案除錯和清理工具。